COMU/zemberek-extension

Informal Analysis mekanizmasının eklentiye eklenmesi

ahmetaa opened this issue · 4 comments

Zemberek 0.16.0 ile informal analiz denen bir fonksiyon eklendi. Bunun ile yaygın konuşma kelimelerinin bir kısmı analiz edilip düzeltilebiliyor.
Şimdilik sadece bazı fiiller için çalışıyor

okuycam -> okuyacağım
yapıyo -> yapıyor

gibi. Bu mekanizma spell check öneri sistemine eklenebilir.

@COMU/zemberek

Bunun için nasıl bir yol izlenmesini önerirsiniz? isCorrect methodunun false döndürdüğü bütün kelimeleri analiz edip informal ise convert etmek gibi mi?

Bunun için bir kaç değişiklik gerekecek. Öncelikle TurkishMorphology oluşturulurken informal analiz eklenmesi gerekiyor.

https://github.com/ahmetaa/zemberek-nlp/tree/master/morphology#informal-turkish-words-analysis

Buradaki şekilde. Ama ben 0.16.0'dan sonra bir değişiklik yapmıştım. O nedenle RootLexicon.DEFAULT yerine RootLexicon.getDefault() kullanman gerekiyor.

Daha sonra yeni eklediğim bir kod var TurkishSpellCheck sınıfı içinde

this.spellChecker.setAnalysisPredicate(...
oraya a.containsInformalMorpheme() eklemek gerekiyor.
Bu şekilde informal ek içeren kelimeler isCorrect'ten geçemez.

Sonra getSuggestions içerisinde dediğin gibi bir şey yapmak gerekiyor. Şuradaki örneğe göre bir dene istersen.

https://github.com/ahmetaa/zemberek-nlp/blob/master/examples/src/main/java/zemberek/examples/morphology/AnalyzeAndConvertInformalWords.java

Denemelerini doğrudan kod üzerinde yapabilirsin eklenti kurmadan.

Muhtemelen kelimelerin formatlanması ile ilgili sorun olacak ama oraya kadar ilerleyince bakalım.

Takıldığın bir yer olursa yaz.

Bu iş Zemberek iç yapısını bilmeyi gerektirdiğinden ben üzerime alıyorum.