Английская лексика для коррекции поисковых запросов
-
23-09-2019 - |
Вопрос
Я создаю корректор орфографии для запросов поисковых систем, реализуя метод, описанный в разделе "Исправление орфографии как итеративный процесс, использующий коллективные знания веб-пользователей.".
Подход высокого уровня заключается в следующем:для данного запроса найдите возможных кандидатов на исправление (слова в журнале запросов на определенном расстоянии редактирования) для каждой униграммы и биграммы, затем выполните модифицированный поиск Витерби, чтобы найти наиболее вероятную последовательность кандидатов с учетом частот биграмм.Повторяйте этот процесс до тех пор, пока последовательность не будет иметь максимальную вероятность.
Модификация поиска Витерби такова, что если два соседних слова встречаются в доверенном словаре, исправить можно не более одного.Это особенно важно, чтобы избежать исправления правильно написанных однословных запросов на более часто встречающиеся слова.
Мой вопрос заключается в том, где найти такой словарь.Он должен быть на английском языке и содержать имена собственные (имена/фамилии, места, названия брендов и т. д.), которые могут появиться в поисковых запросах, а также распространенные и необычные английские слова.Даже толчок в правильном направлении был бы полезен.
Кроме того, если кто-то читает это и имеет какие-либо предложения по улучшению методологии, изложенной в статье, я также открыт для них, учитывая, что это мой первый опыт НЛП.
Решение
Лучшим словарем для этой цели, вероятно, является 5-граммовый набор данных Google Web 1T.
http://www.ldc.upenn.edu/Catalog/CatalogEntry.jsp?catalogId=LDC2006T13
К сожалению, это не бесплатно, если ваш университет не является членом LDC.
Вы также можете попробовать использовать корпуса в таких пакетах, как Python NLTK, но пакет Google, похоже, лучше всего подходит для ваших целей, поскольку он уже связан с поисковыми запросами.