3

私は文をとり、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'] 

問題はレベッカです。ナッシュビルとテネシーの両方が彼女の所在地の一部であることをどのように抽出できますか?あるいはテネシーだけでも?

答えて

0

最初はテネシー州のナッシュビル内の関係を抽出する必要があるようです。その後、すべての場所をRebeccaに一時的に割り当てます(RebeccaはNashville、NashvilleはTennessee、RebeccaはNashville、RebeccaはTennessee)。

これはもう1つの関係タイプであり、上記の推論のロジックです(かなり複雑になりますが、回避するのは難しい)。

関連する問題