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

Get Spacy NER to search only for company name and not waste computing power on anything else (Using existing language models.)?

我还在学习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

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

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

您可以忽略您不关心的实体。

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

您不能删除其他实体,因为它们不像单独的函数,该模型使用其关于所有不同类型的知识来帮助它找出模棱两可的情况,比如知道“John Smith”是一个人但是“John Deere”(可能)是一家公司。

好消息是它不是“处理无用信息”或“浪费计算能力”。如果您训练的模型只识别 ORG 实体,它不会更快或任何东西。