簡體   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