#nltk #relevance #named-entity-recognition
#nltk #Актуальность #распознавание именованных объектов
Вопрос:
Я проверял функцию распознавания именованных объектов в NLTK. Возможно ли выяснить, какое из извлеченных ключевых слов наиболее релевантно исходному тексту? Кроме того, возможно ли узнать тип (человек / организация) извлеченных ключевых слов?
Ответ №1:
Если у вас есть обученный теггер, вы можете сначала пометить свой текст, а затем использовать классификатор NE, который поставляется с NLTK.
Помеченный текст должен быть представлен в виде списка
sentence = 'The U.N.'
tagged_sentence = [('The','DT'), ('U.N.', 'NNP')]
Тогда классификатор ne вызывался бы следующим образом
nltk.ne_chunk(tagged_sentence)
Возвращает дерево. Классифицированные слова будут отображаться в виде узлов дерева внутри основной структуры.
Результат будет включать, является ли это ЧЕЛОВЕКОМ, ОРГАНИЗАЦИЕЙ или GPE.
Чтобы найти наиболее релевантные термины, вы должны определить меру «релевантности». Обычно используется tf / idf, но если вы рассматриваете только один документ, частоты может быть достаточно.
Вычислить частоту каждого слова в документе с помощью NLTK легко. Сначала вы должны загрузить свой корпус, и как только вы его загрузите и получите текстовый объект, просто вызовите:
relevant_terms_sorted_by_freq = nltk.probability.FreqDist(corpus).keys()
Наконец, вы могли бы отфильтровать все слова в relevant_terms_sorted_by_freq, которые не принадлежат к определенному списку слов.
NLTK предлагает онлайн-версию полной книги, с которой мне интересно начать