Максимальное расстояние редактирования и предложение на основе частоты слов - PullRequest
8 голосов
/ 02 мая 2011

Мне нужна проверка орфографии со следующей спецификацией:

  • Очень масштабируемый.
  • Чтобы иметь возможность установить максимальное расстояние редактирования для предлагаемых слов.
  • Чтобы получить предложение на основе предоставленных частот слов (самое распространенное слово в первую очередь).

Я взглянул на Hunspell:
Я нашел параметр MAXDIFF в человеке, но некажется, работает как ожидалось.Может быть, я использую это неправильно

file t.aff :

MAXDIFF 1 

file dico.dic :

5  
rouge  
vert  
bleu  
bleue  
orange  

-

NHunspell.Hunspell h = new NHunspell.Hunspell("t.aff", "dico.dic");
List<string> s = h.Suggest("bleuue");

возвращает то же самое t.aff пустой или нет:

bleue
bleu

Ответы [ 2 ]

3 голосов
/ 10 января 2012

Мы решили использовать Apache Solr, что точно соответствует нашим потребностям.
http://wiki.apache.org/solr/SpellCheckComponent#spellcheck

0 голосов
/ 06 ноября 2011

Максимальное значение должно возвращать несколько, но все же может возвращать более одного.

Даже максимальное значение нуля может дать более одного результата, но это должно уменьшить изменение.Это зависит от н-грамм .Попробуйте maxdiff, равный нулю меньше результатов, но это еще не гарантирует, что вы получите единственное предложение.

Если вы хотите отсортировать по наиболее частому слову, Google ngram корпус общедоступный.

...