4

NLTK の Named Entity Recognition 機能を調べていました。抽出されたキーワードのうち、原文と最も関連性が高いキーワードを特定することはできますか? また、抽出したキーワードの種類(人・組織)を知ることは可能ですか?

4

1 に答える 1

7

トレーニング済みのタガーがいる場合は、まずテキストにタグを付けてから、NLTK に付属の NE 分類子を使用できます。

タグ付けされたテキストはリストとして表示する必要があります

sentence = 'The U.N.'
tagged_sentence = [('The','DT'), ('U.N.', 'NNP')]

次に、ne分類子は次のように呼び出されます

nltk.ne_chunk(tagged_sentence)

ツリーを返します。分類された単語は、メイン構造内のツリー ノードとして表示されます。結果には、PERSON、ORGANIZATION、または GPE の場合が含まれます。

最も関連性の高い用語を見つけるには、「関連性」の尺度を定義する必要があります。通常はtf/idfが使用されますが、1 つのドキュメントのみを検討している場合は、頻度で十分です。

NLTK を使用すると、文書内の各単語の頻度を簡単に計算できます。最初にコーパスをロードする必要があります。それをロードして Text オブジェクトを取得したら、次のように呼び出します。

relevant_terms_sorted_by_freq = nltk.probability.FreqDist(corpus).keys()

最後に、単語の NE リストに属さない related_terms_sorted_by_freq 内のすべての単語を除外できます。

NLTK は、私が最初に興味を持っている完全な本のオンライン版を提供しています

于 2011-11-24T08:59:26.413 に答える