0

Python Spacy を使用して、複数の主語受動態文からエンティティを抽出しようとしています。

文 = 「ジョンとジェニーはデビッドによって犯罪で告発された」

私の意図は、文から「ジョンとジェニー」の両方をnsubjpass.ent_として抽出することです。

ただし、「John」を nsubjpass として抽出することしかできません。

両方を抽出する方法は?

John は .ents のエンティティとして検出されますが、Jenny は nsubjpass ではなく conj と見なされることに注意してください。それを改善する方法は?

コード

each_sentence3 =  "John and Jenny were accused of crimes by David"
doc=nlp(each_sentence3)

passive_toks=[tok for tok in doc if (tok.dep_ == "nsubjpass") ]
if passive_toks != []:
    print(passive_toks)

結果:

[John]

エンティティ リストには次のものが表示されます。

コード

`

print(list(doc.ents)

結果

[John, Jenny, David]

ここで、文全体を調べると、次のようになります。

コード:

for tok in doc:   
        print(tok, tok.dep_)

結果

John nsubjpass
and cc
Jenny conj
were auxpass
accused ROOT
of prep
crimes pobj
by agent
David pobj

2 番目の受動的な主語 Jenny は、Spacy では nsubjpass ではなく conj として識別されることに注意してください。

4

1 に答える 1