繁体   English   中英

如何在使用 NLP 的句子中识别肇事者和受害者?

[英]How can I identify the perpetrator and victim in a sentence using NLP?

我对 NLP 非常陌生,正在寻找可以帮助我识别主题的主题。 具体来说,以下情况下的受害者和攻击者:

英国连续数周遭到中国袭击

几个星期以来,中国袭击了英国。

使用 SpaCy,我已经确定了主题,但它们会根据他们的 position 而变化:

nlp = spacy.load("en_core_web_sm")
doc1 = nlp("China attacked the UK over several weeks")
doc2 = nlp("The UK was attacked by China over several weeks")
docs = [doc1, doc2]
for doc in docs:
  print("============")
  for chunk in doc.noun_chunks:
    print(chunk.text, chunk.root.text, chunk.root.dep_,
            chunk.root.head.text)

Output:

============
China China nsubj attacked
the UK UK dobj attacked
several weeks weeks pobj over
============
The UK UK nsubjpass attacked
China China pobj by
several weeks weeks pobj over

任何帮助和指导将不胜感激。

这称为语义角色标签,很难。 在 spaCy 中,我们的一般建议是不要将其 model 用作 NER,而是使用 PERSON(或此处为 GPE)等通用 NER 标签和依赖项解析,以查看在考虑其他方法之前可以走多远。

有关此问题的非常具体的概述,请参见 spaCy 课程第 4 章中的第 10 节。

有关该主题的研究概述,我推荐Jurafsky & Martin 的书

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM