Tuesday 29 April 2014

Türkçe cümlelerde ÖZNE-NESNE ayrımı alt yapısı

Mucize gibi bir şey!  Bilgisayarım konuşmayı sökmeye başladı...

İnsan konuşmasında önemli bir aşama cümlelerin özne ve nesne
ayrımını yapmaktır.  Eylemi kimin neye yaptığını ayırt etmek.

Özne nesne ayıran LANGANA programımın ilk çıktıları aşağıda...
Özne ile nesneyi ayırt etmek için gerekli bütün unsurları
anlıyor LANGANA.

En basitten zora doğru özne ayrımını şöyle özetleyebiliriz.

Fiil.

Özne.

Özne - Fiil.

Nesne - Fiil.

Özne - Nesne - Fiil.

Özne - Nesne - Fiilimsi - Fiil.

Virgül ve diğer birleştiriciler:

Özne , Özne - Fiil.

Nesne, Nesne - Fiil.
vb.

Kullanacağım bazı algoritmalar:
-Eğer bir so(SUBJ/OBJECT) takısız ise:
       Fiilin -i transitive ise : NESNE
                           değil is : ÖZNE
-Eğer bir so takılı ise:
       takı isim tamlaması sonlandırıcısı ve fiil transitive ise ÖZNE.
       takı i hali takısı ise -nı,  -mı vb NESNE

-Eğer so bir fiilimsiden önce gelen son so ise NESNE.
-Eğer iki tane takısız so varsa önce gelen ÖZNE.     

İşte bir kaç örnek aşağıda:  Steibeck'in Fareler ve İnsanlara Dair kitabının
ilk 1000 cümlesini aşağıdaki linkten bulabilirsiniz.

Sanırım bir süre sonra ilk 1000 cümleyi:
 Çünkü [ben] {seni} bilirim,
 bir susadın mı,
 {çirkef}
 de olsa içersin

 aşağıdaki cümlenin yukarıdaki işlenmiş şeklinde source forge'da yayınlayacağım.

 NOT: LANGANAe ingilizce için yaptığım kelime tipi çalışmasında 1 milyon satırlık
 Webter sözlüğünü parse etmem gerekiyor.  Şu anda VWXYZ harflerini bitirdim. U ile
 uğraşıyorum.  PArse ettiğim toplam satır sayısı 50 bini aştı.  Yani 1/20 = %5'teyim.
 Webster'in güzelliği kullandığım Türkçe sözlüğe göre eski ama çok detaylı, tekil
 çoğul ne isterseniz bilgi olarak var.

SENTENCE NO = 41 ********************************************************

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


 Çünkü ben seni bilirim,
 bir susadın mı,
 çirkef
 de olsa içersin

buf_struct_only_list()------------------------------------------------------------

SENTENCE(==>CONJUNCTSUB(
41     0      çünkü       
41     1      ben    begso  ending-ext=null
41     2      sen i  begso  ending-ext=i
41     3      bil irim            --------------------verbExt
,SUB(
41     4      bir         
41     5      susa dın            --------------------verbExt
41     6      mı          
,SUB(
41     7      çirkef       begso  ending-ext=null
==>CONJUNCTSUB(
41     8      de          
41     9      ol sa        --------------------verbExt
41     10     iç ersin            --------------------verbExt
.END-SENTENCE)
41     11    
buf_sub_struct_list()------------------------------------------------------------

41     0      SENTENCE(==>CONJUNCTSUB(
41     0      0      11711  Bağlaç null   Çünkü  null   null   null   null   null   null
ÖZNE-NESNE =====>  ben
ARS i=1 k=1
41     1      0      5991   Zamir  null   ben    null   null   null   null   null   null
ÖZNE-NESNE =====>  seni
ARS i=2 k=1
41     2      0      77114  Zamir  null   sen    pronounExt   i      +i     null   null   null
41     3      0      6814   Fiil   -i     bil    verbExt      irim   ::-ir:*im    null   null   null
41     4      ,SUB(
41     4      0      6880   İsim   null   bir    null   null   null   null   null   null
41     5      0      47467  Fiil   nsz    susa   verbExt      dın    ::-dı:*n     null   null   null
41     6      0      77138  Soru   null   mı     null   null   null   null   null   null
41     7      ,SUB(
ÖZNE-NESNE =====>  çirkef
ARS i=7 k=1
41     7      0      11213  İsim   null   çirkef null   null   null   null   null   null
41     8      ==>CONJUNCTSUB(
41     8      0      11734  Bağlaç null   de     null   null   null   null   null   null
41     9      0      38929  Fiil   nsz    ol     verbExt      sa     ::-sa: null   null   null
41     10     0      24056  Fiil   -i     iç     verbExt      ersin  ::-er:*sin   null   null   null
41     11     .END-SENTENCE)

SENTENCE NO = 40 ********************************************************

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

 Akmayan bir su oldu mu hiç içmemelisin Lennie

buf_struct_only_list()------------------------------------------------------------

SENTENCE( SUB(
40     0      ak mayan            ------------nounFromVerb
40     1      bir    begso 
40     2      su     endso  ending-ext=null
40     3      oldu        
40     4      mu          
40     5      hiç         
40     6      iç memelisin        --------------------verbExt
40     7      lennie       begso  ending-ext=null
.END-SENTENCE)
40     8     
buf_sub_struct_list()------------------------------------------------------------

40     0      SENTENCE( SUB(
40     0      0      1311   Fiil   nsz,-e Ak     nounFromVerbExt     mayan  -maya-n      null   null   null
ÖZNE-NESNE =====>  bir su
ARS i=1 k=2
40     1      0      6880   İsim   null   bir    null   null   null   null   null   null
40     2      0      47231  İsim   null   su     null   null   null   null   null   null
40     3      0      38892  Zarf   null   oldu   null   null   null   null   null   null
40     4      0      77140  Soru   null   mu     null   null   null   null   null   null
40     5      0      22845  Zarf   null   hiç    null   null   null   null   null   null
40     6      0      24056  Fiil   -i     iç     verbExt      memelisin    ::-memeli:*sin      null   null       null
ÖZNE-NESNE =====>  Lennie
ARS i=7 k=1
40     7      0      0      Özelİsim     null   Lennie null   null   null   null   null   null
40     8      .END-SENTENCE)

SENTENCE NO = 250 ********************************************************

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

250    0      SENTENCE( SUB(
250    0      0      37999  Zamir  null   Ne     null   null   null   null   null   null
250    1      0      57957  İsim   null   zaman  null   null   null   null   null   null
...
buf_verbose_list()------------------------------------------------------------

 Ne zaman elime alıp okşasam,
 hemen parmaklarımı ısırırlardı,
 ben
 de birazcık kafalarını çimdiklerdim,
 sonra bir
 de bakardım
 ki,
 ölmüşler

buf_struct_only_list()------------------------------------------------------------

SENTENCE( SUB(
250    0      ne          
250    1      zaman       
250    2      el ime      
250    3      al ıp        ------------gerundFromVerb
250    4      okşa sam            --------------------verbExt
,SUB(
250    5      hemen       
250    6      parmak larımı begso  ending-ext=larımı
250    7      ısır ırlardı        --------------------verbExt
,SUB(
250    8      ben    begso  ending-ext=null
==>CONJUNCTSUB(
250    9      de          
250    10     birazcık           
250    11     kafa larını  begso  ending-ext=larını
250    12     çimdikle rdim       --------------------verbExt
,SUB(
250    13     sonra       
250    14     bir         
==>CONJUNCTSUB(
250    15     de          
250    16     bak ardım           --------------------verbExt
==>CONJUNCTSUB(
250    17     ki          
,SUB(
250    18     öl müşler           --------------------verbExt
.END-SENTENCE)
250    19    

SENTENCE NO = 668 ********************************************************

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

 Böyle çiftliklerde insan,
 hiçbir zaman ne kimsenin konuştuğunu dinler ne
 de kimseye bir şey sorar

buf_struct_only_list()------------------------------------------------------------

SENTENCE( SUB(
668    0      böyle       
668    1      çiftlik lerde      
668    2      insan begso  ending-ext=null
,SUB(
668    3      hiçbir             
668    4      zaman       
668    5      ne          
668    6      kimse nin          
668    7      konuş tuğunu begso  ending-ext=tuğunu------------nounFromVerb
668    8      dinle r             --------------------verbExt
668    9      ne          
==>CONJUNCTSUB(
668    10     de          
668    11     kimse ye           
668    12     bir    begso 
668    13     şey    endso  ending-ext=null
668    14     sor ar       --------------------verbExt
.END-SENTENCE)
668    15    

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

668    0      SENTENCE( SUB(
668    0      0      7801   Sıfat  null   Böyle  null   null   null   null   null   null
668    1      0      11050  İsim   null   çiftlik      nounExt      lerde  #ler%%%&de   null   null   null
ÖZNE-NESNE =====>  insan
ARS i=2 k=1
668    2      0      25138  İsim   null   insan  null   null   null   null   null   null
668    3      ,SUB(
668    3      0      22846  Sıfat  null   hiçbir null   null   null   null   null   null
668    4      0      57957  İsim   null   zaman  null   null   null   null   null   null
668    5      0      37999  Zamir  null   ne     null   null   null   null   null   null
668    6      0      30488  Zamir  null   kimse  pronounExt   nin    +ni+n  null   null   null
ÖZNE-NESNE =====>  konuştuğunu
ARS i=7 k=1
668    7      0      31317  Fiil   nsz    konuş  nounFromVerbExt     tuğunu -tu-ğ-un-u   null   null   null
668    8      0      13722  Fiil   -i     dinle  verbExt      r      ::-r:  null   null   null
668    9      0      37999  Zamir  null   ne     null   null   null   null   null   null
668    10     ==>CONJUNCTSUB(
668    10     0      11734  Bağlaç null   de     null   null   null   null   null   null
668    11     0      30488  Zamir  null   kimse  pronounExt   ye     +ye    null   null   null
ÖZNE-NESNE =====>  bir şey
ARS i=12 k=2
668    12     0      6880   İsim   null   bir    null   null   null   null   null   null
668    13     0      48595  İsim   null   şey    null   null   null   null   null   null
668    14     0      46760  Fiil   -i,-e,-den   sor    verbExt      ar     ::-ar: null   null   null
668    15     .END-SENTENCE)
      
      
SENTENCE NO = 946 ********************************************************

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

 Lennie büyük bir istekle Georgea doğru eğilerek:
 Gidelim George,
 dedi

buf_struct_only_list()------------------------------------------------------------

SENTENCE( SUB(
946    0      lennie       begso  ending-ext=null
946    1      büyük       
946    2      bir         
946    3      istek le           
946    4      george a           
946    5      doğru       
946    6      eğil erek           ------------gerundFromVerb
:SUB(?
946    7      gid elim            --------------------verbExt
946    8      george       begso  ending-ext=null
,SUB(
946    9      de di        --------------------verbExt
.END-SENTENCE)
946    10          

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

946    0      SENTENCE( SUB(
ÖZNE-NESNE =====>  Lennie
ARS i=0 k=1
946    0      0      0      Özelİsim     null   Lennie null   null   null   null   null   null
946    1      0      8384   Sıfat  null   büyük  null   null   null   null   null   null
946    2      0      6880   İsim   null   bir    null   null   null   null   null   null
946    3      0      25543  İsim   null   istek  nounExt      le     %%%&le null   null   null
946    4      0      0      Özelİsim     null   George nounExt      a      %%%&a  null   null   null
946    5      0      14144  Sıfat  null   doğru  null   null   null   null   null   null
946    6      0      15571  Fiil   nsz    eğil   gerundFromVerbExt   erek   ;;-er;.ek    null   null   null
946    7      :SUB(?
946    7      0      19913  Fiil   -den,-e      Gid    verbExt      elim   ::-elim:     null   null   null
ÖZNE-NESNE =====>  George
ARS i=8 k=1
946    8      0      0      Özelİsim     null   George null   null   null   null   null   null
946    9      ,SUB(
946    9      0      12648  Fiil         de     verbExt      di     ::-di: null   null   null
946    10     .END-SENTENCE)