繁体   English   中英

未检测到“Spacy”名称

[英]'Spacy' Names Undetected

我下面的代码应该识别字符串中的名称,但它似乎不能识别所有名称。

import spacy
nlp = spacy.load('en_core_web_sm')
text = "Elon Musk 889-888-8888 elonpie@tessa.net Jeff Bezos (345)123-1234 bezzi@zonbi.com Reshma Saujani example.email@email.com 888-888-8888 Barkevious Mingo"
doc = nlp(text)
print([ent for ent in doc.ents if ent.label_ == 'PERSON'])

Output如下:

['Elon Musk 889-888-8888', 'Jeff Bezos']

预期的 output 将是:

['Elon Musk', 'Jeff Bezos', 'Reshma Saujani', 'Barkevious Mingo']

是否有不同的 package 可能有用?

尝试关注;

  • 您可以分别从 spacy 和 try、“en_core_web_md”或“en_core_web_lg”加载相同 model 的中型或大型版本。 这些在计算上很昂贵,但具有更好的准确性。
  • 尝试使用拥抱脸的预训练算法。它们很好...

首先,模型并不完美,它们会出错。 这只是你需要准备的事情。

其次,针对英语(以及大多数其他语言)的 spaCy 预训练管道是针对具有完整句子和段落的文本进行训练的,例如报纸文章。 您似乎只有一个姓名和联系信息列表——这些模型以前从未见过这样的数据,并且在这些数据上的表现相对较差。 如果您的所有文本都是这样,最好使用基于规则的匹配器或训练您自己的 model。

暂无
暂无

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

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