![](/img/trans.png)
[英]Problem to extract NER subject + verb with spacy and Matcher
[英]Spacy NER: Extract all Persons before a specific word
我知道我可以使用名為 recognition 的 spacy 實體來提取文本中的人物。 但我只想提取“問”這個詞之前的人或人。
我應該將 Matcher 與 NER 一起使用嗎? 我是 Spacy 的新手,如果問題很簡單,我深表歉意
所需 Output:
路易斯·吳
當前Output:
路易斯·吳
藍品敏
import spacy
nlp = spacy.load("en_core_web_trf")
doc = nlp (
"Mr Louis Ng asked what kind of additional support can we give to sectors and businesses where the human interaction cannot be mechanised. Mr Lam Pin Min replied that businesses could hire extra workers in such cases."
)
for ent in doc.ents:
# Print the entity text and label
print(ent.text, ent.label_)
您可以使用Matcher
查找特定單詞之前的PERSON
實體:
pattern = [{"ENT_TYPE": "PERSON"}, {"ORTH": "asked"}]
因為每個字典都對應一個標記,所以這個模式只會匹配實體的最后一個詞(“Ng”)。 您可以讓第一個 dict 與{"ENT_TYPE": "PERSON", "OP": "+"}
匹配多個標記,但這會冒着在“Before Ms”之類的示例中連續匹配兩個人實體的風險X 與 Y 女士交談,Z 女士詢問……”。
為了能夠更輕松地使用Matcher
單個實體,您可以將組件merge_entities
添加到管道的末尾( https://spacy.io/api/pipeline-functions#merge_entities ),它將每個實體合並到一個單個令牌。 然后這個模式將匹配“Louis Ng”作為一個標記。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.