Вопрос

В настоящее время я работаю над проектом, в котором мне нужно сопоставить большое количество пользовательских имен с отдельным списком таких же имен в каноническом формате.Проблема в том, что сгенерированные пользователем имена содержат многочисленные орфографические ошибки, сокращения, а также просто неверные данные, что затрудняет перекрестную ссылку на канонические данные.Есть какие-нибудь предложения о методах, как это сделать?

Это не обязательно должно выполняться в режиме реального времени, и в данном случае точность важнее скорости.

Текущие идеи для этого следующие:

  1. Выполните нечеткий поиск по введенному пользователем имени в базе данных canonical, используя существующую реализацию поиска, такую как Lucene или Sphinx, которые, я полагаю, используют для этого что-то вроде расстояния Левенштейна.
  2. Перекрестная ссылка на хэш SOUNDEX (который предположительно вычисляется по звучанию имени, а не по написанию) вместо использования фактического имени.
  3. Некоторая комбинация из вышеперечисленного

У кого-нибудь есть какие-либо отзывы по любому из этих вопросов или собственные идеи?

Одна из моих проблем заключается в том, что ни один из вышеперечисленных методов не будет хорошо обрабатывать сокращения.Кто-нибудь может указать мне направление для использования некоторых методов машинного обучения для реального поиска по расширенным аббревиатурам (или сказать мне, что я сумасшедший)?Заранее благодарю.

Это было полезно?

Решение

Во-первых, я бы добавил к вашему списку методы, обсуждаемые на Сообщение Питера Норвига о исправлении орфографии.

Во-вторых, я бы спросил, о каких "пользовательских именах" вы говорите.Разобравшись с обоими, я полагаю, что эвристика, которую вы использовали бы для названий улиц, несколько отличается от эвристики для имен людей.(В качестве простого примера, расширяется ли "Dr" до "Drive" или "Doctor"?)

В-третьих, я бы рассмотрел комбинацию с использованием тестирования, чтобы установить набор коэффициентов для объединения результатов различных методов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top