Включение soundex / metaphone для неанглийских символов - PullRequest
14 голосов
/ 14 сентября 2009

Последние несколько дней я изучал soundex, metaphone и другие методы поиска строк, и в моем понимании оба алгоритма хорошо работают при обработке неанглоязычных слов, транслитерированных на английский язык.

Однако у меня должно быть требование, чтобы такой поиск работал на оригинальных, нетранслитных языках, включая алфавиты, такие как немецкий, норвежский и даже кириллический.

Существуют ли алгоритмы поиска, способные полностью обработать эти алфавиты? Или мне лучше использовать сторонние библиотеки полнотекстового поиска, такие как Lucene? Следовательно, возникает вопрос: «Обрабатывает ли Lucene неанглийские алфавиты?»

Ответы [ 2 ]

15 голосов
/ 14 сентября 2009

Я не специалист в этой области, но ваши требования кажутся мне довольно сложными. Soundex был специально разработан для английских звуков, а также символов. Я не думаю, что это будет хорошо работать для неанглийских языков. См., Например, ответы на этот связанный вопрос .

Double-Metaphone является попыткой справиться с гораздо более сложными вариациями, чем Soundex или Metaphone, и был разработан для обработки неровностей на разных языках. Это может быть достаточно для ваших нужд. На связанной странице есть список реализаций библиотеки.

Поддержка других языков в Lucene основана на концепции Анализаторы . Lucene поставляется с набором анализаторов для разных языков (хотя я не смог найти список по умолчанию), но качество может быть весьма переменным .

0 голосов
/ 14 сентября 2009

В Википедии есть несколько хороших ссылок, начиная со статьи Soundex . Я не знаю, существуют ли существующие библиотеки, предназначенные для работы с таким разнообразным языком.

...