Включение soundex/metaphone для неанглийских символов

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

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

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

Ответы

Ответ 1

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

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

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

Ответ 2

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