-
Notifications
You must be signed in to change notification settings - Fork 103
MyThesKullanımKılavuzu
MyThes, yapılandırılmış bir metin dosyası ve bir indeks dosyası kullanan basit bir eşanlamlılar sözlüğüdür. Sorgulanan kelime veya kelime grubu için ikilik arama yapılır ve kelime hakkında bilgiler, anlamlar ve eşanlamlı kelimeler döndürülür. Konu hakkında daha çok bilgi için Ekşi Sözlük'teki thesaurus başlığına ve Vikipedi'deki Tesarus maddesine bakabilirsiniz.
MyThes ilk olarak OpenOffice.org'da eşanlamlı kelimeler sözlüğü sunmak için geliştirilmeye başlanmış bir projedir. Başlıca özellikleri arasında aşağıdakiler sıralanabilir:
- LibreOffice, OpenOffice, AbiWord, Pspell vb. uygulamalarla kolayca iletişim kurulabilmesi için C ile yazılmıştır
- Pek çok platform üzerinde kullanılabilir yapıdadır
- Yapılandırılmış metin dosyasını okumak ve ikilik arama yapmak için gerekli indeks dosyasını üretmek için basit bir Perl uygulaması kullanır
- Gerekli tüm bileşenlere sahip en basit halde tasarlanmıştır. Asıl önemli olan eşanlamlı kelimeler sözlüğünün verisini barındıran yapılandırılmış metin dosyasıdır
- İngilizce için WordNet-2.0'dan alınmış kullanılmaya hazır eşanlamlı kelimeler sözlüğü verileriyle birlikte gelir
- BSD lisansını kullanan özgür bir yazılımdır
MyThes oluşturduğunuz eşanlamlılar sözlüğünü test etmek için basit bir uygulama ile birlikte gelmektedir. Kullandığınız dağıtımda bu uygulama MyThes paketine dahil edilmemişse kaynak koddan derleme yapmanız gerekebilir. Bunun için arşivi açıp ./configure ve make komutlarını vermeniz yeterli. Uygulamayı çalıştırmak içinse aşağıdakine benzer bir komut kullanabilirsiniz.
./example th_tr_TR_v2.idx th_tr_TR_v2.dat kontrolet.lst
Örneğin eşanlamlı kelimeler sözlüğünde sadece ev ile köpek kelimelerinin olduğunu ve kontrolet.lst dosyasının içeriğinin aşağıdaki gibi olduğunu varsayalım: ev araba köpek çiçek
Bu durumda uygulama bize şu çıktıyı verecektir:
Thesaurus uses encoding UTF-8
ev has 1 meanings
meaning 0: (n) yuva
yuva
yurt
vatan
kale
aile ocağı
bakımevi
"araba" is not in thesaurus!
köpek has 1 meanings
meaning 0: (n) fino
fino
it
havhav
kuçu
kuçukuçu
barak
çomar
encik
enik
belo
"çiçek" is not in thesaurus!
"" is not in thesaurus!
MyThes'in bir dil için eşanlamlılar sözlüğü sunabilmesi için o dile ait yapılandırılmış bazı dosyaların oluşturulması gerekmektedir. Bunlar aşağıda anlatılmaya çalışılmıştır. Öncelikle bu dosyalar:
- İkilik veri içermemelidir
- Satırlar satır sonu imi (newline '\n') ile bitirilmelidir, satır başı karakteri (carriage return) veya satır atlama (linefeeds) ile değil
Dosyaların ilk satırları tercih edilen karakter kodlamasını belirtmek için kullanılır. Eşanlamlılar sözlüğünü çağıran program gerekirse bu karakter kodlamasına veya bu karakter kodlamasından dönüşüm yapabilir. İngilizce için kullanılan karekter kodlaması ISO8859-1'dir. Türkçe için ise UTF-8 kullanılmalıdır. Kullanılabilecek karakter kodlamalarının bir listesi de aşağıda görülebilir:
- UTF-8
- ISO8859-1
- ISO8859-2
- ISO8859-3
- ISO8859-4
- ISO8859-5
- ISO8859-6
- ISO8859-7
- ISO8859-8
- ISO8859-9
- ISO8859-10
- KOI8-R
- CP-1251
- ISO8859-14
- ISCII-DEVANAGARI
Bundan sonraki satırların hepsi aşağıdaki yapıya sadık kalacak şekilde düzenlenmelidir:
entry|num_mean
pos|syn1_mean|syn2|...
.
.
.
pos|mean_syn1|syn2|...
Buradaki ifadelerin açıklamaları şöyledir:
- entry (girdi): kelime veya kelime grubunun tüm harfleri küçük yazılmış olarak tanımlandığı yer
- num_mean (anlam_sayısı): girdinin kaç ayrı anlam grubuna sahip olduğu
Her anlam grubu ayrı bir satırda bulunur ve aşağıdakilerden oluşur:
- pos (tür): sözcük türü veya diğer anlamlara özgü açıklama
- syn1_mean (sinonim1_anlam): birinci eşanlamlı sözcük aynı zamanda anlam grubunun kendisini tanımlamak için de kullanılır
- syn2 (sinonim2): anlam grubundaki ikinci eşanlamlı sözcük
Yukarıda anlatılanların daha iyi anlaşılabilmesi için aşağıdaki gerçek örneğe bakabilirsiniz (Hem bu örneği hem de yukarıdaki öğeleri asıl hallerinde bırakmayı tercih ettim. Hem eksik bilgi hem de çeviri hataları nedeniyle büyük bir yanlışın oluşmasının önüne geçebilmek için).
simple|9
(adj)|simple|elemental|ultimate|oversimplified|simplistic|simplex|simplified|unanalyzable
(adj)|elementary|uncomplicated|unproblematic|easy
(adj)|bare|mere|plain
(adj)|childlike|wide-eyed|dewy-eyed|naive |naif
(adj)|dim-witted|half-witted|simple-minded|retarded
(adj)|simple|unsubdivided|unlobed|smooth
(adj)|plain
(noun)|herb|herbaceous plant
(noun)|simpleton|person|individual|someone|somebody|mortal|human|soul
Yukarıdaki örnek simple kelimesinin 9 farklı anlam grubunda eşanlamlı kelimelere sahip olduğunu söylemektedir. Ayrıca her anlam grubunun sözcük türü de belirtilmiştir.
Bir dil için yapılandırılmış sözlük dosyasını hazırladıktan sonra th_gen_idx.pl Perl programını kullanmanız ve bir indeks dosyası oluşturmanız gerekmektedir. th_gen_idx.pl programını arşiv içinden bulabileceğiniz gibi dağıtımınızın MyThes geliştirme paketinden (mythes-devel) de bulabilirsiniz. Programın Türkçe için doğru şekilde çalıştırma biçimi şöyledir:
cat th_tr_TR_v2.dat | ./th_gen_idx.pl > th_tr_TR_v2.idx
Bu komutu yukarıdaki örnek için çalıştırdıktan sonra indeks dosyasını açarsanız da aşağıdakileri göreceksiniz:
ISO8859-1
142689
'hood|10
's gravenhage|88
'tween|173
'tween decks|196
.22|231
.22 caliber|319
.22 calibre|365
.38 caliber|411
.38 calibre|457
.45 caliber|503
.45 calibre|549
0|595
1|666
1 chronicles|6283
1 esdras|6336
Birinci satır yapılandırılmış eşanlamlılar sözlüğüyle aynı karakter kodlamasını belirtir. İkinci satır eşanlamlılar sözlüğündeki toplam girdi sayısını temsil eder. Diğer bütün satırlar da aşağıdaki yapıdadır:
entry|byte_offset_into_data_file_where_entry_is_found
Türkçe için hazırladığım iki kelimelik eşanlamlılar sözlüğü ve bu sözlükten üretilmiş indeks dosyasını da sözlük oluşturmanın Türkçe'de nasıl olduğu hakkında fikir vermesi açısından aşağıya ekliyorum.
th_tr_TR.dat:
UTF-8
ev|1
(n)|yuva|yurt|vatan|kale|aile ocağı|bakımevi
köpek|1
(n)|fino|it|havhav|kuçu|kuçukuçu|barak|çomar|encik|enik|belo
th_tr_TR.idx:
UTF-8
2
ev|80
köpek|6
Bu iki dosyayı /usr/share/mythes/ dizinin içine kopyaladığınız zaman LibreOffice ile birlikte kullanmaya başlayabilirsiniz. İleride iki kelimenin yanına binlerce kelime daha eklemeyi başarabilirsek dağıtımların depolarında da bulunabilir hale gelebilir bu sözlük.
- MyThes'in README ve data_layout.txt dosyası
- WNDB(5WN) manual page