Nlp 有没有办法将空间标签列入白名单?

Nlp 有没有办法将空间标签列入白名单?,nlp,spacy,Nlp,Spacy,我是spaCy的新手,目前正在尝试使用spaCy英语大型模型从句子中识别人物 在我发现某个被识别的名字不是那个人之前,从句子中识别那个人是没问题的 例如,如果我说“亚历克斯正在吃苹果”。它将成功返回Alex是个人 但当这种情况发生时,它将不再起作用 例如,太阳锯蜜蜂正在吃苹果 我想知道,作为一个没有再培训过spaCy英语模特的人,在“太阳锯蜂”或“亚历山德罗·索恩”中是否有类似于白名单的东西可以添加 或者以某种方式将“太阳锯蜂”识别为一个人吗? 如果有任何与此相关的链接,也许也可以共享,因为我

我是spaCy的新手,目前正在尝试使用spaCy英语大型模型从句子中识别人物
在我发现某个被识别的名字不是那个人之前,从句子中识别那个人是没问题的
例如,如果我说“亚历克斯正在吃苹果”。它将成功返回Alex是个人
但当这种情况发生时,它将不再起作用
例如,太阳锯蜜蜂正在吃苹果
我想知道,作为一个没有再培训过spaCy英语模特的人,在“太阳锯蜂”或“亚历山德罗·索恩”中是否有类似于白名单的东西可以添加
或者以某种方式将“太阳锯蜂”识别为一个人吗?


如果有任何与此相关的链接,也许也可以共享,因为我的关键字搜索可能没有按正确的键

人们不希望在Spacy管道中列出一个名称。Spacy是根据模型而不是最终用户创建的决策为NER检测创建的。正如他们网站上所指出的,当前可用模型的一个局限性是,其中许多模型都接受过维基百科和其他来源的培训,这可能无法反映您的目标数据

将实体列入白名单与搜索相同

if "Sun Saw Bee" in text:
    print('person')

如果您有一个已知实体的列表,您可以结合使用NER模型。根据您的任务/优先级,您可能希望将其添加到管道中的NER模型之前或之后

下面是一个简单的示例(改编自上面链接的文档),展示了如何使用短语模式(字符串)或基于标记的匹配器模式来定义要匹配的实体:

导入空间
从spacy.pipeline导入实体规则
nlp=spacy.load(“en_core\u web\u sm”)
标尺=整个标尺(nlp)
模式=[{“标签”:“组织”,“模式”:“苹果”},
{“label”:“GPE”,“pattern”:[{“LOWER”:“san”},{“LOWER”:“francisco”}]}]
标尺。添加_图案(图案)
nlp.添加管道(标尺,在=“ner”之前)
DOC= NLP(“苹果公司在纽约开设办事处后,在旧金山开设了第一家大型办公室”。
打印([(ent.text,ent.label)用于doc.ents中的ent])
spacy v2.3.2的输出:

[('Apple','ORG'),('first','ORDINAL'),('sanfrancisco','GPE'),('newyorkcity','GPE')]