Распознавание именованных объектов с использованием NLTK. Актуальность извлеченных ключевых слов

#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 предлагает онлайн-версию полной книги, с которой мне интересно начать