You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用bert-base-ner提取完整公司名称的简便方法咨询

解决方案

方法1:直接调用pipeline自带的实体聚合能力(零额外代码,最简便)

你不需要自己写子词拼接、BIO标签实体合并的逻辑,transformers的NER pipeline原生提供了aggregation_strategy参数,开启后会自动完成:

  • 按BIO标注规则,把连续的同类型实体token(比如B-ORG后面跟着的连续I-ORGtoken)合并为单个完整实体
  • 自动处理WordPiece分词产生的带##前缀的子词,拼接还原为完整的自然词

你只需要修改初始化pipeline的代码即可:

from transformers import AutoTokenizer, AutoModelForTokenClassification
from transformers import pipeline

tokenizer = AutoTokenizer.from_pretrained("dslim/bert-base-NER")
model = AutoModelForTokenClassification.from_pretrained("dslim/bert-base-NER")

# 新增aggregation_strategy参数即可
nlp = pipeline("ner", model=model, tokenizer=tokenizer, aggregation_strategy="simple")

ner_results = nlp(text1)
print(ner_results)

针对你给出的示例输入,开启聚合后的输出会直接返回拼好的完整实体:

[
    {'entity_group': 'ORG', 'score': 0.99948, 'word': 'Orion Metals Limited', 'start': 0, 'end': 20},
    {'entity_group': 'LOC', 'score': 0.99974, 'word': 'Australia', 'start': 78, 'end': 87}
]

后续你只需要遍历结果,筛选entity_group为ORG的条目,直接取word字段就是完整的公司名称,不需要做任何额外处理。

关于聚合策略的选择:普通提取场景用simple就足够,如果你需要更严格的实体置信度计算,可以换成average/max/first策略,核心的实体拼接效果基本一致。

方法2:垂类场景换专门训练的组织机构抽取模型

如果你需要处理中文公司名、或者需要更高的公司名识别准确率(比如区分分公司/子公司、识别简称全称对应关系),可以直接选用针对企业名垂类训练的NER模型,这类模型同样兼容pipeline的聚合参数,不需要额外写拼接逻辑,对公司名的识别召回率会比通用bert-base-NER高不少。


内容的提问来源于stack exchange,提问作者Dana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 17:27:26