Поиск слов из словаря в строке текста - PullRequest
1 голос
/ 14 июля 2011

Как бы вы проанализировали строку текста произвольной формы для обнаружения таких вещей, как местоположения и имена, на основе словаря местоположений и имен?В моем конкретном приложении будет несколько десятков тысяч, если не больше записей в моих словарях, так что я уверен, что просто просмотреть их все не может быть и речи.Кроме того, есть ли способ добавить «нечеткое» сопоставление, чтобы вы могли также обнаружить подстроки, которые находятся в пределах x правок словарного слова?Если я не ошибаюсь, это относится к области обработки естественного языка и, в частности, к распознаванию сущностей (NER);однако моя попытка найти информацию об алгоритмах и процессах, лежащих в основе NER, оказалась пустой.Я бы предпочел использовать Python для этого, так как я лучше с этим знаком, хотя я открыт для поиска других решений.

1 Ответ

1 голос
/ 16 июля 2011

Вы можете попробовать загрузить Stanford Named Entity Recognizer: http://nlp.stanford.edu/software/CRF-NER.shtml

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

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

...