You need to enable JavaScript to run this app. 基于Spacy库的NER概率分析 涉洗钱场景模型优化及实体概率查询
优惠活动
大模型
产品
解决方案
定价
更多

基于Spacy库的NER概率分析 涉洗钱场景模型优化及实体概率查询

spaCy NER实体分类概率获取方案

注意:spaCy默认的NER组件为过渡式解析架构,默认仅输出最优标签结果,不会直接返回分类概率,可通过以下两种可行方案实现需求

方案1:启用现有NER组件的波束搜索返回置信度

不需要修改现有模型结构,适合已经完成洗钱领域语料微调的现成NER模型使用,示例代码如下:

import spacy

# 加载你微调好的针对洗钱场景的NER模型,也可替换为官方预训练模型如zh_core_web_trf/en_core_web_trf
nlp = spacy.load("your_trained_model_path")
ner_pipe = nlp.get_pipe("ner")
# 配置波束搜索参数
ner_pipe.cfg["beam_density"] = 0.0001
ner_pipe.cfg["beam_width"] = 32

# 传入从报纸链接提取的正文文本
doc = nlp("extracted_news_article_content")

for ent in doc.ents:
    # 仅筛选你需要的人名、地点、组织机构三类实体
    if ent.label_ not in ["PER", "GPE", "LOC", "ORG"]:
        continue
    # 获取当前实体的所有候选标签及对应概率
    beams = ner_pipe.beam_parse([doc], beam_width=32, beam_density=0.0001)
    for beam in beams:
        for score, candidate_ents in ner_pipe.get_beam_parses(beam):
            for candidate in candidate_ents:
                # 匹配到当前实体的位置后输出对应标签和概率
                if candidate.start == ent.start and candidate.end == ent.end:
                    print(f"实体:{ent.text} | 候选标签:{candidate.label_} | 概率:{round(score,4)}")

方案2:换用SpanCategorizer(跨度分类)架构做NER

如果还在模型优化阶段,更推荐使用spaCy的spancat组件替代默认NER,该架构天然输出每个候选实体的分类概率,且在细分领域场景下的识别准确率通常高于传统过渡式NER,推理时获取概率的示例代码如下:

import spacy

# 加载用spancat架构训练好的洗钱场景NER模型
nlp = spacy.load("your_spancat_trained_model_path")
doc = nlp("extracted_news_article_content")

# 遍历spancat输出的实体结果,默认存储在doc.spans["sc"],可在训练时自定义键名
for ent in doc.spans["sc"]:
    if ent.label_ in ["PER", "GPE", "LOC", "ORG"]:
        print(f"实体:{ent.text} | 标签:{ent.label_} | 概率:{round(ent.score,4)}")

适配你的研究场景的优化建议

  • 针对洗钱相关报纸文章的场景,建议先标注少量领域专属语料,再对预训练模型做微调,可大幅提升实体识别准确率
  • 拿到实体分类概率后,可设置置信度阈值过滤低概率的错误识别结果,或对概率低于阈值的实体做人工校验,进一步提升输出质量
  • 若使用波束搜索方案,可根据准确率和推理速度的需求调整beam_width参数,参数越大覆盖的候选标签越全,但是推理速度会相应变慢

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 19:57:03