Tuesday, 22 May 2018

Bir Yazı İşleme Robotu neler yapmalı?

Bir Yazı işleme robotu neler yapabilir?
Yazı işleyici(text processor) üst seviye gerekleri(requirements)
---------------------------------------------------------------
-Bir yazı verildiğinde buna ilişkin soruları cevaplamak
-Referans yazı verilmeden genel bir soruyu cevabını internetten arayıp
bularak cevaplamak
-periyodik yayınları otomatik olarak internetten izleyip ilgili olan
yazıları okuyup kaydetmek
-Bir yazının özetini çıkarmak
-Bir yazının anafikrini bulmak
-İki yazıyı içerik olarak karşılaştırmak(müttesebat takibi vb.)
-Verilmiş bir yarım yazıyı tamamlamak
-Belirli bir konuda yazı yazmak
-akış halindeki yazıları tarar (kanuni olarak kayıt edilen telefon,
telsiz konuşmaları) ve konuyu ya da niyeti bulur
-işlemiş olduğu yazılardan öğrenir(dilbilgisi, hikayesel olaylar,
semantic bilgi)
-hatırlar
-yazının güvenilirliğini değerlendirir
-özellikleri ve ilgi alanları kullanıcı tarafından belirlenebilir.

Sunday, 20 May 2018

Otomatik soru cevaplama motoru gereklilikleri(Automatic question answering requirements)

Otomatik soru cevaplama motoru gereklilikleri
(Automatic question answering requirements)

Otomatik soru cevaplama iki kısımdan oluşur:
1- Sorunun algılanması ve cevaplamanın algılayabileceği
bir biçime dönüştürülmesi
2- Belirlenen arama kriterlerine göre ayrıştırılmış
ana metin üzerinde işlem yapılarak cevabın bulunması.

Burada, örnek olarak Hemingway'in 'İhtiyar Adam ve Deniz'
adlı kitabından bir konu seçilerek bu konuya ilişkin
mümkün olan bütün sorular belirlenecek ve bunlara
verilmesi gereken otomatik cevaplar belirlenecektir.

Seçilen konu "kuşlar" ve "ihtiyar balıkçı"'dır.

--İLGİLİ METİN KISIMLARI---------------------------------------------------------------------
«Seninki açıklarda avlanmaktan hoşlanmaz » «Evet.» dedi çocuk. «Belki onun göremediği bir şey görürüm. Diyelim yemlenen bir kuş, ya da yunusları yakalamak için razı ederim.»
---------------------------
---------------------------
 Kuşlara çok acırdı, hele o her dakika uçuşan, aranan, çokluk bir şey bulamayan küçük deniz kırlangıçlarına çok acırdı. «Kuşların yaşamı bizimkinden çok zor, ama hırsız kuşlar, bir de o çok kocamanlar başka. Okyanus böylesine zalimken kuşlar, sözgelişi kırlangıçlar neden öyle ince, zayıf yaratılmış? Okyanus güzeldir, iyidir, ama birden öylesine zalim olur ki, uçan, dalıp avlanan bu kuşcağızlar o kederli küçük sesleriyle bu denize göre çok, pek çok zayıf kalırlar.» diye düşündü.
---------------------------
---------------------------
Tam o sırada, biraz ilerde, önünde uçan uzun kara kanatlı bir kuş gördü. Birden alçaldı kuş, kanatlarını arkaya kısıp aşağı süzüldü, sonra yeniden bir daire çizerek yükseldi.

«Bir şeyler bulmuş olmalı,» dedi yaşlı adam yüksek sesle. «Aranmaya pek benzemiyor bu.»

Kuşun daireler çizdiği yere doğru kürek çekmeye başladı yavaşça. Acele etmiyor, iplerini gergin tutuyordu. Ama akıntıyı biraz geçti, hiç istifini bozmuyordu, ancak kuşu görmesinden öncesine göre de bir az daha hızlı gidiyordu.

Kuş daha yükseldi, yeniden daireler çizmeye başladı, kanatlarını hiç oynatmıyordu: Sonra birden daldı. Yaşlı adam, uçan balığın sudan sıçradığını, havada umutsuzca bocaladığını gördü.
«Yunuslar!» dedi yaşlı adam yüksek sesle. «Koca koca yunuslar.»

Küreklerini bıraktı. Başaltından küçük bir olta çıkardı. Orta büyüklükteki iğnesine sardalyalardan birini geçirdi. Yandan salıverdi. Kıç taraftaki bir halkaya düğümledi. Sonra başka bir oltayı da yemleyip kangal gibi doladı, baş tarafta gölge bir yere koydu. Kürek çekip uzun kanatlı kuşu kollamağa başladı. Kuş şimdi suyun üstünde aranıyordu.

Yaşlı adam, gözlerken kuş kanatlarını kısıp gene daldı, sonra kanatlarını boş bir çaba ile yırtıcı yırtıcı sallayıp uçan balığı kovalamağa başladı. Yaşlı adam, balığı kovalayan yunusların her çıkışlarında küçük kamburlarını görüyordu. Yunus uçan balığın tam altında yüzüyordu, balık suya düştüğünde hızı kesilmemiş olacaktı. Büyük bir sürü diye düşündü. Uçan balığın kurtulma umudu çok az. Kuş da talihsiz görünüyor. Balık ona göre çok büyük, hem de çok hızlı gidiyor.

Uçan balığın üst üste sıçramalarını, kuşun boşa giden saldırmalarını gördü. Sürü benden uzaklaştı diye düşündü. Çok hızlı gidiyorlar, açıldılar. Belki sürüden ayrılan biri takılıverir oltama, hem belki benim büyük balık da onların ardındadır.
---------------------------
---------------------------
Bulutlar şimdi karanın üstünde dağ gibi yığılıyorlardı. Kıyı, arkasında kurşunsu mavi tepeleri ile yeşil bir çizgi gibi kalmıştı. Deniz koyu mavi bir renk almıştı, öyle koyu idi ki mor denebilirdi. Suya bakınca karanlıklarda yakamozların kırmızı parçacıkları ile güneşin yaptığı garip pırıltıları gördü. Oltalarına bir göz attı, bozuldular mı, diye. Birçok yakamoz görüp sevindi."Balık var" demekti bu. Güneş yükseldiğinden suda pırıltılar yapıyordu. Demek hava iyi olacaktı, karanın üstündeki bulutlardan da belliydi bu. Kuş artık görünmüyordu, suyun üstünde güneşin soldurduğu sarı Sargasso yosunları ile kayığın hemen yanında yüzen mor hareli, kaypak gövdeli bir deniz anasından başka hiç bir şey yoktu. Deniz anası yan yatıp yeniden düzeldi. Bir metre uzunluğundaki zehirli mor liflerini ardında sürükleyerek bir balon gibi neşeli neşeli yüzüyordu.
---------------------------
---------------------------
Yaşlı adam baktı, kuş gene daireler çiziyordu. «Balık buldu,» diye söylendi yüksek sesle. Uçan balığın sıçradığı falan yoktu, küçük balıklar da kaçışmıyorlardı. Yaşlı adam, küçük bir tuna balığının havaya fırlayıp baş aşağı suya düştüğünü gördü. Tuna güneşte gümüş gibi parladı, suya düştükten sonra bir tane, bir tane daha fırladı, değişik yönlere atlıyorlardı. Suyu karıştırdılar. Kaçan balığın ardından uzun sıçramalar yapıyor, onu döndürüyor, sürüklüyorlardı.
Yaşlı adam, hızlı kaçışmasalar yaklaşabilirim diye düşündü. Sürünün, suyu bembeyaz köpük içinde bırakmasını seyrediyordu. Kuş şimdi alçalıyor, dalıyor, tunaların telâşlı kovalamaları ile suyun üstüne çıkan balığa saldırıyordu.
---------------------------
---------------------------
Umut kesilmez diye düşünüyordu.

Sandala doğru küçük bir kuş geldi kuzeyden. Bir ötleğen kuşuydu bu, denizin üstünde çok alçaktan uçuyordu. Yaşlı adamın başı üstünde uçtu ve gidip ipe kondu, şimdi artık rahatını bulmuştu.

«Kaç yaşındasın sen?» diye sordu yaşlı adam. a ilk yolculuğun mu bu?» Adam konuşurken kuş ona baktı, ipi kollayamayacak kadar yorgundu. Zayıf ayaklan ile sımsıkı tutunduğu ipte dengesini bulmaya çalışıyordu. «Oynamıyor» dedi, yaşlı adam kuşa. «Hiç oynamıyor. Durgun bir gecenin ertesi böyle yorgun olmamalısın. Kuşlar nereye gidiyor böyle?»

Çaylaklar bu kuşcağızları yakalamak için denize açılırlar. Nasılsa bir şey anlıyamıyacağı için bunlardan kuşa söz etmedi. Çok geçmeden tanıyacaktı zaten çaylakları.

«iyice dinlen küçük kuş,» dedi. «Sonra git, her insan gibi, her kuş gibi ya da her balık gibi yaşamını sürdür.»
Konuşmak arttırıyordu cesaretini. Gece sırtı tutulmuştu, şimdi çok canı yanıyordu.

«Kuş, istersen benim evde kal,» dedi. «Yelkeni açıp şu çıkan hafif rüzgârla seni kıyıya bırakamadığıma üzülüyorum. Ama ben de burada yalnız değilim, bir arkadaşım var.»

Tam o sırada balık öyle birdenbire çekti ki, yaşlı adamı pruvaya düşürdü, eğer kendini tutup bir az da ip salmasaydı denize düşecekti.

İp sarsılınca kuş uçmuştu. Yaşlı adam, kuşun gittiğini bile görmemişti. Sağ eliyle ipi iyice yokladı, elinin kanadığını gördü.

«Anlaşılan bir şeyler oldu ona,» dedi yüksek sesle. Balığı döndürebilir miyim diye ipi çekti. Ama ip çok gergindi, sıkı sıkı tuttu. Kendini yeniden ipin baskısına bıraktı.

«Balık, şimdi canın yanıyor artık,» dedi. «Allah bilir a, benimki de yanıyor.»
Çevresine bakıp kuşu aradı. Arkadaş olmak istiyordu. Kuş uçmuştu.

Çok kalmadın, diye düşündü. Kıyıya kadar yolun uzun ve zahmetli. Nasıl oldu da ben farkına varmadan bir tek hızlı çekmeyle elimi kesti balık? Gittikçe salaklaşıyorum. Belki o sırada küçük kuşa bakıyor, onu düşünüyordum, şimdi işime bakayım ve sonra gücümü yitirmemek için de tunayı yemeliyim.
---------------------------
---------------------------
«Eğer gene de yorulmadınsa balık,» dedi yüksek sesle, «sen çok acaipsin.» Şimdi kendini çok yorgun buluyordu. Gecenin yaklaştığını biliyor, başka şeyler düşünmeye çalışıyordu. Büyük kulüpleri düşünmeye başladı. Yaşlı adama göre Gran Ligas'tı büyük kulüp ve New York Yankee'lerinin Detroit Kaplanları ile oynadığını biliyordu. Bugün ikinci gün, hâlâ Juego'ların sonucunu bilmiyorum, diye düşündü. Ama güvenmem gerek, topuk kemiği ağrısa da büyük DiMaggio'ya güvenmem daha iyi olur. Kemik ağrıması da ne demek? diye sordu kendi kendine. Un espuela de huesc. Biz de olmaz böyle şeyler. Dövüşen bir horozun mahmuzu gibi acı verir mi insanın topuğu? Ben buna da yokum, kör olduktan sonra horozlar gibi dövüşmeye de katlanamam. İnsanoğlu büyük kuşların, hayvanların yanında ne ki? Şu denizin karanlıklarında, aşağıdaki hayvanın yerinde olmak isterdim.
---------------------------
---------------------------

*****SORU-CEVAPLAR***************************************************************************************
***Balıkçı bir kuş gördü mü? Nasıl bir kuş gördü?
Tam o sırada, biraz ilerde, önünde uçan uzun kara kanatlı bir kuş gördü.
*********************************************************************************************************
***Balıkçı kuşları sever mi? Balıkçı kuşlara karşı ne duyar? Kuşlar neden bu denize göre çok zayıf kalırlar?
 Kuşlara çok acırdı, hele o her dakika uçuşan, aranan, çokluk bir şey bulamayan küçük deniz kırlangıçlarına çok acırdı. «Kuşların yaşamı bizimkinden çok zor, ama hırsız kuşlar, bir de o çok kocamanlar başka. Okyanus böylesine zalimken kuşlar, sözgelişi kırlangıçlar neden öyle ince, zayıf yaratılmış? Okyanus güzeldir, iyidir, ama birden öylesine zalim olur ki, uçan, dalıp avlanan bu kuşcağızlar o kederli küçük sesleriyle bu denize göre çok, pek çok zayıf kalırlar.» diye düşündü.
 ********************************************************************************************************
 ***Bu uzun kara kanatlı kuş ne yaptı? Neden aranmaya pek benzemiyor bu?
 Tam o sırada, biraz ilerde, önünde uçan uzun kara kanatlı bir kuş gördü. Birden alçaldı kuş, kanatlarını arkaya kısıp aşağı süzüldü, sonra yeniden bir daire çizerek yükseldi.

«Bir şeyler bulmuş olmalı,» dedi yaşlı adam yüksek sesle. «Aranmaya pek benzemiyor bu.»
*********************************************************************************************************
***Nereye doğru kürk çekmeye başladı?  Nasıl kürek çekiyordu? Neden daha hızlı gidiyordu?
Kuşun daireler çizdiği yere doğru kürek çekmeye başladı yavaşça. Acele etmiyor, iplerini gergin tutuyordu. Ama akıntıyı biraz geçti, hiç istifini bozmuyordu, ancak kuşu görmesinden öncesine göre de bir az daha hızlı gidiyordu.
*********************************************************************************************************
***Kuş neler yaptı?  Sudan ne sıçradı?  Koca koca olan nedir?
Kuş daha yükseldi, yeniden daireler çizmeye başladı, kanatlarını hiç oynatmıyordu: Sonra birden daldı. Yaşlı adam, uçan balığın sudan sıçradığını, havada umutsuzca bocaladığını gördü.
«Yunuslar!» dedi yaşlı adam yüksek sesle. «Koca koca yunuslar.»
*********************************************************************************************************
*** Kürekleri ne yaptı?  Başaltından ne çıkardı? Sardalyaları ne yaptı? Ne yapıp uzun kanatlı kuğu kollamağa başladı?  Kuş ne yapıyordu şimdi?
Küreklerini bıraktı. Başaltından küçük bir olta çıkardı. Orta büyüklükteki iğnesine sardalyalardan birini geçirdi. Yandan salıverdi. Kıç taraftaki bir halkaya düğümledi. Sonra başka bir oltayı da yemleyip kangal gibi doladı, baş tarafta gölge bir yere koydu. Kürek çekip uzun kanatlı kuşu kollamağa başladı. Kuş şimdi suyun üstünde aranıyordu.
*********************************************************************************************************
***Yaşlı adam gözlerken kuş nasıl daldı? Kuş kanatlarını nasıl salladı?  Yaşlı adam yunusların nesini görüyordu her çıkşlarında? Yunus nerede yüzüyordu?  Sürü ne büyüklükteydi?
***Yunuz niye uçan balığın altında yüzüyordu?  Kuş nasıl görünüyordu? Neden öyle görünüyordu?
Yaşlı adam, gözlerken kuş kanatlarını kısıp gene daldı, sonra kanatlarını boş bir çaba ile yırtıcı yırtıcı sallayıp uçan balığı kovalamağa başladı. Yaşlı adam, balığı kovalayan yunusların her çıkışlarında küçük kamburlarını görüyordu. Yunus uçan balığın tam altında yüzüyordu, balık suya düştüğünde hızı kesilmemiş olacaktı. Büyük bir sürü diye düşündü. Uçan balığın kurtulma umudu çok az. Kuş da talihsiz görünüyor. Balık ona göre çok büyük, hem de çok hızlı gidiyor.
*********************************************************************************************************
***Uçan balık ve kuşun nelerini gördü balıkçı?  Balıkçı sürü ile ilgili ne düşündü? Sürü ne yaptı?İhtiyar balıkçının oltasına ne takılabilir?  Büyük balık belki nerededir?
Uçan balığın üst üste sıçramalarını, kuşun boşa giden saldırmalarını gördü. Sürü benden uzaklaştı diye düşündü. Çok hızlı gidiyorlar, açıldılar. Belki sürüden ayrılan biri takılıverir oltama, hem belki benim büyük balık da onların ardındadır.

Otomatik soru cevap bu soruların doğru cevaplanmasını gerektirir.  Normal searchte 'kuş' + 'gördü' ile arama yaptığınızda
aramanız bir döküman ya da o dükümanın ilgili sayfasını döker.  Ayrıca, eğer 'görmüş' yazarsanız aramanız başarısız olur.
Oysa fiil ve isim çekimlerini yapan ve kelimelerin köklerini de bulan LANGANA-T ile işlenmiş bir dosyada ilgili cümleyi
otomatik olarak bulursunuz.  Ayrıca o cümle ayrıştırılmış olduğu için kolaylıkla sorunun gerektirdiği cevap şekline
sokulabilir.  Bütün bunları zaman içinde yavaş bir tempo ile ya da gelen taleplere göre yapıp göstereceğim.

Saygılar.

Ali R+ SARAL

Monday, 14 May 2018

Anlam nedir? What is meaning?


 Anlam nedir?  Anlam nasıl oluşur? 

Yeni bir şey ya da kavramla karşılaştığımızda ona bir anlam veremeyiz.  Bu ilişkilendiremediğimiz
şey başlangıçta tamamen bağımsız bir bilinmeyen olarak belleğimize yerleşir.  Bu içi boş bir ‘anlam’dır.  Daha sonra zaman içinde bu anlamsız şeyler ilgili tecrübemiz artar ya da var olan diğer anlamlı şeylerle bu bilinmeyenin ilişkisi canlanmaya başlar.  Bu gelişme giderek artar ve biz
artık bilinmeyen bu şeyi bilmeye daha doğrusu anlamaya başlarız.

Anlam bağlam içinde oluşur.  Anlamı belirleyen içinde bulunduğu bağlamdır.

Bilgisayar tasarımı açısından:  anlam başlangıçta bağlantıları olmayan içi boş bir kayıttır. Daha sonra ilk olarak, bir kelime yani o boş kayıtın temsil ettiği şey ya da etiketi  bu boş kayıta bağlanır.  Bu kelimeyle ilişkili olan kayıtlar program akışı içinde bu boş kayıta bağlanır.  Eğer dikkat edilirse, anlamın kullanılan dilden bağımsız olduğu görülür.  Başlangıçta, ilk eklenen etiket kayıt Türkçe’den başka bir dile çevrilirse o dilde anlama işlemi gerçekleşebilir.


Webster sözlüğü:
1 a: Kişinin özellikle dil aracılığı ile iletmek istediği şey.
b: Özellikle dil aracılığı ile iletilen şey.
2 ima edilen ya da kastedilen şey
webster
1 a:the thing one intends to convey especially by language.
b: the thing that is conveyed especially by language
2 something meant or intended

word reference.com
1. Olduğu kastedilen ya da gerçekten olan şey,
ifade edilen ya da belirtilen; önemlendirilen
word reference.com
1. what is intended to be or actually is,
expressed or indicated;signification

wictionary
1. Bir şeyin semboline karşı düşen değeri
2. Bir şeyi önemlendiren
3. (semantics) Bir kelime ya da cümlenin belirttiği
nesne veya kavram, veya bir cümlenin söylediği.
wictionary
1. The symbolic value of something
2. The significance of a thing.
3. (semantics) The objects or concept that a word or phrase denotes,
or which a sentence says.
Synonyms
(significance): sense anlam???
(symbolic concept): definition(semantics). tanım

free dictionary
1 a. Notasyonlanan şey, temel alınan, veya bir kelime veya cümle
ile ilişkilendirilen
b. İletilen veya kastedilen bir şey
free dictionary
1 a. The denotation, referent, or idea assocaited with a word or phrase.
b. Something that is conveyed or intended,
especially by language;sense or significance





 

Friday, 11 May 2018

LanaganaT Morfolojik Kısaltmalar


Langana-T Türkçe Dil Parçalayıcısının morfoloji aşamasında kullandığı dil değişkenlerinin isimleri (burada var olan dğişkenlerin hepsi yerine bir fikir verecek kadarı belirtilmiştir).


R ö.is.   Root - R kelimenin olduğu gibi sözlükten alındığını belirtir
N is.   Noun - N kelimenin isim kökenli kelimelerin kısmında işlendiğini belirtir.
V f.         Verb - V kelimenin fiil kökenli kelimelerin kısmında işlendiğini belirtir.
---------------------
is.           isim
f.             fiil
sf.           sıfat
zf.           zarf
ed.         edat
ö.is.       özel isim
zm.        zamir
bağ.       bağlaç
ün.         ünlem
----------------------
60           2   35      başka
                Kitabın en başından itibaren 60. kelime, 2. cümle,
                bu cümle içinde 35. kelime
R eda. sf. ===>başka
                'başka' kelimesi root edat veya sıfat'tır.
----------------------
isim ekleri
62           2   37      sandala
N is. ===>sandala   =sandal -a   ^Noun->Noun
                -a eki isimden isim oluşturuyor.
N is. ===>eve   =ev -e   ^Noun->Noun
N is. ===>işi   =iş -i          ^Noun->Noun
R zm. ===>bunları   bu [n] +lar -ı
N is. ===>ağlardan   =ağ  -lar  -dan          ^Noun->Noun
R zm. ===>benden   ben -den
N zf. ===>orda   =orada -da       ^Noun->Noun 
                (Zamirler isim gibi işleniyor, istisnalar dışında)
R zm. ===>Bende   ben -de

N is. ===>haberlerini   =haber  -ler  -ini                 ^Noun->Noun
N is. ===>yalnızlığını   =yalnızlık -ğını       ^Noun->Noun

-----------------------
fiil ekleri = edilgenlik eki + olumsuzluk eki + zaman eki + şahıs eki
V f. ===>okuyacağım   =oku +2y -acağım             ^CEKliGelecek %tr.intr.
V f. ===>bilmiyordu   =bilmi -iyordu       ^ŞimdikiDILIGeçmiş       %tr.intr.
V f. ===>çıkardı   =çıkar -dı          ^GenişDiliGeçmiş => morphoHistory=DiliGeçmiş                             %tr.intr.
V f. ===>verdi   =ver -di               ^DiliGeçmiş        %dat.tr.intr.
V f. ===>olur   =ol -ur    ^IRliGenişZ         %intr.
V f. ===>bitmiş   =bit -miş           ^MİŞliGeçmiş    %tr.intr.
V f. ===>düşünsene   =düşün -sene      ^Şart     %tr.intr.
V f. ===>gel   =gel           ^Emir    %intr.
V f. ===>batmıştı   =bat -mıştı   ^DiliMişliGeçmiş              %intr.

V f. ===>bölüşürüz   =bölüş -ürüz           ^IRliGenişZ
V f. ===>Döndüğüm   =Dön -düğüm      ^Verb->Noun  %intr.
V f. ===>anlatırsın   =anlat -ırsın               ^IRliGenişZ         %tr.intr.dat.
V f. ===>korkuyorum   =kork -uyorum                 ^yorŞimdiZ         %dat.intr.
V f. ===>korkacaksın   =kork -acaksın    ^CEKliGelecek %dat.intr.
V f. ===>alsak   =al -sak                ^Şart     %dat.tr.intr.
V f. ===>Alalım   =Al -alım           ^Emir    %dat.tr.intr.
V f. ===>Aratırım   =Arat -ırım   ^IRliGenişZ         %tr.intr.
V f. ===>istemiyorum   =iste (mi) -iyorum          ^yorŞimdiZ         %tr.intr.

V f. ===>yenilmez   =yen +1il (mez)       ^Verb->Adjective  => morphoHistory=Emir       IRliNegGenişZ   Passive                                 %tr.
V f. ===>bulabilir   =bul +1abil -ir             ^IRliGenişZ         %tr.intr.
V f. ===>alabilirim   =al +1abil -irim         ^IRliGenişZ         %dat.tr.intr.
-----------------------
İsim Kelime tipi Dönüştürücüler
N is. ===>köşedeki   =köşe -deki             ^Noun->Noun/Adjective
N is. ===>denizlerdeki   =deniz  -ler  -deki           ^Noun->Noun/Adjective 
N sf. ===>Balıksız   =balık -sız     ^Noun->Adjective
N is. ===>kısmetli   =kısmet -li   ^Noun->Noun/Adjective
N is. ===>Denizle   =Deniz -le    ^Noun->Adverb
N zf. ===>saatlerce   =saat  -ler  -ce        ^Noun->Adverb 
N is. ===>ellerimle   =el  -ler  -imle          ^Noun->Adverb
N is. ===>zamandır   =zaman -dır            ^Noun->Verb   %intr.
N zm. ===>seninledir   =sen [inle] -dir ^Noun->Verb  %intr. 
N f.  ===>tutanlarsa   =tut -anlarsa         ^Noun->Verb Şart  =>tense analysis= Şart         %tr.intr.

N is. ===>Gözlerinden   =Göz  -ler  -inden           ^Noun->Noun
-----------------------
Fiil Kelime tipi dönüştürücüleri
-----------------------
V f. ===>duran   =dur -an            ^Verb->Noun/Adjective             %intr.
V f. ===>uyurken   =uy -ur -ken               ^IRliGenişZ->Adverb     %dat.intr.
V f. ===>kalkarak   =kalk -arak ^Verb->Adverb ->Adverb          %intr.
V f. ===>olup   =ol -up ^Verb->Adverb               %intr.
V f. ===>döndüğümde   =dön -düğümde            ^Verb->Noun  %intr.
V f. ===>sarsıldığını   =sars +1ıl -dığını    ^Passive  => morphoHistory=Verb->Noun                         %tr.
V f. ===>kaldıkça   =kal -dıkça    ^Fiilden-Zarf dikçe->Adverb => morphoHistory=Verb->Adverb                              %intr.
V f. ===>tutunca   =tut -unca    ^Verb->Adverb               %tr.intr.
V f. ===>oturmadan   =otur (ma) -dan ^Verb->Adverb               %intr.
V f. ===>çıkalı   =çık -alı                ^Verb->Adverb               %intr.

V f. ===>yaşadığımca   =yaşa -dığımca   ^Verb->Adverb               %intr.

------------------------
Zarf kelime tipi dönüştürücüleri
N zf. sf. ===>böylesine   =böyle -sine    ^Adverb->Adverb
V f. ===>ettikten   =et -tikten   ^Verb->Adverb ->Adverb          %tr.intr.dat.
N zf. ===>öncesine   =önce -sine            ^Adverb->Adverb
V f. ===>Çektikçe   =Çek -tikçe                 ^Fiilden-Zarf dikçe->Adverb => morphoHistory=Verb->Adverb                              %tr.intr.

V f. ===>çekilip   =çek +1il -ip    ^Passive  => morphoHistory=Verb->Adverb                     %tr.intr.

İyelik ekleri
------------------------
R zm. ===>O   o
6763      903   1   benim
R zm. ===>benim   ben -im
6764      903   2   kardeşim
N is. ===>kardeşim   =kardeş -im            ^Noun->Noun
R zm. ===>senin   sen -in
R zm. ===>bizim   biz -im
N sf. is. ===>Dostlarımız   =Dost  -lar  -ımız          ^Noun->Noun

Edilgenlik ekleri
-------------------
V f. ===>açıldım   =aç +1ıl -dım ^Passive  => morphoHistory=DiliGeçmiş                              %tr.intr.
V f. ===>soyulmuş   =soy +1ul -muş       ^Passive  => morphoHistory=MİŞliGeçmiş                          %tr.
V f. ===>bozulmamış   =boz +1ul (ma) -mış        ^Passive  => morphoHistory=MİŞliGeçmiş          %tr.intr.
V f. ===>kırılır   =kır +1ıl -ır          ^Passive  => morphoHistory=IRliGenişZ                               %tr.intr.
V f. ===>yenilmez   =yen +1il (mez)       ^Verb->Adjective  => morphoHistory=Emir       IRliNegGenişZ   Passive                                 %tr.
V f. ===>veriliyordu   =ver +1il -iyordu ^Passive  => morphoHistory=ŞimdikiDILIGeçmiş                             %dat.tr.intr.
V f. ===>yenilmezdi   =yen +1il -mezdi                 ^Passive  => morphoHistory=DiliGeçmiş              IRliNegGenişZ                   %tr.
V f. ===>üzülüyorlardı   =üz +1ül -üyorlardı        ^Passive  => morphoHistory=ŞimdikiDILIGeçmiş                             %tr.
V f. ===>kesilirdi   =kes +1il -irdi               ^Passive  => morphoHistory=GenişDiliGeçmiş                 %tr.intr.
V f. ===>utanılacak   =utan +1ıl -acak     ^Passive  => morphoHistory=CEKliGelecek                        %intr.

V f. ===>yatırılıp   =yatırıl -ıp      ^Passive  => morphoHistory=Verb->Adverb                     %tr.intr.
V f. ===>sarsıldığını   =sars +1ıl -dığını    ^Passive  => morphoHistory=Verb->Noun                         %tr.
V f. ===>denilen   =den +1il -en               ^Passive  => morphoHistory=Verb->Noun/Adjective                  %intr.

Nesne Geçişkenliği
------------------
dat.    (dative) dolaylı tümleç yapabilir
tr.           (transitive) nesnesi olabilir
intr.       (intransitive) öznesi olabilir
Eğer bunlardan yalnız bir veya ikisi varsa kelime yalnız o özelliklere sahip olabilir.
Eğer fiil edilgen ise parse aşamasında fiil sözlükte intr. olarak belirtilmişse
bile nesne sahibi olarak işlenir.

R f. ===>vermek             %dat.tr.intr.
N f. ===>vermek   =ver -mek    ^Verb->Noun  %dat.tr.intr.

Wednesday, 9 May 2018

LANGANA-T üzerine


LANGANA-T Türkçe Dil Ayrıştırıcısı (Turkish Language Parser)'nı geliştirme
sürecine ilişkin bazı rakamsal bilgiler:

1- Geliştirme parserlar konusunda 5 yıl tecrübesi olan tek programcı
ile 9 ay sürdü.

2-Program satır sayıları ve fonksiyon sayıları:
NbParseWords.java  8414 lines 112 functions
NbMorphoAnalysis.java 4381 lines 47 functions
NbMorphoAnalysisSub1.java 1229 lines 4 functions
NbMorphoNoun.java 3599 lines 6 functions

3- Kabaca program yapısı:
3.1. Syntax parçalayıcı
3.2. Morfolojik analiz
3.3. 3 aşamada parse

4- Program rule-based'tir ve Özne - Nesne belirleyabilmektedir.

Son söz: 9 ayda toplam 20 bin satırdan az bir miktarda tek kişi
bunu yapabildiyse niye şimdiye kadar bu iş yapılmamıştır anlamak zor.
Bir sorun üniversiteler ve akademik çevrelerdeki yaklaşımdan
kaynaklanmaktadır kanımca.  Günümüzde populer olan yaklaşım
neural networks(NNW)'tür.  Dolayısıyla, akademik olarak bir başarıya
ulaşmak için NNW kullanmak bir zorunluluk oluyor. Hatta,
rule-based yaklaşımla yapılmış bir iş bilimsel açıdan orta veya
aşağı olarak görülmekte. NNW ile  elde edilen sonuçlar ise çok tartışmalı.

Oysa, rule-based sistemle yaklaşık 100 bin satır yazıldığı takdirde
ülkemiz için çok faydalı olabilecek bir dil alt yapısı oluşturulabilirdi.
Almanya'da 5 yıl çalıştığım Hava Trafik Kontrolü sisteminde PL1 olarak
1 milyon 200 bin satır assembler olarak yaklaşık 300 bin satır vardı.
Günde (o zaman) 1200 uçak binlerce yolcu güvenliğini sağlayan rule-based
bir sistemdi.

TUBITAK'ın desteği ile oluşturulabilecek bir Türkçe dil alt yapısı ile
büyük yazı dosyalarından bilgi alma, binlerce sayfalık hukuk davalarında
tutarsızlık vb arama, kanuni telefon kayıtlarının taranması, uçak bakım
sürelerinin kısaltılması, internet üzerinden sorulan sorulara otomatik
cevap verme vb bir çok yeni imkan ülkemizin hizmetine girebilir.
girebilir.
 

Tuesday, 8 May 2018

Bir Türkçe dil parçalayıcısının (language parser) doğruluğu


Bir Türkçe dil parçalayıcısının (language parser) doğruluğu nasıl ölçülmeli?

HATA ORANLARI:
1-      Öncelikle morpholojik doğruluk hatalı kelime sayısının toplam kelime sayısına oranı olarak belirtilmeli.
2-      Özne, nesne hatası hata sayısının toplam cümle sayısına oranı olarak belirtilmeli.
3-      Bu alanda çalışma yapan kişilerin ortak olarak kabul ettikleri hata belirtme yöntemleri olmalı.

DENEME METİNLERİ:
1-      %82 gibi doğruluk rakamları verirken buna ilişkin test metinleri ve hata bildirim yaklaşımları da açıklanmalıdır.  Bu konuda öncül niteliği taşıyan makalelerin Türkçe’nin özelliklerine değinmesi doğal fakat bilimsel açıdan yalnızca kullanılan yöntemlerin anlatılması yeterli değil.  Nitekim aradan 10 yıllar geçtiği halde bu çalışmaların pratik ya da ticari sonuçlarının olmaması şaşırtıcı değil.
2-      Test metinleri ortak bir corpusta Türkçe metinler genel ve özel konular için toplanmalı.  Böylece farklı araştırmacıların aynı test datası üzerinde deney yapıp sonuçları karşılaştırması mümkün olabilir.

JARGON:
1-      Program içinde kullanılan ve parser çıktısında gözüken ‘isim, sıfat, Tamlayan, İyelik’ vb isimler ortak bir referans oluşturularak standartlaştırılmalı.

PERFORMANS:
1-      Performans ölçümü için standartlar belirlenmeli, test metinleri oluşturulmalı.

Tuesday, 17 April 2018

Türkçe Anlatım dilinde bir özne tespit sorunu üzerine

Türkçe Anlatım dilinde bir özne tespit sorunu üzerine

Farklı ifade şekillerinde farklı diller söz konusu.
Aşağıdaki örnekte görülebilceği gibi 'balık' kelimesi 'yemek'
fiilinden önce gelerek ÖZNE olabilir (607. cümle).  Açıklaması:
(Kovalanmakta olan) balık (yemi) yedi.
 ya da 1278. cümlede olduğu gibi yine fiilden önce gelerek
NESNE olabilir. Açıklaması:
(İhtiyar adam) bir uçan balık yedi.  Daha zorlaştırırsak
(İhtiyar adam) balık yedi.

Hikayesel anlatımın ayrıştırılması(language parsing)
1. hikaye içindeki semantic varlıkların(nesnelerin) takibini
2. Bunlar arasından aktif öznelerin takibini
3. Parse edilen noktada geçerli olan, geçmiş cümlelerden kalan
DOLAYLI ÖZNEnin takibini gerektirir.


ÖRNEKLER:
İhtiyar Adam ve Deniz

sentence= 607  ****************************dumpSentenceAsText
Ama balık yemedi.

sentence= 607  ----------------------------dumpStructList
0 1 Ama Bağlaç
1 2 balık  İsim  (f_önü yemedi  %tr.intr. *o ref ) \Nesne\    \possible Özne\   ************ÖZNE
2 3 yemedi Fiil %tr.intr. *o
2 3 . postPunctuation

sentence= 1278  ****************************dumpSentenceAsText
 Yıldızların altında, gecenin ayazında, yunus dilimlerinden birinin
yarısı ile bir uçan balık yedi.

sentence= 1278  ----------------------------dumpStructList
0 1 Yıldızların  İsim->Tamlayan  -lar -ın 
1 2 altında  İsim->Dolaylı Tümleç -ında 
1 2 , postPunctuation
2 3 gecenin  İsim->İyelik -nin 
3 4 ayazında  İsim->Dolaylı Tümleç -ında 
3 4 , postPunctuation
4 6 yunus dilimlerinden  İsim Tamlaması->Dolaylı Tümleç -inden/ından/undan/ünden/sından/sinden/ğinden/ğından/ğünden/ğundan
6 7 birinin  İsim->İyelik -inin 
7 8 yarısı  İsim->İsim -sı 
8 9 ile Bağlaç
9 12 bir uçan balık  Sıfat Tamlaması verbalPOS=1(f_önü yedi  %tr.intr. *o ref ) \Nesne\   \possible Özne\   ************NESNE
12 13 yedi Fiil %tr.intr. *o
12 13 . postPunctuation

Sunday, 15 April 2018

Türkçe Cümlede Anlamın Oluşması

Türkçe Cümlede Anlamın Oluşması

Cümle kimin(özne) neyi(nesne) nasıl(zarf) ile yaptığını belirtir.
Cümlenin anlamı öncelikle özne-nesne ve fiil tarafından belirlenir.
Zarf nerede, ne zaman, nasıl gibi yan bilgileri iletir.

Fiil ekleri eyleme ilişkin zaman, yapan şahıs ve edilgenlik belirtir.
Fiilden oluşturulan isim, sıfat, zarflar vardır, bunlara fiilimsi denir.

Otomatik cümle anlamı algılanmasında belirleyici olan unsur özne ve nesnelerin
doğru ayırt edilmesidir.  Fiil edilgenlik eki özne olabilecek bir ismi
nesneye çevirebilir.

Fiilin kendine ait bir geçişkenlik özelliği vardır.  Bu özellik o fiilin
nesne (tr.), özne(intr.), herikisi birden(tr.intr.)  ile
birlikte kullanılabileceğini belirtir. (tr.intr.) özelliği olan fiiller
bunları teker teker (tr. ya da intr.)'de kullanabilirler.

Fiilin şahıs eki, onu yapan kişiyi belirtir.  Şahıs eki eğer *onlar ise
 ve ilgili kelimesi çoğul ('Adamlar') ise 'Adamlar' kelimesi öznedir.
Şahıs eki *o değilse, ve örn. 'verirsin' fiilinde *sen şahıs eki ile
yapılan cümle 'sen' zamirini kullanmamışsa, karşılaşılan isim nesnedir.
Burada eğer 'Sen topu verirsin' en kolay, 'topu verirsin' daha zor (ama
top+u i-hali eki kolaylaştırıcı, 'top verirsin' en zor haldir.  İşte burada
*sen eki -sin'in bulunması varsayılan özne sen'e işaret eder. 'Top'
kelimesi takısız olduğu halde kesinlikle nesnedir.

Şahıs eki ile ilgili sorun, *o durumundadır. *o üçüncü şahıs belirttiği için
örn. yukarıda 'Top' u da belirtir. *o ekinde şahıs ayırtediciliği yoktur.

Bir diğer sorun, fiil geçişkenliklerinin birçok durumda (tr.intr.) olmasıdır.
'Nesne geçişken' ve 'Özne Geçişkenliği' cümleyi anlamada her zaman belirleyici
değildir.  Zaten insanlarda Türkçe cümleyi anlarken geçişkenliğe özel olarak
bakmazlar.

Öyle ise otomatik anlama nasıl gerçekleştirilebilir?

İnsanlar gibi yaparak.  Türkçe'de kullanılan deyimlerin bolluğu dikkat çekici.
İnsanlar Çince'de karışık sembollerin kullanılması gibi ama sözlü anlamda
farklı kelimeleri yan yana getirerek, bunları ezberliyorlar ve çeşitli anlamlarda
deyim olarak kullanıyorlar.

Peki, deyimler otomatik anlam bulmada nasıl kullanılabilirler?  Yukarıda bahsetmiş
olduğum, (tr.intr.) fiilin hem (tr.) hem (intr.) kullanımları aslında aynı deyimin
farklı kullanımları...

Kalıpların daha kuvvetli bir başka kullanımı ise:
Düz yazı için.
Ali topu attı.   Özne - Nesne - Fiil
Ali attı topu.   devrik
Ali attı.

Şiirsel:
Topu - Ali - attı.
Topu attı Ali.
Attı Ali topu.
Attı topu Ali.

Şiirsel olanlar için yapılacak fazla bir şey yok.  Onlar zaten düz yazının
kalıplarını kırmak için yapılıyor.

Yukarıdaki üç kalıpla iş bitmiyor tabii:
Ali topu hızlı attı.
Ali hızlı attı topu.
Ali hızlı attı.   ve tüm diğer indirgenmemiş haller isim, sıfat, fiil->zarf gibi...

Bir diğer önemli sorun alt cümleler ve onlara ilişkin fiilimsiler. 
Bu fiilimsilerin şahıs ekleri yok.
Öğretmen gelirken topu attı.  'gelirken' şahıs eki yok. *o bile değil.  Bu durum
Öğretmen, gelirken topu attı.  şeklinde Öğretmen öznesinin ilgili fiilini bulup
ordan *o şahıs ekini alıp onunla Öğretmen'in özne olduğunu tespit etmeyi gerektiriyor.
Aslında kalıp yaklaşımı bunu daha kolay çözüyor.  'gelirken' zarf olduğu için
bu 'Ali hızlı attı topu' kalıbına uyuyor.

Yakında Türk dilinin bütün unsurlarını içeren ilk Türkçe Parser'ı duyurabilmek
dileği ve kararlılığıyla.

Ali R+

Saturday, 3 March 2018

LANGANAt Turkish Parser Ver b004 intro

Geliştirmekte olduğum, LANGANAt Türkçe dil ayrıştırıcısı(parser)
4. beta versiyonunun çıktısı aşağıda.
Bu örnekler 2094 tane cümleden oluşan Steinbeck'in İhtiyar Adam
ve Deniz adlı kitabının Türkçe tercümesinin tümünü, bu kitabın tümünü
içermektedir.

Niyetim, en kısa zamanda Türkçe Parser'ını bitirmek fakat işin doğası
gereği gecikmeler oluyor.

4. beta sürümünde şunları yaptım.
1- Konuşma dilinde geçen Sıfat fiiller.
'Bu kapı ne güzel!'
2- Her nesne ve öznenin ilgili fiil/fiilimsilerinin tesbiti.
3- Konuşma dilinde geçen Emir, Şart fiillerinin fiilden türetilen
isimlerden ayırt edilmesi
4- işlevsel ve gruplayıcı virgül, ve, diğer bağlaçların ayrımı.

İhtiyar Adam ve Deniz yaklaşık 22 bin kelime ve 2100 cümleden oluşuyor.
Hedefim 100 kelime, 80-90 cümle hatasını yakalamak.  Yani kelime olarak binde 5,
cümle olarak yüzde 4.  Bu sürüme ilişkin çıktıyı Source Forge sayfamdan erişebilirsiniz.

Bu arada, Türkçe parser'ı kullanarak oluşturulabilecek ürünler de belirmeye başladı.
Örneğin hukuk dava dosyalarında 1000'lerce sayfa içinden tutarsızlıkların bulunması.
Devlet müttesebatında değişikliklerin takibi için iki yazının içerik olarak karşılaştırılması.

Parser aşaması bittikten sonra şunların yapılması gerekecek:
1. Türkçe deyim listesi ve sözlüğü
2. Türkçe corpus
3. Türkçe semantic ağaç

Aşağıda bazı örnekleri ve Source Forge'ta bütün çıktıyı bulabilirsiniz.
(Not: Sourceforge virus saldırısına uğramış.  Düzelir düzelmez 4. beta çıktısının
tümünü yayınlayacağım.  Aşağıda üç tane çarpıcı devrik cümle örneği var.)

sentence= 14<<****************************dumpSentenceAsText
Balık tutmasını yaşlı adam öğretmişti çocuğa, çok severdi çocuk onu.

sentence= 14<<----------------------------higher analysis="" p="" parse="" struct="">0 1 Balık  İsim   (f_önü tutmasını   *? ref ) \Nesne\    \possible Özne\
1 2 tutmasını  İsim->Nesne  -fiilimsi -sını    (f_önü öğretmişti  %tr.intr. *o ref ) \Nesne\ 
2 4 yaşlı adam  Sıfat Tamlaması (f_önü öğretmişti  %tr.intr. *o ref ) \Nesne\    \possible Özne\
4 5 öğretmişti Fiil %tr.intr. *o
5 6 çocuğa  İsim->Dolaylı Tümleç -ğa 
5 6 , postPunctuation <<< comma#=1 verb#=1 verbal#=1 noun#=2
6 7 çok  Zarf
7 8 severdi Fiil %tr.intr. *o
8 9 çocuk  İsim  ( severdi  %tr.intr. *o ref ) \possible Nesne\    \possible Özne\
9 10 onu  Zamir->Nesne  -u    ( severdi  %tr.intr. *o ref ) \morpho Nesne\ 
9 10 .crlf postPunctuation <<< dot#=1 verb#=1 verbal#=1 noun#=1

sentence= 14<<----------------------------morphologic analysis="" p="">177 14   0 Balık
Balık-->balık
R is. ===>Balık balık
178 14   1 tutmasını
N is. ===>tutmasını   =tutma -sını ^Noun->Noun 
179 14   2 yaşlı
R sf. ===>yaşlı
180 14   3 adam
R is. ===>adam
181 14   4 öğretmişti
V f. ===>öğretmişti   =öğret -mişti ^DiliMişliGeçmiş %tr.intr.
182 14   5 çocuğa,
N is. ===>çocuğa   =çocuk -ğa ^Noun->Noun 
183 14   6 çok
R zf. sf. ===>çok
184 14   7 severdi
V f. ===>severdi   =sev -erdi ^GenişDiliGeçmiş %tr.intr.
185 14   8 çocuk
R is. ===>çocuk
186 14   9 onu.
R zm. ===>onu   o [n] -u

******************************************************


sentence= 1561<<****************************dumpSentenceAsText
 Parmakları açılmış bir elden daha genişti bu çizgiler ve bir periskoptaki aynalar gibi ayrılmış görünüyordu gözleri ya da bir dinsel alayın içindeki aziz.

sentence= 1561<<----------------------------higher analysis="" p="" parse="" struct="">0 1 Parmakları  İsim->Nesne  -ı -lar    (f_önü açılmış  %tr.intr. *o refverbalPOS=0 ) \Nesne\
1 2 açılmış Fiil->Edilgen  %tr.intr. *o
2 4 bir elden  Zarf Tümleci
4 5 daha  Zarf
5 6 genişti Fiil İsim/Sıfat Türevi  %intr.  *o
6 8 bu çizgiler  Sıfat Tamlaması  -ler   ( genişti  %intr. *o ref )     \possible Özne\
8 9 ve Bağlaç
9 11 bir periskoptaki  Sıfat Tamlaması->İsim  -daki/deki
11 12 aynalar  İsim  -lar   (f_önü ayrılmış  %dat.intr. *o refverbalPOS=0 ) \Nesne\   \possible Özne\
12 13 gibi  Zarf
13 14 ayrılmış Fiil %dat.intr.
14 15 görünüyordu Fiil %intr. *o
15 16 gözleri  İsim  -leri   ( görünüyordu  %intr. *o ref ) \possible Nesne\    \possible Özne\
16 17 ya Bağlaç
17 18 da Bağlaç
18 21 bir dinsel alayın  Sıfat Tamlaması->İsim  -fiilimsi verbalPOS=1-ın/in/un/ün  %intr.
21 23 içindeki aziz  Sıfat Tamlaması (    ref ) \possible Nesne\    \possible Özne\
22 23 . postPunctuation <<< dot#=1 verb#=4 verbal#=1 noun#=4

sentence= 1738<<****************************dumpSentenceAsText
 Geniş, yassı, kürek biçimi kafalarını ve beyaz çizgili geniş yüzgeçlerini görebiliyordu şimdi, iğrenç, pis kokulu, leş kargası katillerdi bu köpek balıkları, aç kaldıkları zaman sandalın dümenini, küreğini ısırırlardı.

sentence= 1738<<----------------------------higher analysis="" p="" parse="" struct="">0 1 Geniş  Sıfat
0 1 , postPunctuation <<< comma#=1 verb#=0 verbal#=0 noun#=0<<< comma#=1 verb#=0 verbal#=0
1 2 yassı  Sıfat
1 2 , postPunctuation <<< comma#=1 verb#=0 verbal#=0 noun#=0<<< comma#=2 verb#=0 verbal#=0
2 5 kürek biçimi kafalarını  İsim Tamlaması->Nesne -ini/ını/ğını/ğini/sını/sini  ( görebiliyordu  %tr.intr. *o ref ) \morpho Nesne\ 
5 6 ve Bağlaç
6 8 beyaz çizgili  Sıfat Tamlaması->Edat Tümleci -lı/li/lu/lü
8 10 geniş yüzgeçlerini  Sıfat Tamlaması->Nesne -ini/ını/ğını/ğini/sini/sını  (f_önü görebiliyordu  %tr.intr. *o ref ) \Nesne\ 
10 11 görebiliyordu Fiil %tr.intr. *o
11 12 şimdi  Zarf-Zaman Zarf
11 12 , postPunctuation <<< comma#=1 verb#=1 verbal#=0 noun#=0<<< comma#=3 verb#=1 verbal#=0
12 13 iğrenç  Sıfat
12 13 , postPunctuation <<< comma#=1 verb#=0 verbal#=0 noun#=0<<< comma#=4 verb#=0 verbal#=0
13 15 pis kokulu  Sıfat Tamlaması->Edat Tümleci -lı/li/lu/lü
14 15 , postPunctuation <<< comma#=1 verb#=0 verbal#=0 noun#=0<<< comma#=5 verb#=0 verbal#=0
15 17 leş kargası  İsim Tamlaması -sı/si/su/sü   \possible Özne\ ( katillerdi  %intr. *o ref )
17 18 katillerdi Fiil İsim/Sıfat Türevi  %intr.  *onlar
18 21 bu köpek balıkları  Sıfat Tamlaması->Nesne -ları   ( katillerdi  %intr. *o ref )     \possible Özne\
20 21 , postPunctuation <<< comma#=1 verb#=1 verbal#=0 noun#=1<<< comma#=6 verb#=1 verbal#=0
21 22 aç  Zarf
22 24 kaldıkları zaman  Zarf-Zaman Zarf Tümleci
24 25 sandalın  İsim->Tamlayan  -ın 
25 26 dümenini  İsim->Nesne  -ini    ( ısırırlardı  %tr. *o ref ) \morpho Nesne\ 
25 26 , postPunctuation <<< comma#=1 verb#=0 verbal#=0 noun#=0<<< comma#=7 verb#=0 verbal#=0
26 27 küreğini  İsim->Nesne  -ğini    (f_önü ısırırlardı  %tr. *o ref ) \Nesne\ 
27 28 ısırırlardı Fiil %tr. *o
27 28 . postPunctuation <<< dot#=1 verb#=1 verbal#=0 noun#=0<<< dot#=1 verb#=1 verbal#=0


Wednesday, 3 January 2018

LANGANAt Türkçe dil ayrıştırıcısı(parser) örnekler

Geliştirmekte olduğum, LANGANAt Türkçe dil ayrıştırıcısı(parser) hemen hemen
bitmek üzere.  Aşağıdaki örnekler 2094 tane cümleden oluşan Steinbeck'in
İhtiyar Adam ve Deniz adlı kitabının Türkçe tercümesinden rasgele seçilmiştir.
Higher Parse Struct Analysis, morpholoji vb aşamalardan sonra 3. aşamadır.
Morphologic Analysis 2. aşama, kelime okunması ve ayrımı ise 1. aşamadır.

Şimdi 4. bir aşama ile devrik cümleler, konuşma dili, virgül ve alt cümle kontrolü,
isim tamlamalarında materyal kontrolü, anlamsal nesne dağarcığı ve nesne-özne ayrımında
zaten hazırlamış olduğum verileri(şahıs eki, nesne/özne,fiil geçişkenliği)
kullanarak gerçekleştireceğim.

sentence= 1626<<****************************dumpSentenceAsText
 Köpek balığını gözlerken zıpkınını hazırladı, ipi bağladı.

sentence= 1626<<----------------------------higher analysis="" p="" parse="" struct="">0 1 Köpek  İsim  (f_önü gözlerken   %tr.intr. *o refverbalPOS=0 ) \Nesne\   \possible Özne\
1 2 balığını  İsim->Nesne  -ğını    (f_önü gözlerken   %tr.intr. *o refverbalPOS=0 ) \Nesne\
2 3 gözlerken  Zarf-fiilimsi  %tr.intr.
3 4 zıpkınını  İsim->Nesne  -ını    (f_önü hazırladı  %tr.intr. *o ref ) \Nesne\ 
4 5 hazırladı Fiil %tr.intr. *o
4 5 , postPunctuation <<< comma#=1 verb#=1 verbal#=1 noun#=1
5 6 ipi  İsim->Nesne  -i    (f_önü bağladı  %tr.intr. *o ref ) \Nesne\ 
6 7 bağladı Fiil %tr.intr. *o
6 7 . postPunctuation <<< dot#=1 verb#=1 verbal#=1 noun#=0


sentence= 1626<<----------------------------morphologic analysis="" p="">12658 1626   0 Köpek
Köpek-->köpek
R is. ===>Köpek köpek
12659 1626   1 balığını
N is. ===>balığını   =balık -ğını ^Noun->Noun 
12660 1626   2 gözlerken
V f.  ===>gözlerken   =gözle -r -ken ^IRliGenişZ->Adverb %tr.intr.
12661 1626   3 zıpkınını
N is. ===>zıpkınını   =zıpkın -ını ^Noun->Noun 
12662 1626   4 hazırladı,
V f.  ===>hazırladı   =hazırla -dı ^DiliGeçmiş %tr.intr.
12663 1626   5 ipi
N is. ===>ipi   =ip -i ^Noun->Noun 
12664 1626   6 bağladı.
V f.  ===>bağladı   =bağla -dı ^DiliGeçmiş %tr.intr.

**********************************************************


sentence= 1045<<****************************dumpSentenceAsText
 Her sefer yeniden başlardı, işini görürken de eski yaptıklarını düşünmezdi hiç.


sentence= 1045<<----------------------------higher analysis="" p="" parse="" struct="">0 2 Her sefer  Sıfat Tamlaması   \possible Özne\ ( yeniden başlardı   %intr. *o ref )
2 4 yeniden başlardı  Sıfat Tamlaması->Fiil  %intr.
3 4 , postPunctuation <<< comma#=1 verb#=1 verbal#=0 noun#=2
4 5 işini  İsim->Nesne  -ini    (f_önü görürken   %tr.intr. *o refverbalPOS=0 ) \Nesne\
5 6 görürken  Zarf-fiilimsi  %tr.intr.
6 7 de Bağlaç
7 9 eski yaptıklarını  Sıfat Tamlaması -tıklarını   verbalPOS=1(f_önü düşünmezdi  %tr.intr. *o ref ) \Nesne\
9 10 düşünmezdi Fiil %tr.intr. *o
10 11 hiç  Zarf
10 11 .crlfcrlf postPunctuation <<< dot#=1 verb#=1 verbal#=1 noun#=0


sentence= 1045<<----------------------------morphologic analysis="" p="">7730 1045   0 Her
Her-->her
R sf. ===>Her her
7731 1045   1 sefer
R is. ===>sefer
7732 1045   2 yeniden
R zf. ===>yeniden
N sf. zf. ===>yeniden   =yeni -den ^Sıfat->Zarf 
7733 1045   3 başlardı,
V f.  ===>başlardı   =başla -ardı ^GenişDiliGeçmiş %dat.intr.
N is. ===>başlardı   =baş  -lar  -dı ^Noun/Adjective->Verb DiliGeçmiş  => morphoHistory=GenişDiliGeçmiş %intr.
7734 1045   4 işini
N is. ===>işini   =iş -ini ^Noun->Noun 
7735 1045   5 görürken
V f.  ===>görürken   =gör -ür -ken ^IRliGenişZ->Adverb %tr.intr.
7736 1045   6 de
R bağ. ===>de %tr.intr.
7737 1045   7 eski
R sf. is. ===>eski
7738 1045   8 yaptıklarını
V f.  ===>yaptıklarını   =yap -tıklarını ^Verb->Noun  %intr.
7739 1045   9 düşünmezdi
V f.  ===>düşünmezdi   =düşün -mezdi ^IRliNegGenişZ => morphoHistory=DiliGeçmiş %tr.intr.
7740 1045   10 hiç.


R zf. ===>hiç

***********************************************************
sentence= 632<<****************************dumpSentenceAsText
 Kullandığı iplerden başka kırk kulaçlık yedeği daha vardı.

sentence= 632<<----------------------------higher analysis="" p="" parse="" struct="">0 1 Kullandığı  Fiil->İsim -fiilimsi -dığı    %tr.
1 2 iplerden  İsim->Dolaylı Tümleç -den -ler 
2 5 başka kırk kulaçlık  Sıfat Tamlaması -lık   ( vardı  %dat.intr. *o ref ) \possible Nesne\    \possible Özne\
5 6 yedeği  İsim  -ği    ( vardı  %dat.intr. *o ref ) \possible Nesne\ 
6 7 daha  Zarf
7 8 vardı Fiil %dat.intr. *o
7 8 .crlfsp crlf postPunctuation <<< dot#=1 verb#=2 verbal#=1 noun#=1

sentence= 632<<----------------------------morphologic analysis="" p="">4637 632   0 Kullandığı
Kullandığı-->kullandığı
V f.  ===>Kullandığı   =Kullan -dığı ^Verb->Noun  %tr.
N f.  ===>Kullandığı   =Kullan -dığı ^Verb->Noun  => morphoHistory=Verb->Noun  %tr.
4638 632   1 iplerden
N is. ===>iplerden   =ip  -ler  -den ^Noun->Noun 
4639 632   2 başka
R eda. sf. ===>başka
4640 632   3 kırk
R sf. ===>kırk
4641 632   4 kulaçlık
N is. ===>kulaçlık   =kulaç -lık ^Noun/Adjective->Noun 
4642 632   5 yedeği
N sf. is. ===>yedeği   =yedek -ği ^Noun->Noun 
4643 632   6 daha
R zf. ===>daha
4644 632   7 vardı.


V f.  ===>vardı   =var -ardı ^GenişDiliGeçmiş => morphoHistory=DiliGeçmiş %dat.intr.


******************************************************************

sentence= 245<<****************************dumpSentenceAsText
 Kış için ona bir ceket, bir gömlek, ayakkabı, bir de battaniye almalı.

sentence= 245<<----------------------------higher analysis="" p="" parse="" struct="">0 1 Kış  İsim
1 2 için Edat
2 3 ona  Zamir->Dolaylı Tümleç -a 
3 5 bir ceket  Sıfat Tamlaması ( almalı  %tr.intr. *o ref ) \possible Nesne\    \possible Özne\
4 5 , postPunctuation <<< comma#=1 verb#=0 verbal#=0 noun#=2
5 7 bir gömlek  Sıfat Tamlaması ( almalı  %tr.intr. *o ref ) \possible Nesne\    \possible Özne\
6 7 , postPunctuation <<< comma#=1 verb#=0 verbal#=0 noun#=1
7 8 ayakkabı  İsim  ( almalı  %tr.intr. *o ref ) \possible Nesne\    \possible Özne\
7 8 , postPunctuation <<< comma#=1 verb#=0 verbal#=0 noun#=1
8 9 bir  Sıfat
9 10 de Bağlaç
10 11 battaniye  İsim  (f_önü almalı  %tr.intr. *o ref ) \Nesne\    \possible Özne\
11 12 almalı Fiil %tr.intr. *o
11 12 .crlfcrlf postPunctuation <<< dot#=1 verb#=1 verbal#=0 noun#=1

sentence= 245<<----------------------------morphologic analysis="" p="">1493 245   0 Kış
Kış-->kış
R is. ===>Kış kış
1494 245   1 için
R eda. ===>için
1495 245   2 ona
R zm. ===>ona   o [n] -a
1496 245   3 bir
R sf. ===>bir
1497 245   4 ceket,
R is. ===>ceket
1498 245   5 bir
R sf. ===>bir
1499 245   6 gömlek,
R is. ===>gömlek
1500 245   7 ayakkabı,
R is. ===>ayakkabı
1501 245   8 bir
R sf. ===>bir
1502 245   9 de
R bağ. ===>de
1503 245   10 battaniye
R is. ===>battaniye
1504 245   11 almalı.


V f.  ===>almalı   =al -malı ^maliGerekliZ %tr.intr.