2012-12-05 29 views
8

kullanarak tüm kelime formları üretin Çalıştığım bir uygulamada, Lucene Analyzer'ı kullanıyoruz, özellikle de Hunspell kısmı. Karşılaştığım sorun şu: Bir kelime ekleme biçimini kullanarak bir kelimenin tüm kelime formlarını üretmem gerekiyor.Lucene & Hunspell

E.g. 'eğitmek' kelimesine sahip olmak ve ABC kurallarını eklemek, 'eğitmek' kelimesinin tüm biçimlerini üretmektir. - eğitimli, eğitimli, eğitici vb.

Bilmek istediğim: Lucene'nin Hunspell uygulamasını kullanarak bunu yapmak mümkündür (bir Hunspell sözlüğü (.dic) ve eki dosyası (.aff) kullanıyoruz, bu yüzden bir Hunspell API olmalı? Lucene'nin Hunspell API'si o kadar büyük değil, ben de onun içinden geçtim ve uygun bir şey bulamadım.

SO hakkında bulabilirim, this idi, ama hunspell ile ilgili cevap yok.

Güncelleştirme 1 Artık yukarıdakilerle karşılaştığım proje üzerinde çalışma yapıyorum, ancak Lucene Analiz Aracı'nı kullanarak bunu yapmak için hala bir çözüm varsa, topluluğun cevabı görmesinden memnun olurum.

cevap

7

Hunspell, tüm kelime formlarını oluşturacak olan unmunch komutuyla birlikte gelir. Böyle diyebilirsin:

unmunch en_GB.dic en_GB.aff 

Böylece bu nasıl uygulandığını Hunspell kaynağında bakmak ve onu dışarıdan denilen edilip edilemeyeceğini olabilir. Komutlar, bileşiklerle sözlüklerde kullanıldıklarında kontrol ettiğim zaman, bu sefer bir bit arabasıydı. Bu durumlarda, sonsuz sayıda olduğu için, tüm kelime formları oluşturamazsınız.

+0

Çok teşekkürler Daniel! Ben unmunch farkındayım. Bunu aramak, yeni bir kelime eklemek istediğim kullanım durumu için bir seçenek değil ve tüm formlarının bir önizlemesine sahip olmak istiyorum. Kaynakta nasıl uygulandığını araştırmayı denedim, ama sonra düşündüm: eğer Lucene'de zaten uygulanmışsa, o zaman yeni bir buggy portu üretmek zorunda kalmayacağım ve Lucene'nin diğer bölümleriyle tutarlı olacak. –

5

Ne aradığınızı düşünüyorum Hunspell en wordforms komuta geçerli:

Usage: wordforms [-s | -p] dictionary.aff dictionary.dic word 
-s: print only suffixed forms 
-p: print only prefixed forms 

Örnek: daha the documentation Oku

$ wordforms en_US.aff en_US.dic educate 
educating 
educated 
educate 
educates 
educates 

.

+0

Bunun Lucene'den alınabilir olup olmadığını bilmek ister misiniz? –

+1

Çıkışı bir dosyaya nasıl yazabilirim? – MonsterMMORPG

+1

bu komut benim için başarısız :(https://github.com/hunspell/hunspell/issues/474 – MonsterMMORPG