Herhangi Bir Metnin Hangi Dilden Olduğunu Hızlıca Anlama

0
FZ
Yapay zekâ dersim için Prolog ile boğuşurken ve comp.lang.prolog haberleşme/tartışma grubunu mesaja boğarken oraya katkıda bulunan bir hocanın, Gertrand Van Noord'un enteresan bir çalışması dikkatimi çekti.

Perl ile yazılmış bir tür dil kategorizasyon programı. Yani bir GİRDİ'ye bakıp, "hmm bu Türkçe" diyor, başka bir girdiye bakıp "hmm, bu da Portekizce" diyor ve bunu kısa sürede, yüksek başarım oranı ile, 69 farklı dil için yapıyor. Açık kodlu, özgür yazılım kategorisinde alan TextCat'in bir de web demosu var.

Van Noord, TextCat'in ticari ve ticari olmayan rakiplerini de sıralamış. Kendi yazılımına dil sayısı olarak en çok yaklaşan yazılım XEROX Language Identifier ticari bir yazılım ve 40 civarı dil ayırt edebiliyor.

Hep birlikte tekrarlıyoruz: Özgür Yazılımı Seviyoruz! :)

Görüşler

0
abakana
Türkçe' ye özgü ışğ karakterlerinin bulunmadğı metinleri unknown olarak gösteriyor. Bu arada ışğ olmaması kesinlikle kullanılmaması anlamında algılanmalıdır. ı -> i ğ -> g gibi bir dönüşüm yapılmadı.
0
roktas
Hmm... Bu denemeyi hangi ortamda yaptınız? (Tarayıcı + OS) Burada böyle bir sorun yok (Firefox + Debian 3.1 Sarge). Ayrıca ı (idotless) gibi Türkçeye çok özgü karakterleri içeren girişler programa kopya vermek gibi olmuyor mu? :-) Xerox'taki ile kıyaslandığında başarım oranını daha düşük bulsam da programı beğendim. Stallman'in sözlerini unutmamak lazım, özgürlük teknolojiden evladır. ;-)
0
abakana
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0

Slackware GNU/Linux 9.1
0
redline99
bende turkce karakterleri kullanmadan bir iki cumle denedim, bazilarini bildi bazilarini bilemedi. Ama bencede basarili bir program.
0
FZ
Türk diline özgü düşük seviyeli doğal dil işleme (morfoloji, deASCIIfying, dil tanıma (Türkçe mi değil mi), imla kontrolü,vs.) konuları ile uğraşan arkadaşlara hararetle tavsiye olunur:

http://tspell.dev.java.net/

Daha önce FM'de haberini geçmiştik:

http://www.fazlamesai.net/modules.php?name=News&file=article&sid=2337

Az zamanda, epey kısıtlı kaynakla çok iş çıkarmış sağlam bir ekibin sırtlandığı bu açık kodlu proje herkesin her türlü desteğine açık, bilginize. Türkçe için yapılan çalışmalar neden bu kadar az ve kısır diye şikayet edeceğinize siz de karınca kararınca (ya da belki aslan payını hedefleyebilecek iddialı bir programcı olarak, belli mi olur ;-) katkıda bulunabilirsiniz.
0
The_Patch_Mode
Az önce web sürümünü denedik arkadaşımla. Fakat programı başarılı bulmadık. Mesela program Türkçe'ye özgü karakterleri içeren kelimeleri hemen tanıyabiliyor. ı, ğ ,ş gibi. Ama bu harfleri içermeyen başka Türkçe kelimeleri yazdığımızda tanıyamıyor. Daha doğrusu yazdığım hiçbir Tütkçe kelimeyi tanımadı diyebilirim.
0
FZ
Kelimeler?

Burada sanırım bir yanlış anlama söz konusu. Program istatistiksel yöntemle çalışıyor gördüğüm kadarı ile, dolayısı ile dillere dair açık bir semantik bilgi içermiyor ve dolayısı ile verdiğiniz metin ne kadar uzun olursa o kadar iyi tahmin yapabiliyor. Mesela aşağıdaki paragrafı "Turkish" olarak kategorize ediyor:

--------------------------------------------------------------------------
Merhaba, bu basit bir deneme. Anadilime ait herhangi bir harf kullanmazsam acaba anlayabilecek misin benim anadilim nedir, hatta noktalama da kullanmazsam olur herhalde. Madem o kadar yetenekliyim diyorsun de bana marifetini.

Pekala, tek bir paragrafla olmuyor demek ki. Bir de bunu dene.

Gene mi bulmak kolay olmayacak emin misin. Belki bu sana daha kolay gelebilir, bir ihtimal, hadi kolay gelsin.
--------------------------------------------------------------------

Yukarıdaki metne aşağıdaki cümleleri ekleyip denediğimde yine aynı sonucu alıyorum:

--------------------------------------------------------
Peki ya bir iki laf daha eklersem o zaman da problem olmadan bana kabul edilebilir bilgi verebilecek misin
------------------------------------------------------

Tabii Türkçeye özgü harf kullanmadan yazacağım diye göbeğim çatladı o ayrı :) Ama programın performansını göstermesi açısından fena değil gibi görünüyor.

Not: Noktalama kullanmayacağım derken, doğru kullanmayacağım manasında, yani mesela soru işareti gereken yere yazmamak gibi ancak tabii bunun programı etkileyeceğini düşünmüyorum çünkü noktalama dağılımının konu ile alakası yok.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Python 2.3 çıktı

tongucyumruk

Python'un birçok yenilik içeren 2.3 sürümü çıktı. Özellikle "iteration" konusundaki yeniliklerin göze çarptığı yeni sürümdeki değişikliklerden bazıları şöyle:
  • Kaynak kodu dosyalarında karakter seti belirtilebiliyor
  • Evrensel yeni satır karakteri desteği eklendi
  • Zip dosyalarından modül alabilme yeteneği
  • Windows sistemlerde Unicode dosya isimlerine erişim
  • Jeneratör desteği
  • Gerçek bir boolean veri tipi
  • enumerate() ve sum() fonksiyonları

typo3okulu.com

anonim

Typo3'yi Türk kullanıcılarına tanıtmak ve kullanmalarına yardımcı olmak amacıyla typo3okulu.com sitesi açıldı.

Javacılar İşleri Neden Zorlaştırıyor? (Ya da Perl, Haskell ve Lisp Üstüne)

FZ

Değerli FM üyelerinden ve editörlerinden Recai Oktaş ile programlama dilleri üzerine yazışırken bazı enteresan yazılarla karşılaştım. Konu dillerin bir araç olarak kullanımından bir kültür olarak nasıl bir bakış açısı sunduklarına geldi.

Söz gelimi 5 yılı aşkın süredir Java kodlayan, Java ile ilgili 2 kitabı bulunan ve Jakarta Struts projesinde aktif katılımcı olan James Turner'ın Why Do Java Developers Like to Make Things So Hard? başlıklı yazısı ilk paragraftaki duruma güzel bir örnek teşkil ediyordu. Turner kendince basit olan bir işi, FTP ile dosya yollamayı şifreli hale getirme işini Java ile yapmaya çalışmış ve ciddi bir karmaşa ile karşılaşmıştı. Aynı işi daha az deneyimli olduğu Perl ile yapmaya kalktığında ise...

Bir MPEG Çözücü Nasıl Çözülür ;-)

FZ

Meşhur çip seti ve anakart üreticisi VIA´nın EPIA-M anakartları üzerinde gömülü bir CLE266 MPEG çözücü (decoder) mevcut. Bu özellik söz konusu anakartı multimedya uygulamaları için ideal hale getiriyor. Ancak küçük bir problem var, VIA´nın ürettiği yegane sürücü kapalı kod olarak geliyor. Tabii bu durumda da devreye `hacking´ ve `reverse engineering´ ruhu giriyor! Tabii planlı programlı çalışmanın da önemi yadsınamaz ;-)

Ruby Nesnelerine Kalıcılığı Öğretmek

anonim

Dünyada en çok sevilen programlama dili olduğu söylenen Ruby ile sunucu taraflı uygulama geliştirmek için elimizde RoR gibi kullanması çok kolay ve işlevsel bir arayüz var.

Peki ya masaüstü uygulamalarımız için Hibernate benzeri kalıcık araçları karşısında Ruby'de alternatif yok mu?

Tabii ki var. Og (Object Graph) ile Ruby nesnelerine nasıl kalıcı olacaklarını öğretmek çok kolay olsa da, bu makale ile daha kolay olacak.