私は文をとり、Person(PER)とPlace(GPE)の関係を抽出しようとしています。人と都市/州との関係の抽出
センテンス「ジョンはオハイオ出身、マイケルはフロリダ出身、レベッカはテネシー州ナッシュビル出身です」
最終的な人物のために、彼女は彼女の場所として抽出できる都市と州の両方を持っています。これまでは、nltkを使ってこの作業を試みましたが、彼女の状態ではなく、彼女の都市を抽出することしかできませんでした。
私が試したもの:
import re
from nltk import ne_chunk, pos_tag, word_tokenize
from nltk.sem.relextract import extract_rels, rtuple
sentence = "John is from Ohio, Michael is from Florida and Rebecca is from Nashville which is in Tennessee."
chunked = ne_chunk(pos_tag(word_tokenize(sentence)))
ISFROM = re.compile(r'.*\bfrom\b.*')
rels = extract_rels('PER', 'GPE', chunked, corpus = 'ace', pattern = ISFROM)
for rel in rels:
print(rtuple(rel))
私の出力は、次のとおりです。
[PER: 'John/NNP'] 'is/VBZ from/IN' [GPE: 'Ohio/NNP']
[PER: 'Michael/NNP'] 'is/VBZ from/IN' [GPE: 'Florida/NNP']
[PER: 'Rebecca/NNP'] 'is/VBZ from/IN' [GPE: 'Nashville/NNP']
問題はレベッカです。ナッシュビルとテネシーの両方が彼女の所在地の一部であることをどのように抽出できますか?あるいはテネシーだけでも?