英文POS Tagger(nltk.word_tokenize)による用語抽出

モジュールをimport

In [1]:
import termextract.english_postagger
import termextract.core

from pprint import pprint # このサンプルでの処理結果の整形表示のため

英文のプレインテキストを読み込み

In [2]:
f = open("eng_sample.txt", "r", encoding="utf-8")
text = f.read()
f.close
print(text)

nltk.word_tokenize (英文のPOS Tagger)で英文処理

事前にnltk (Pythonの自然言語処理パッケージ)のインストールが必要

In [3]:
import nltk
tagged_text = nltk.pos_tag(nltk.word_tokenize(text))
print(tagged_text)

複合語抽出処理(ディクショナリとリストの両方可)

In [7]:
frequency = termextract.english_postagger.cmp_noun_dict(tagged_text)
pprint(frequency)

#term_list = termextract.english_postagger.cmp_noun_list(tagged_text)
#pprint(term_list)

FrequencyからLRを生成する

In [8]:
LR = termextract.core.score_lr(frequency,
         ignore_words=termextract.english_postagger.IGNORE_WORDS,
         lr_mode=1, average_rate=1
     )
pprint(LR)

FrequencyとLRを組み合わせFLRの重要度を出す

In [9]:
term_imp = termextract.core.term_importance(frequency, LR)
pprint(term_imp)

collectionsを使って重要度が高い順に表示

In [10]:
import collections
data_collection = collections.Counter(term_imp)
for cmp_noun, value in data_collection.most_common():
    print(cmp_noun, value, sep="\t")