名前付きエンティティの認識/分類を実行し、IOB タグ付き形式で出力を生成する必要があります。
NLTK-train libraryによって提供される NLTK チャンカーを使用していますが、それは IOB タグのリストではなくツリーを生成します。
def chunk_iob(list_of_words):
nltk_tagger = nltk.data.load("taggers/conll2002_aubt.pickle")
nltk_chunker = nltk.data.load("chunkers/conll2002_NaiveBayes.pickle")
t = nltk_tagger.tag(list_of_words)
print(t)
c = nltk_chunker.parse(t)
print(c)
次のように c を Tree として取得します。
(S
(LOC Barcelona/NC)
(PER Juan/NC :/Fd)
...
しかし、私は次のようなものを探しています:
Barcelona - LOC
Juan - PER
...
これは、list_of_words パラメーターの IOB タグ付きリストであり、list_of_words と同じ順序です。
ツリーからそのタグ付きリストを取得するにはどうすればよいですか?