Thursday 16 January 2014

Türkçe Cümlelerde Bilgisayar Programı ile OTOMATİK ÖZNE TESPİTİ


Okuduğu Türkçe metinleri anlayıp ilgili soruları cevaplandıran bilgisayar programım LANGANA

ÖZNE TESPİTİ yapmağa başladı.  Bundan önceki yazımda belirlediğim deney durumlarına ilişkin

Çıktılar aşağıda görüldüğü gibi doğru sonuçlardır.

 

Deneylerin ilk aşamasında yaklaşık 10 cümle kullandım.  İkinci aşamada yaklaşık 50 cümle kullanacağım.

Bunlara ilişkin deney hazırlık değerlendirmesini bundan sonraki yazımda bulabilirsiniz.

 

Bu aşamada dikkat çeken bazı noktalar:

  1.  Öznenin cümle içinde geçen ilk isim ya da isim tamlaması olması, özne – nesne ayrımında belirleyici.
  2. Öznesi olmayıp ta nesnesi olan cümleler incelenmeli.
  3. İsim gibi takı alan Edat ve sıfatlar Özne’nin başlangıcında gelemez (sıfat aslında isim tamlamasının başında gelebilmeli?)  Sıfat Özne’nin sonunda gelemez.
  4. İsim tamlamasından sonra gelen isim tamlaması –de, -e, -den ile bitiyorsa bu ikinci tamlama birinciyi sonlandırır. 
  5. ‘,’ ve bağlaçlar özel kullanım kurallarına sahiptir.  Eğer virgülden önce bir fiil+fiil eki gelmiyorsa bu virgül sıfat-isim vb ‘yi ayıran ve fiilli alt cümle oluşturmayan bir bağlaçtır. 
  6. Fiilli alt cümle oluşturan bağlaçlar ve virgüller öznenin bulunmuş olduğu koşulu sıfırlar, bundan sonra karşılaşılan ilk isim/tamlaması yeni alt cümlenin öznesi olur.
  7. Programda iki mekanizma öne çıkar: Karşılaşılan ilk isimden itibaren ileri doğru isim ve sıfatları arayıp isim/tamlamasını oluşturan kısım ve bu arama mekanizmasını sınırlayıp durduran ve geçerliliğini belirleyen kontrol mekanizması.
     
    Önümüzdeki aşamaya ilişkin aşılması gereken güçlükleri ilgili test case’leri ile birlikte bundan sonraki yazımda vereceğim.

 

run:

SENTENCE NO = 29 ********************************************************

buf_sub_struct_list()------------------------------------------------------------

29                  0                     SENTENCE(==>CONJUNCTSUB(

29                  0                     0                     17474         Bağlaç         null               Fakat            null               null               null

ÖZNE =====>  Lennie

29                  1                     0                     0                     Özelİsim    null               Lennie        null               null               null

29                  2                     0                     47231         İsim              null               su                   nounExt     yun               %%=yun%

29                  3                     0                     23943         İsim              null                                   nounExt     ine                %%?in%&e

29                  4                     0                     46609         Fiil                 nsz                 solu              verbExt      maya            ::-maya:

29                  5                     0                     13169         İsim              null               devam        null               null               null

29                  6                     0                     17153         Fiil                                        ed                  verbExt      iyordu         ::-iyor-du:

29                  7                     .END-SENTENCE)

buf_verbose_list()------------------------------------------------------------

 Fakat Lennie suyun içine solumaya devam ediyordu

 

SENTENCE NO = 11 ********************************************************

buf_sub_struct_list()------------------------------------------------------------

11                  0                     SENTENCE( SUB(

ÖZNE =====>  Gölgeler

11                  0                     0                     20164         İsim              null               Gölge          nounExt     ler                 #ler%%%

11                  1                     0                     75786         Zarf               null               yavaş            null               null               null

11                  2                     0                     75786         Zarf               null               yavaş            null               null               null

11                  3                     0                     50960         İsim              null               tepe             nounExt     lerden        #ler%%%&den

11                  4                     0                     57477         İsim              null               yukarı          nounExt     ya                   %%%&y&a

11                  5                     0                     14144         Sıfat              null               doğru          null               null               null

11                  6                     0                     51615         Fiil                 -e                   tırman        verbExt      ıyordu         ::-ıyor-du:

11                  7                     .END-SENTENCE)

buf_verbose_list()------------------------------------------------------------

 Gölgeler yavaş yavaş tepelerden yukarıya doğru tırmanıyordu

 

SENTENCE NO = 16 ********************************************************

buf_sub_struct_list()------------------------------------------------------------

16                  0                     SENTENCE( SUB(

16                  0                     0                     6892            Zarf               null               Bir                 null               null               null

16                  1                     0                     6892            Zarf               null               an                  null               null               null

16                  2                     0                     24006         Edat              null               için               null               null               null

16                  3                     0                     39265         İsim              null               orta              nounExt     da                  %%%&da

16                  4                     0                     50437         Sıfat              null               tek                null               null               null

ÖZNE =====>  bir canlı varlık

16                  5                     0                     6880            İsim              null               bir                 null               null               null

16                  6                     0                     8623            Sıfat              null               canlı             null               null               null

16                  7                     0                     54350         İsim              null               varlık           null               null               null

16                  8                     0                     27013         Fiil                 nsz                 kal                 verbExt      mamıştı     ::-mamış-tı:

16                  9                     .END-SENTENCE)

buf_verbose_list()------------------------------------------------------------

 Bir an için ortada tek bir canlı varlık kalmamıştı

 

SENTENCE NO = 12 ********************************************************

buf_sub_struct_list()------------------------------------------------------------

12                  0                     SENTENCE( SUB(

12                  0                     0                     32388         Sıfat              null               Kumluk      null               null               null

12                  1                     0                     30246         İsim              null               kıyı                nounExt     larda            #lar%%%&da

12                  2                     0                     45284         Zarf               null               ses                 nounExt     siz                  #siz%%%

12                  3                     ,SUB(

12                  3                     0                     45284         Zarf               null               ses                 nounExt     siz                  #siz%%%

12                  4                     0                     39490         Fiil                 -e                   otur              adjectiveFromVerbExt                   an                  .an

ÖZNE =====>  tavşanlar

12                  5                     0                     50150         İsim              null               tavşan         nounExt     lar                  #lar%%%

12                  6                     ,SUB(

12                  6                     0                     49930         İsim              null               taş                 nounExt     tan                %%%&tan

12                  7                     0                     57329         Fiil                 nsz                 yontul         adjectiveFromVerbExt                   muş              .muş

12                  8                     0                     32940         Sıfat              null               küçük          null               null               null

12                  9                     ,SUB(

12                  9                     0                     7630            İsim              null               boz                null               null               null

12                  10                  0                     22651         İsim              null               heykel        nounExt     lere              #ler%%%&e

12                  11                  0                     6056            Fiil                 -e                   benzi           verbExt      yorlardı      ::-yor-lar-dı:

12                  12                  .END-SENTENCE)

buf_verbose_list()------------------------------------------------------------

 Kumluk kıyılarda sessiz,

 sessiz oturan tavşanlar,

 taştan yontulmuş küçük,

 boz heykellere benziyorlardı

 

SENTENCE NO = 13 ********************************************************

buf_sub_struct_list()------------------------------------------------------------

13                  0                     SENTENCE( SUB(

13                  0                     0                     7856            Sıfat              null               Bu                  null               null               null

13                  1                     0                     45695         İsim              null               sıra                nounExt     da                  %%%&da

13                  2                     ,SUB(

13                  2                     0                     8384            Sıfat              null               büyük          null               null               null

13                  3                     0                     3214            İsim              null               asfalt            null               null               null

13                  4                     0                     54756         İsim              null               vilâyet        null               null               null

13                  5                     0                     48882         İsim              null               şose              nounExt     si                    %%=si%

13                  6                     0                     49718         İsim              null               taraf             nounExt     larından     #lar%%?ın%&dan

13                  7                     ,SUB(

13                  7                     0                     32605         Sıfat              null               kuru             null               null               null

13                  8                     0                     10827         İsim              null               çınar            null               null               null

13                  9                     0                     55688         İsim              null               yaprak         nounExt     ları                #lar%%?ı%

13                  10                  0                     74957         Edat              null               üstünde     null               null               null

13                  11                  0                     57780         Fiil                 nsz                 yürü             adjectiveFromVerbExt                   yen               .y.en

13                  12                  0                     3817            İsim              null               ayak              nounExt     ların             #lar%%?ın%

ÖZNE =====>  sesleri

13                  13                  0                     45233         İsim              null               ses                 nounExt     leri                #ler%%?i%

13                  14                  0                     14982         İsim              null               duyulma    nounExt     ya                   %%%&y&a

13                  15                  0                     5335            Fiil                 -e                   başla            verbExt                         ::-dı:

13                  16                  .END-SENTENCE)

buf_verbose_list()-----------------------------------------------------------

 Bu sırada,

 büyük asfalt vilâyet şosesi taraflarından,

 kuru çınar yaprakları üstünde yürüyen ayakların sesleri duyulmaya başladı

 

SENTENCE NO = 19 ********************************************************

buf_sub_struct_list()------------------------------------------------------------

19                  0                     SENTENCE( SUB(

ÖZNE =====>  Gözleri

19                  0                     0                     20480         İsim              null               Göz               nounExt     leri                #ler%%?i%

19                  1                     0                     14871         Zarf               null               durmadan                        null               null               null

19                  2                     0                     21825         İsim              null               hareket      null               null               null

19                  3                     0                     17153         Fiil                                        ed                  verbExt      iyordu         ::-iyor-du:

19                  4                     ;SUB(

19                  4                     0                     57799         İsim              null               yüz                nounExt     ünün            %%=ün%&ün

ÖZNE =====>  çizgileri

19                  5                     0                     11297         İsim              null               çizgi              nounExt     leri                #ler%%?i%

19                  6                     0                     29487         Sıfat              null               keskin         null               null               null

19                  7                     ==>CONJUNCTSUB(

19                  7                     0                     54481         Bağlaç         null               ve                  null               null               null

19                  8                     0                     32851         İsim              null               kuvvet        verbFromNounExt     liydi              li-

19                  9                     .END-SENTENCE)

buf_verbose_list()------------------------------------------------------------

 Gözleri durmadan hareket ediyordu;

 yüzünün çizgileri keskin

 ve kuvvetliydi

 

SENTENCE NO = 9 ********************************************************

buf_sub_struct_list()------------------------------------------------------------

9                     0                     SENTENCE( SUB(

9                     0                     0                     45444         Sıfat              null               Sıcak            null               null               null

9                     1                     0                     6880            İsim              null               bir                 null               null               null

9                     2                     0                     20937         İsim              null               gün               nounExt     ün                  %%=ün%

9                     3                     0                     1403            İsim              null               akşam          verbFromNounExt     ıydı               ı-

9                     4                     .END-SENTENCE)

buf_verbose_list()------------------------------------------------------------

 Sıcak bir günün akşamıydı

 

SENTENCE NO = 25 ********************************************************

buf_sub_struct_list()------------------------------------------------------------

25                  0                     SENTENCE( SUB(

25                  0                     0                     2971            İsim              null               Arka              nounExt     sından         %%=sı%&n&dan

25                  1                     0                     19369         Fiil                 -den,-e,nsz                      gel                 adjectiveFromVerbExt                   en                  .en

ÖZNE =====>  adam

25                  2                     0                     471               İsim              null               adam           null               null               null

25                  3                     0                     4147            Sıfat              null               az                   null               null               null

25                  4                     0                     27013         Fiil                 nsz                 kal                 verbExt      sın                 ::-sın:

25                  5                     0                     39092         Zamir           null               onun            null               null               null

25                  6                     0                     54040         Zarf               null               üstüne        null               null               null

25                  7                     0                     56961         Fiil                 -i                     yık                 verbExt      ılacaktı       +ıl::-acak-tı:

25                  8                     ,SUB(

25                  8                     0                     39962         İsim              null               ön                  nounExt     deki              %%%&de&ki

25                  9                     0                     48194         İsim              null               şapka           nounExt     sını                %%=sı%&nı

25                  10                  0                     10739         Fiil                 -i,-den,-e   çıkar             gerundFromVerbExt                        arak              ;;-ar;.ak

25                  11                  0                     23943         İsim              null                                   nounExt     indeki         %%?in%&de&ki

25                  12                  0                     12973         İsim              null               deri              null               null               null

25                  13                  0                     4942            İsim              null               band            nounExt     ın                   %%?ın%

25                  14                  0                     22555         Sıfat              null               her                null               null               null

25                  15                  0                     49718         İsim              null               taraf             nounExt     ını                  %%?ın%&ı

25                  16                  0                     25722         İsim              null               işaret           null               null               null

25                  17                  0                     40881         İsim              null               parmağ       nounExt     ıyla                %%?ı%&y&la

25                  18                  0                     26045         Sıfat              null               iyice             null               null               null

25                  19                  0                     46066         Fiil                 -i                     sil                   nounFromVerbExt     dikten         -di-k-ten

25                  20                  0                     46688         Zarf               null               sonra           null               null               null

25                  21                  ,SUB(

25                  21                  0                     40881         İsim              null               parmağ       nounExt     ında              %%?ın%&da

25                  22                  0                     6968            Fiil                 nsz                 birik             adjectiveFromVerbExt                   en                  .en

25                  23                  0                     51028         İsim              null               ter                 nounExt     i                      %%?i%

25                  24                  0                     5392            İsim              null               başparmağ                       nounExt     ının               %%?ın%?ın

25                  25                  0                     55793         İsim              null               yardım        nounExt     ıyla                %%?ı%&y&la

25                  26                  0                     18016         Fiil                 -i                     fırlat             gerundFromVerbExt                        ıp                   ;;;.ıp

25                  27                  0                     3683            Fiil                 -i,-e               at                   verbExt                          ::-tı:

25                  28                  .END-SENTENCE)

buf_verbose_list()------------------------------------------------------------

 Arkasından gelen adam az kalsın onun üstüne yıkılacaktı,

 öndeki şapkasını çıkararak içindeki deri bandın her tarafını işaret parmağıyla iyice sildikten sonra,

 parmağında biriken teri başparmağının yardımıyla fırlatıp attı

 

SENTENCE NO = 18 ********************************************************

buf_sub_struct_list()------------------------------------------------------------

18                  0                     SENTENCE( SUB(

18                  0                     0                     41055         İsim              null               Patika          nounExt     dan               %%%&dan

18                  1                     0                     50437         Sıfat              null               tek                null               null               null

18                  2                     0                     45695         İsim              null               sıra                null               null               null

18                  3                     0                     21441         İsim              null               hal                 nounExt     inde             %%?in%&de

18                  4                     0                     57780         Fiil                 nsz                 yürü             gerundFromVerbExt                        yerek           ;;;.y.erek

18                  5                     0                     25128         Fiil                 -den             in                   verbExt      mişlerdi     ::-miş-ler-di:

18                  6                     ==>CONJUNCTSUB(

18                  6                     0                     22092         Bağlaç         null               hatta            null               null               null

18                  7                     0                     1573            İsim              null               alan              nounExt     da                  %%%&da

18                  8                     0                     6665            Zarf               null               bile               null               null               null

ÖZNE =====>  biri

18                  9                     0                     6957            Zamir           null               biri                null               null               null

18                  10                  0                     40199         İsim              null               öte                nounExt     kinin            %%%&ki&nin

18                  11                  0                     2971            İsim              null               arka              nounExt     sında            %%=sı%&n&da

18                  12                  0                     14872         Fiil                 nsz                 dur                verbExt      uyordu       ::-uyor-du:

18                  13                  ,SUB(

ÖZNE =====>  ikisi

18                  13                  0                     24385         İsim              null               iki                  nounExt     si                    %%=si%

18                  14                  ==>CONJUNCTSUB(

18                  14                  0                     11734         Bağlaç         null               de                  null               null               null

18                  15                  0                     6414            İsim              null               bez                nounExt     den               %%%&den

18                  16                  0                     6880            İsim              null               bir                 null               null               null

18                  17                  0                     40686         İsim              null               pantolon   null               null               null

18                  18                  ==>CONJUNCTSUB(

18                  18                  0                     54481         Bağlaç         null               ve                  null               null               null

18                  19                  0                     19404         Zarf               null               gene            null               null               null

18                  20                  0                     6414            İsim              null               bez                nounExt     den               %%%&den

18                  21                  ,SUB(

18                  21                  0                     44232         İsim              null               sarı                null               null               null

18                  22                  0                     41715         İsim              null               pirinç          null               null               null

18                  23                  0                     15039         Sıfat              null               düğmeli     null               null               null

18                  24                  0                     6880            İsim              null               bir                 null               null               null

18                  25                  0                     8784            İsim              null               ceket           null               null               null

18                  26                  0                     19937         Fiil                 -i,-e               giy                 verbExt      mişlerdi     ::-miş-ler-di:

18                  27                  ,SUB(

18                  27                  0                     24385         İsim              null               iki                  nounExt     sinin             %%=si%&nin

18                  28                  ==>CONJUNCTSUB(

18                  28                  0                     11734         Bağlaç         null               de                  null               null               null

18                  29                  0                     5208            İsim              null               baş                nounExt     ında              %%?ın%&da

ÖZNE =====>  siyah kalıpsız bir şapka

18                  30                  0                     46325         İsim              null               siyah            null               null               null

18                  31                  ,SUB(

18                  31                  0                     26950         Sıfat              null               kalıpsız       null               null               null

18                  32                  0                     6880            İsim              null               bir                 null               null               null

18                  33                  0                     48194         İsim              null               şapka           null               null               null

18                  34                  0                     54301         Sıfat              null               var                 verbFromNounExt                       

18                  35                  ,SUB(

ÖZNE =====>  ikisi

18                  35                  0                     24385         İsim              null               iki                  nounExt     si                    %%=si%

18                  36                  ==>CONJUNCTSUB(

18                  36                  0                     11734         Bağlaç         null               de                  null               null               null

18                  37                  0                     5523            İsim              null               battaniye  nounExt     lerini           #ler%%?in%&i

18                  38                  0                     45563         Zarf               null               sıkıca           null               null               null

18                  39                  0                     46091         İsim              null               simit            null               null               null

18                  40                  0                     55685         Fiil                 -i                     yap                gerundFromVerbExt                        arak              ;;-ar;.ak

18                  41                  0                     39000         İsim              null               omuz           nounExt     larına           #lar%%?ın%&a

18                  42                  0                     3329            Fiil                 -i,-e               as                   verbExt      mışlardı     ::-mış-lar-dı:

18                  43                  ,SUB(

18                  43                  0                     39962         İsim              null               ön                  nounExt     de                  %%%&de

18                  44                  0                     14872         Fiil                 nsz                 dur                nounFromVerbExt     an                  -an

18                  45                  ,SUB(

18                  45                  0                     53025         Sıfat              null               ufak              null               null               null

18                  46                  0                     50386         Sıfat              null               tefek            null               null               null

18                  47                  ,SUB(

18                  47                  0                     10604         Sıfat              null               çevik            null               null               null

18                  48                  ==>CONJUNCTSUB(

18                  48                  0                     54481         Bağlaç         null               ve                  null               null               null

18                  49                  0                     16820         İsim              null               esmer         null               null               null

18                  50                  0                     6880            İsim              null               bir                 null               null               null

18                  51                  0                     471               İsim              null               adam           verbFromNounExt                       

18                  52                  .END-SENTENCE)

buf_verbose_list()------------------------------------------------------------

 Patikadan tek sıra halinde yürüyerek inmişlerdi

 hatta alanda bile biri ötekinin arkasında duruyordu,

 ikisi

 de bezden bir pantolon

 ve gene bezden,

 sarı pirinç düğmeli bir ceket giymişlerdi,

 ikisinin

 de başında siyah,

 kalıpsız bir şapka vardı,

 ikisi

 de battaniyelerini sıkıca simit yaparak omuzlarına asmışlardı,

 önde duran,

 ufak tefek,

 çevik

 ve esmer bir adamdı

BUILD SUCCESSFUL (total time: 1 second)