让Spacy NER只搜索公司名称,而不将计算能力浪费在其他任何东西上(使用现有的语言模型)?

2024-04-26 14:41:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我还在学python。我正在尝试抓取网站并提取公司名称。我计划使用scrapy进行爬行,并使用spacy语言模型提取公司名称。 迄今为止的代码:

import spacy

nlp = spacy.load("sv_pipeline-0.0.0/sv_pipeline/sv_pipeline-0.0.0")
doc = nlp("Jag jobbade på Random Företag AB. Sedan fick jag jobbet på DenAndraFöretaget AB")
width = 15

for ent in doc.ents:
    print(ent.text, ent.label_)

输出:

Random Företag AB ORG
DenAndraFöretaget AB ORG

Process finished with exit code 0

我猜如果我在文本中有其他“名称实体”,比如实际名称和货币,它也会返回它们。但我所需要的只是文本中的公司名称(ORG),这样它就不会处理无用的信息。我该怎么做


Tags: org文本名称docabnlppipelinespacy
1条回答
网友
1楼 · 发布于 2024-04-26 14:41:52

不能将模型更改为仅标记一个命名实体

你可以忽略你不在乎的实体

for ent in doc.ents:
    if ent.label_ != "ORG": continue
    ... do stuff ...

你不能删掉其他实体,因为它们不像单独的功能,模型使用它对所有不同类型的知识来帮助它找出模棱两可的情况,比如知道“约翰·史密斯”是一个人,而“约翰·迪尔”可能是一家公司

好消息是,它不是“处理无用信息”或“浪费计算能力”。如果你训练一个模型只识别组织实体,它不会更快

相关问题 更多 >