Sunday 25 August 2013

İmkansıza yaklaşırken - Türkçe Anlayan Bilgisayar Programım

Verilen bir metni okuyup onun hakkında sorulan soruları otomatik olarak cevaplayan programımın ilk örneği(prototipi)...

İlk olarak aşağıdaki metni wordAnalyzer modülüne veriyorsunuz.

ARS Ankaraya gitti.
ARS Ispartaya gitti.
Anın güzelliği.

Kelime analizi yapan modül bir sözlük yardımı ile aşağıdaki çıktıyı üretiyor. 
 
Noun(ARS) Noun(Ankara,ya) Verb(git,ti)
Noun(ARS) Noun(Isparta,ya) Verb(git,miş)
Noun(an,ın) Noun(güzel,liği)

Kelime analiz programını hemen hemen bitirmiş durumdayım. Çok ince dil oyunları üzerinde bir miktar daha çalışmam gerek.  Fakat ana yapı hazır, ince düzeltmeler gerekli.  Bir örnek olarak

Anın güzelliği.  Kelimelerinin çıktısı:

test00.txt
0--------------------------------------->---------------->
root=an wordid="2178"mult-no="0"word_type="İsim"
SENSE INFO ="an","2178","0",1,"H","İsim"
--------------------------->----------------------------->
===>ExtIsNounExtension-->root=an ext---> %%  % &ın
0--------------------------------------->---------------->
root=an wordid="2488"mult-no="0"word_type="-i"
SENSE INFO ="anmak","2488","0",1,"E","-i"
"anmak","2488","0",3,"E","-i"
--------------------------->----------------------------->
===>ExtIsVerbExtension-->root=an ext--->+ın ::  :
0--------------------------------------->---------------->
root=anı wordid="2363"mult-no="0"word_type="İsim"
SENSE INFO ="an?","2363","0",1,"H","İsim"
--------------------------->----------------------------->
===>ExtIsNounExtension-->root=anı ext---> %%  % &n
0--------------------------------------->---------------->
root=güzel wordid="21164"mult-no="0"word_type="İsim"
SENSE INFO ="güzel","21164","0",10,"H","İsim"
"güzel","21164","0",11,"H","İsim"
--------------------------->----------------------------->
===>ExtIsNounExtension-->root=güzel ext--->#liğ %%  % &i
0--------------------------------------->---------------->
root=güzel wordid="21164"mult-no="0"word_type=
SENSE INFO ="güzel","21164","0",2,"H",
"güzel","21164","0",3,"H",
"güzel","21164","0",4,"H",
"güzel","21164","0",5,"H",
"güzel","21164","0",6,"H",
"güzel","21164","0",7,"H",
"güzel","21164","0",8,"H",
--------------------------->----------------------------->
===>ExtIsNounExtension-->root=güzel ext--->#liğ %%  % &i
0--------------------------------------->---------------->
root=güzelliğ wordid="21179"mult-no="0"word_type=
SENSE INFO =
--------------------------->----------------------------->
===>ExtIsNounExtension-->root=güzelliğ ext---> %%  % &i

Dikkat ederseniz sözlükten farklı anlamları da alabiliyorum gerekirse...

Daha sonra soru müşteriden alınır.  Bu sorular:

Ali nereye gitti?
Neyin güzelliği?

Bu kısmı elle yaptım.  Fakat alınan soru yine wordAnalyzer – kelime analizi modülünden geçirilmeli.

Daha sonra bu çıktı kullanılarak sorular oluşturulmalı ve answerMachine.jj içine bu kod import edilmeli.  Şimdilik bunları elle yaptım fakat programla yapmak yalnızca mekanik bir yük ve zaman meselesi.

Soruları answerMachine.jj içine alınca:

void WhereDidAliGo() :

{System.out.println("WhereDidAliGo(");Token t;}
{  
                        "Noun(" t=<WORD> {System.out.println("===> " + t.image);}                                           
                        ")" {System.out.println(")");}
                        WhiteSpace()               

                        "Noun(" t=<WORD> {System.out.println("===> " + t.image);}
                                               ","
                                               (t=<YA>  {System.out.println("===> " + t.image);}
                                               )*
                                               ")" {System.out.println(")");}
                        WhiteSpace()               

                        "Verb(" t=<WORD> {System.out.println("===> " + t.image);}
                                               (                      ","
                                                                       t=<WORD> {System.out.println("===> " + t.image);}
                                               )*
                                               ")" {System.out.println(")");}
                        WhiteSpace()
}

void NeyinGuzelligi() :

{System.out.println("Neyin güzelliği?");Token t;}
{  
                        "Noun(" t=<WORD> {System.out.println("===> " + t.image);}
                                               ","
                                               (t=<IN>  {System.out.println("===> " + t.image);}
                                               )*
                                               ")" {System.out.println(")");}
                        WhiteSpace()               

                        "Noun(" t=<GUZEL> {System.out.println("===> " + "güzelliği");}
                                               (                   
                                                  ","
                                                                       t=<LIGI> {System.out.println("===> " + t.image);}
                                               )*
                                               ")" {System.out.println(")");}
                        WhiteSpace()
}

Çıktısı:  Soruların cevabı:

********************test01.txt********************
WhereDidAliGo(
 
===> ARS
)
\s
===> Ankara
===> ya
)
\s
===> git
===> ti
)
\s
\r
\n

WhereDidAliGo(

===> ARS
)
\s
===> Isparta
===> ya
)
\s
===> git
===> miş
)
\r
\n

Neyin güzelliği?

===> an
===> ın
)
\s
===> güzel
===> liği
)
\r
\n




Yukarıda görüldüğü gibi 'Anın' kelimesinin üç farklı anlamı vardır.

an-ın aidiyet eki 'ın' ile an isimi
anın fiil kökü an ve emir eki 'ın'
anı-n isim kökü anı ve 2. tekil şahıs aidiyet eki 'ın'

Program 'Neyin' sorusunu  isim ve aidiyet ekine dönüştürerek bu güçlüğü aşıyor.

Not:Kısacası bu iş burada gözüktüğü kadar basit ve kolay değil.


Monday 19 August 2013

Test cases for the Turkish verb structure some of which does not work at Google

Some test case for the Turkish verb structure follows.  Test cases for nouns from verbs are included but participles - adjectives from verbs such as 'yanmış' and gerunds -movement indicators such as 'koşarak' will be added later on.

This is a byproduct of my work to make a Turkish word analyzer which proved to be a tantamount job.  No surprise that Google could not do it in its translation machine.  You may check google with any of the multi-tense examples below (for ex. 'yapmışmışım'), nothing works at all.  Also complex nouns such as 'yaptırtabilirim' does not work at all in the Google translation motor. 

I will give test cases that I have fixed phase by phase, including nouns, adjctives, pronouns and others.  I will also demosnstrate what does not work at Google's motor.

Cheers.

Ali R+
********************test00.txt********************
*****************************************
str=y
FindWordRootUtil==> ===>"y"="54924""0"1 verb="H" wordType1= wordType2= wordType3= usage_type1= context1="Kimya"
wordAnalyzer---------->y is ROOT!
wordAnalyzer--->not specified word type or context
*****************************************
str=ya
FindWordRootUtil==> ===>"ya"="54927""0"2 verb="H" wordType1= wordType2= wordType3= usage_type1= context1=
wordAnalyzer---------->ya is ROOT!
testExt noun.......=ptırtılabiliyormuşum pos=0
Ses uyumu yanlış!
Ses uyumu yanlış!
--->isNounExtension
testExt verbfromnoun.......=ptırtılabiliyormuşum pos=0
isVerbFromNounExtension construction in process
--->isNounExtension
wordAnalyzer--->ext not found prevRoot=prevExt=
FindWordRootUtil==>"Zarf" ===>"ya"="54928""0"8 verb="H" wordType1="Zarf" wordType2= wordType3= usage_type1= context1=
wordAnalyzer---------->ya is ROOT!
wordAnalyzer--->ext not found prevRoot=prevExt=
FindWordRootUtil==>"Bağlaç" ===>"ya"="54928""0"1 verb="H" wordType1="Bağlaç" wordType2= wordType3= usage_type1= context1=
wordAnalyzer---------->ya is ROOT!
wordAnalyzer--->ext not found prevRoot=prevExt=

*****************************************
str=yap
FindWordRootUtil==>"Fiil" ===>"yap"="55685""0"21 verb="E" wordType1="nsz" wordType2= wordType3= usage_type1= context1=
wordAnalyzer---------->yap is ROOT!
************>>>testExt=tırtılabiliyormuşum pos=3
************>>>demoRootExt=+tır+t+ıl+abil
FindExtUtils--->ExtIsVerbExtension--->testExt=iyormuşum pos=0
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->
--->isVerbExtension--->will be processed testExtWork------->iyormuşum
--->isVerbExtension--> simpleExt-----  ------->iyormuşum
1--->isVerbExtension--> verbMultiExt-----  ------->
1--->isVerbExtension--> demoMultiExt-----  -------> :
FindExtUtils--->ExtIsVerbExtension--->testExt=iyormuşum pos=4
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->iyor
--->isVerbExtension--->will be processed testExtWork------->muşum
--->isVerbExtension--> simpleExt-----  ------->iyormuşum
1--->isVerbExtension--> verbMultiExt-----  ------->iyor
1--->isVerbExtension--> demoMultiExt-----  ------->-iyor :
FindExtUtils--->ExtIsVerbExtension--->testExt=iyormuşum pos=7
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->iyormuş
--->isVerbExtension--->will be processed testExtWork------->um
--->isVerbExtension--> simpleExt-----  ------->iyormuşum
1--->isVerbExtension--> verbMultiExt-----  ------->iyormuş
1--->isVerbExtension--> demoMultiExt-----  ------->-iyor-muş :
1testExtWork=(um)
final word ext--------------->tırtılabiliyormuşum
final demo ext----------------------------------->+tır+t+ıl+abil :: -iyor-muş : *um
wordAnalyzer---------->yap is ROOT with extensions=tırtılabiliyormuşum
1--------------------------->--------------------------->--------------------------->
root=yap ext=tırtılabiliyormuşum wordid="55685"mult-no="0"word_type="nsz"
SENSE INFO ="yapmak","55685","0",1,"E","-i"
"yapmak","55685","0",18,"E","yardımcı  fiil"
"yapmak","55685","0",19,"E","yardımcı  fiil"
"yapmak","55685","0",20,"E","yardımcı  fiil"
"yapmak","55685","0",21,"E","nsz"
--------------------------->--------------------------->--------------------------->
*****************************************
str=yapt
*****************************************
str=yaptı
*****************************************
str=yaptır
FindWordRootUtil==>"Fiil" ===>"yapt?r"="55718""0"1 verb="E" wordType1="-i" wordType2="-e" wordType3= usage_type1= context1=
wordAnalyzer---------->yaptır is ROOT!
************>>>testExt=tılabiliyormuşum pos=0
************>>>demoRootExt=+t+ıl+abil
FindExtUtils--->ExtIsVerbExtension--->testExt=iyormuşum pos=0
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->
--->isVerbExtension--->will be processed testExtWork------->iyormuşum
--->isVerbExtension--> simpleExt-----  ------->iyormuşum
1--->isVerbExtension--> verbMultiExt-----  ------->
1--->isVerbExtension--> demoMultiExt-----  -------> :
FindExtUtils--->ExtIsVerbExtension--->testExt=iyormuşum pos=4
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->iyor
--->isVerbExtension--->will be processed testExtWork------->muşum
--->isVerbExtension--> simpleExt-----  ------->iyormuşum
1--->isVerbExtension--> verbMultiExt-----  ------->iyor
1--->isVerbExtension--> demoMultiExt-----  ------->-iyor :
FindExtUtils--->ExtIsVerbExtension--->testExt=iyormuşum pos=7
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->iyormuş
--->isVerbExtension--->will be processed testExtWork------->um
--->isVerbExtension--> simpleExt-----  ------->iyormuşum
1--->isVerbExtension--> verbMultiExt-----  ------->iyormuş
1--->isVerbExtension--> demoMultiExt-----  ------->-iyor-muş :
1testExtWork=(um)
final word ext--------------->tılabiliyormuşum
final demo ext----------------------------------->+t+ıl+abil :: -iyor-muş : *um
wordAnalyzer---------->yaptır is ROOT with extensions=tılabiliyormuşum
1--------------------------->--------------------------->--------------------------->
root=yaptır ext=tılabiliyormuşum wordid="55718"mult-no="0"word_type="-i"
SENSE INFO ="yapt?rmak","55718","0",1,"E","-i"
--------------------------->--------------------------->--------------------------->
*****************************************
str=yaptırt
FindWordRootUtil==>"Fiil" ===>"yapt?rt"="55720""0"1 verb="E" wordType1="-i" wordType2= wordType3= usage_type1= context1=
wordAnalyzer---------->yaptırt is ROOT!
************>>>testExt=ılabiliyormuşum pos=0
************>>>demoRootExt=+ıl+abil
FindExtUtils--->ExtIsVerbExtension--->testExt=iyormuşum pos=0
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->
--->isVerbExtension--->will be processed testExtWork------->iyormuşum
--->isVerbExtension--> simpleExt-----  ------->iyormuşum
1--->isVerbExtension--> verbMultiExt-----  ------->
1--->isVerbExtension--> demoMultiExt-----  -------> :
FindExtUtils--->ExtIsVerbExtension--->testExt=iyormuşum pos=4
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->iyor
--->isVerbExtension--->will be processed testExtWork------->muşum
--->isVerbExtension--> simpleExt-----  ------->iyormuşum
1--->isVerbExtension--> verbMultiExt-----  ------->iyor
1--->isVerbExtension--> demoMultiExt-----  ------->-iyor :
FindExtUtils--->ExtIsVerbExtension--->testExt=iyormuşum pos=7
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->iyormuş
--->isVerbExtension--->will be processed testExtWork------->um
--->isVerbExtension--> simpleExt-----  ------->iyormuşum
1--->isVerbExtension--> verbMultiExt-----  ------->iyormuş
1--->isVerbExtension--> demoMultiExt-----  ------->-iyor-muş :
1testExtWork=(um)
final word ext--------------->ılabiliyormuşum
final demo ext----------------------------------->+ıl+abil :: -iyor-muş : *um
wordAnalyzer---------->yaptırt is ROOT with extensions=ılabiliyormuşum
1--------------------------->--------------------------->--------------------------->
root=yaptırt ext=ılabiliyormuşum wordid="55720"mult-no="0"word_type="-i"
SENSE INFO ="yapt?rtmak","55720","0",1,"E","-i"
--------------------------->--------------------------->--------------------------->
*****************************************
str=yaptırtı
*****************************************
str=yaptırtıl
*****************************************
str=yaptırtıla
*****************************************
str=yaptırtılab
isRoot(head_mult) manipulated=yapt?rt?lap
*****************************************
str=yaptırtılabi
*****************************************
str=yaptırtılabil
*****************************************
str=yaptırtılabili
*****************************************
str=yaptırtılabiliy
*****************************************
str=yaptırtılabiliyo
*****************************************
str=yaptırtılabiliyor
*****************************************
str=yaptırtılabiliyorm
*****************************************
str=yaptırtılabiliyormu
*****************************************
str=yaptırtılabiliyormuş
*****************************************
str=yaptırtılabiliyormuşu
*****************************************
str=yaptırtılabiliyormuşum
===================>yaptırtılabiliyormuşum
 root=yaptırt ext=ılabiliyormuşum
\r
\n
*****************************************
str=g
*****************************************
str=ge
FindWordRootUtil==> ===>"ge"="19111""0"1 verb="H" wordType1= wordType2= wordType3= usage_type1= context1="Kimya"
wordAnalyzer---------->ge is ROOT!
wordAnalyzer--->not specified word type or context
*****************************************
str=gel
FindWordRootUtil==>"Fiil" ===>"gel"="19369""0"34 verb="E" wordType1="yardımcı  fiil" wordType2= wordType3= usage_type1= context1=
wordAnalyzer---------->gel is ROOT!
************>>>testExt=meyeymişim pos=0
************>>>demoRootExt=
FindExtUtils--->ExtIsVerbExtension--->testExt=meyeymişim pos=0
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->
--->isVerbExtension--->will be processed testExtWork------->meyeymişim
--->isVerbExtension--> simpleExt-----  ------->meyeymişim
1--->isVerbExtension--> verbMultiExt-----  ------->
1--->isVerbExtension--> demoMultiExt-----  -------> :
FindExtUtils--->ExtIsVerbExtension--->testExt=meyeymişim pos=4
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->meye
--->isVerbExtension--->will be processed testExtWork------->ymişim
--->isVerbExtension--> simpleExt-----  ------->meyeymişim
1--->isVerbExtension--> verbMultiExt-----  ------->meye
1--->isVerbExtension--> demoMultiExt-----  ------->-meye :
FindExtUtils--->ExtIsVerbExtension--->testExt=meyeymişim pos=8
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->meyeymiş
--->isVerbExtension--->will be processed testExtWork------->im
--->isVerbExtension--> simpleExt-----  ------->meyeymişim
1--->isVerbExtension--> verbMultiExt-----  ------->meyeymiş
1--->isVerbExtension--> demoMultiExt-----  ------->-meye-ymiş :
1testExtWork=(im)
final word ext--------------->meyeymişim
final demo ext-----------------------------------> :: -meye-ymiş : *im
wordAnalyzer---------->gel is ROOT with extensions=meyeymişim
1--------------------------->--------------------------->--------------------------->
root=gel ext=meyeymişim wordid="19369"mult-no="0"word_type="yardımcı  fiil"
SENSE INFO ="gelmek","19369","0",1,"E","-den"
"gelmek","19369","0",18,"E","-e"
"gelmek","19369","0",26,"E","-e"
"gelmek","19369","0",27,"E","-e"
"gelmek","19369","0",31,"E","yardımcı  fiil"
"gelmek","19369","0",32,"E","yardımcı  fiil"
"gelmek","19369","0",33,"E","yardımcı  fiil"
"gelmek","19369","0",34,"E","yardımcı  fiil"
--------------------------->--------------------------->--------------------------->
*****************************************
str=gelm
*****************************************
str=gelme
FindWordRootUtil==>"İsim" ===>"gelme"="19368""0"1 verb="H" wordType1="İsim" wordType2= wordType3= usage_type1= context1=
wordAnalyzer---------->gelme is ROOT!
testExt noun.......=yeymişim pos=0
--->isNounExtension
testExt verbfromnoun.......=yeymişim pos=0
isVerbFromNounExtension construction in process
--->isNounExtension
verbFromNoun ext--------->y
total word ext--->y
testExt verbfromnoun.......=yeymişim pos=1
isVerbFromNounExtension construction in process
--->isNounExtension
wordAnalyzer--->ext not found prevRoot=gelprevExt=meyeymişim
FindWordRootUtil==> ===>"gelme"="19368""0"4 verb="H" wordType1= wordType2= wordType3= usage_type1= context1="Fizik"
wordAnalyzer---------->gelme is ROOT!
wordAnalyzer--->not specified word type or context
FindWordRootUtil==>"Sıfat" ===>"gelme"="19368""0"3 verb="H" wordType1="Sıfat" wordType2= wordType3= usage_type1= context1=
wordAnalyzer---------->gelme is ROOT!
wordAnalyzer--->ext not found prevRoot=gelprevExt=meyeymişim

*****************************************
str=gelmey
*****************************************
str=gelmeye
*****************************************
str=gelmeyey
*****************************************
str=gelmeyeym
*****************************************
str=gelmeyeymi
*****************************************
str=gelmeyeymiş
*****************************************
str=gelmeyeymişi
*****************************************
str=gelmeyeymişim
===================>gelmeyeymişim
 root=gel ext=meyeymişim
\r
\n
*****************************************
str=g
*****************************************
str=ge
FindWordRootUtil==> ===>"ge"="19111""0"1 verb="H" wordType1= wordType2= wordType3= usage_type1= context1="Kimya"
wordAnalyzer---------->ge is ROOT!
wordAnalyzer--->not specified word type or context
*****************************************
str=gel
FindWordRootUtil==>"Fiil" ===>"gel"="19369""0"34 verb="E" wordType1="yardımcı  fiil" wordType2= wordType3= usage_type1= context1=
wordAnalyzer---------->gel is ROOT!
************>>>testExt=memeliymişim pos=0
************>>>demoRootExt=
FindExtUtils--->ExtIsVerbExtension--->testExt=memeliymişim pos=0
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->
--->isVerbExtension--->will be processed testExtWork------->memeliymişim
--->isVerbExtension--> simpleExt-----  ------->memeliymişim
1--->isVerbExtension--> verbMultiExt-----  ------->
1--->isVerbExtension--> demoMultiExt-----  -------> :
FindExtUtils--->ExtIsVerbExtension--->testExt=memeliymişim pos=6
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->memeli
--->isVerbExtension--->will be processed testExtWork------->ymişim
--->isVerbExtension--> simpleExt-----  ------->memeliymişim
1--->isVerbExtension--> verbMultiExt-----  ------->memeli
1--->isVerbExtension--> demoMultiExt-----  ------->-memeli :
FindExtUtils--->ExtIsVerbExtension--->testExt=memeliymişim pos=10
--->isVerbExtension
--->isVerbExtension--->result extension wordExt-------->memeliymiş
--->isVerbExtension--->will be processed testExtWork------->im
--->isVerbExtension--> simpleExt-----  ------->memeliymişim
1--->isVerbExtension--> verbMultiExt-----  ------->memeliymiş
1--->isVerbExtension--> demoMultiExt-----  ------->-memeli-ymiş :
1testExtWork=(im)
final word ext--------------->memeliymişim
final demo ext-----------------------------------> :: -memeli-ymiş : *im
wordAnalyzer---------->gel is ROOT with extensions=memeliymişim
1--------------------------->--------------------------->--------------------------->
root=gel ext=memeliymişim wordid="19369"mult-no="0"word_type="yardımcı  fiil"
SENSE INFO ="gelmek","19369","0",1,"E","-den"
"gelmek","19369","0",18,"E","-e"
"gelmek","19369","0",26,"E","-e"
"gelmek","19369","0",27,"E","-e"
"gelmek","19369","0",31,"E","yardımcı  fiil"
"gelmek","19369","0",32,"E","yardımcı  fiil"
"gelmek","19369","0",33,"E","yardımcı  fiil"
"gelmek","19369","0",34,"E","yardımcı  fiil"
--------------------------->--------------------------->--------------------------->
*****************************************
str=gelm
*****************************************
str=gelme
FindWordRootUtil==>"İsim" ===>"gelme"="19368""0"1 verb="H" wordType1="İsim" wordType2= wordType3= usage_type1= context1=
wordAnalyzer---------->gelme is ROOT!
testExt noun.......=meliymişim pos=0
--->isNounExtension
noun ext--------->m
total word ext--->m
testExt noun.......=meliymişim pos=1
--->isNounExtension
testExt verbfromnoun.......=meliymişim pos=0
isVerbFromNounExtension construction in process
--->isNounExtension
verbFromNoun ext--------->m
total word ext--->m
testExt verbfromnoun.......=meliymişim pos=1
isVerbFromNounExtension construction in process
--->isNounExtension
wordAnalyzer--->ext not found prevRoot=gelprevExt=memeliymişim
FindWordRootUtil==> ===>"gelme"="19368""0"4 verb="H" wordType1= wordType2= wordType3= usage_type1= context1="Fizik"
wordAnalyzer---------->gelme is ROOT!
wordAnalyzer--->not specified word type or context
FindWordRootUtil==>"Sıfat" ===>"gelme"="19368""0"3 verb="H" wordType1="Sıfat" wordType2= wordType3= usage_type1= context1=
wordAnalyzer---------->gelme is ROOT!
wordAnalyzer--->ext not found prevRoot=gelprevExt=memeliymişim

*****************************************
str=gelmem
*****************************************
str=gelmeme
*****************************************
str=gelmemel
*****************************************
str=gelmemeli
*****************************************
str=gelmemeliy
*****************************************
str=gelmemeliym
*****************************************
str=gelmemeliymi
*****************************************
str=gelmemeliymiş
*****************************************
str=gelmemeliymişi
*****************************************
str=gelmemeliymişim
===================>gelmemeliymişim
 root=gel ext=memeliymişim
\r
\n
yapıldı
yapmak
yapılmak
yapabilmek
gelebildi
gelebilmiş
gelebiliyorum
gelebildikçe
gelebildiğini
kapatabiliyorum
itebileceğim
geldikçe
gelebildikçe
aldığında
alabildiğinde
oynarım
oynarsın
oynar
oynarız
oynarsınız
oynarlar
görürüm
görürüz
kesersin
yazmazsın
yazmayız
yazmazsınız
yazmazlar

oynatılmam
görülürüm
yazılırsın
kesilirsiniz
gelmem
gelmeyiz
gelinmez
yazılmaz
yazılmayız
yapabilirim
edebilirsin
görebilirsiniz
yazabilemem
kesebilemezsin
yazabilemez
durabilemeyiz
yazabilemezsiniz
yazabilemezler
edebilirsin
görebilirsiniz
görebilirler
görebiliriz
görebilirim
görebilir
yapabilir
edebilir
yapabilmez
edebilmez


yapmasın
yapmayız
yapmazsınız
yapmazlar
bölmesiniz
katılmam
katılmaz
görülürüm
yazılmayız
görebilirsiniz

gelinmez
yazılmaz
kesebilemezsin
yazabilemez

tutunurum
tutunursun
tutunur
tutunuruz
tutunursunuz
tutunurlar
tapınırım
tapınırsın
tapınır
tapınırız
tapınırsınız
tapınırlar
tapınabilirsiniz
geçinirim
yaptır
yaptırır
yaptırt
yaptırtır
yaptırtılır
yaptırılır
yapılır
yapar
okutulur
yaptırtılabilir
geçirtilebilir
yaptırabilir
yapabilir
geliyorum
geliyor
geliyorsun
geliyoruz
geliyorsunuz
geliyorlar
tutunurum
tutunursun
tutunur
tutunuruz
tutunursunuz
tutunurlar
tapınıyorum
tapınıyorsun
tapınıyor
tapınıyoruz
tapınıyorsunuz
tapınıyorlar
tapınabiliyorsunuz
geçiniyorum
yaptırıyor
okutuluyor
yaptırtılabiliyor
geçirtilebiliyor
yaptırabiliyor
yapabiliyor
yazmam
yazmazsınız
yazmaz
almaktayım
almaktadırlar
almaktasın
geldim
gelsem
gelirim
geliyorum
geldim
gelmişim
geleceğim
gelsem
geleyim
gelesiniz
gelmeliyim
gelirdim
geliyordum
gelmekteydim
gelmedeydim
geldiydim
gelmiştim
gelecektim
gelseydim
geleydim
gelirmişim
geliyormuşum
gelmekteymişim
gelmedeymişim
geldiymişim  ???
gelmişmişim
gelecekmişim
gelseymişim
geleymişim
gelirsem
geliyorsam
gelmekteysem
gelmedeysem
geldiysem
gelmişsem
geleceksem
gelseysem ???
geleysem ???
gelirdir???
geliyordur
gelmektedir
gelmededir
geldi???
gelmiştir
gelecektir
gelse???
geledir???

okutulur
yaptım
yaptırılır
yaptırt
kapatabildim
yaptırtılabilir
yaptırtılır
yaptırtılabilir
yaptırtılır
yapmak
yapılmak
yapabilmek
bölmesin
bölmesiniz
bölmezsin
yarım
kızım
okutulur
yaptım
yapayım
geliniz
gelin
geliniz
geçiniyorum
tapınıyor
yapalım
gelmeğe
okumasın
kalışı
kalışta
kalıştan
gelmekten
gelmekte
gelmen
gelirdim
geliyordum
gelmekteydim
gelmedeydim
geldiydim
gelmiştim
gelecektim
gelecektim
gelseydim
geleydim
gelmeliydim
gelmezdi
gelmiyordu
gelmemekteydi
gelmemedeydim
gelmediydi
gelmemiştim
gelmeyecektim
gelmeseydim
gelmeyeydim
gelmemeliydim
gelmem
gelmezsin
gelmez
gelmeyiz
gelmezsiniz
gelmezler
gelmemekteydi
gelmemedeydi
gelmiyecek
gelmiyeydim
geliyordum
geliyordun
geliyordu
geliyorduk
geliyordunuz
geliyordular
gelmiyordum
gelmiyordun
gelmiyordu
gelmiyorduk
gelmiyordunuz
gelmiyordular
yaptırtabilirdim
yaptırtabiliyordum
gelirmişim
geliyormuşum
gelmekteymişim
gelmedeymişim
geldiymişim
gelmişmişim
gelecekmişim
gelseymişim
geleymişim
gelmeliymişim
yaptırtılabilirmişim
geleymişim
gelmezmişim
gelmiyormuşum
gelmemekteymişim
gememedeymişim
gelmediymişim
gelmeyecekmişim
gelmeseymişim
gelmeyeymişim
gelmemeliymişim
gelirsem
geliyorsam
gelmekteysem
gelmedeysem
geleceksem
gelseysem
geleysem
gelmeliysem
gelmezsem
gelmiyorsam
gelmemekteysem
gelmemedeysem
gelmeyeceksem
gelmeseysem
gelmeyeysem
gelmemeliysem
gelmiştir
geliyordur
gelecektir

Saturday 10 August 2013

A computer program that understands Turkish language

I am working on a computer program that understands the Turkish language.   The program first reads a written Turkish text and then answers questions about its content.  It can also outline a given text paragraph by paragraph.

It may be used to do tasks related to large amounts of text or spoken English provided that they are converted to text.

Evaluation of resumes, production of meeting notes, internet tracking for companies or individuals, contentwise comparison of large texts, translation, tracing of legal recordings of aviation, security etc.
tracing of newspapers and broadcasting on internet.

The architecture of the program in a few words:  It is based on JAVACC and its multiple use on byproducts.  It imitates exactly the Turkish grammar and produces intermediate level outputs for words, sentences and higher levels.

Currently, a given sentence is analyzed and each word and its extensions are classified as noun, verb, pronoun, adjective usw.  The root words are verified with a Turkish dictionary and then extensions are specified.

Consequently, the functions of words in sentences will be specified as subject, object, verb etc.

At this stage, the program will be able to answer simple questions.

If you are interested in this project please contact me.
arsaral ( at ) yahoo.com

More to come.

Kind regards.