英文人名和机构怎么提取?用 BERT NER 导出实体与字符位置

使用英文 BERT NER 提取人名、机构和地点,导出 CSV 与字符位置,并检查漏检、分词聚合和领域限制。

把英文报道或业务文字中的人名、机构、地点整理成表,可以先用命名实体识别模型生成候选,再回到原文确认。本例用 BERT NER 导出类型、原文片段和字符位置,解决分词后名称不完整、复制名称难以追溯的问题。

模型能提取哪些字段

dslim/bert-base-NER 在英文 CoNLL-2003 数据上训练,标签包括 PER(人名)、ORG(机构)、LOC(地点)和 MISC(其他实体)。它不提供你自定义的订单号、金额、病历诊断等字段,也不会保证覆盖所有人名。本题是英文实体提取,不是扫描图片文字识别;中文材料应另选经过核验的中文模型。

英文人名和机构怎么提取?用 BERT NER 导出实体与字符位置

示例面向有基础 Python 经验的读者,按 Transformers 4.57.1 接口编写。Windows 可用以下独立环境;macOS/Linux 用 python3 创建环境,并把后续解释器路径换为 .venv/bin/python。首次加载模型需要网络、磁盘和足够内存,CPU 可以执行但速度取决于机器。安装失败时先看 Python 版本与 pip 报错,不能把安装成功当成模型已跑通。

py -m venv .venv
.venv\Scripts\python -m pip install "torch>=2.6" "transformers==4.57.1" safetensors

把实体写成可追溯 CSV

保存为 ner_demo.py 并用独立环境解释器运行。aggregation_strategy=”simple” 将适合聚合的子词合为候选实体;CSV 的 text 从原文按偏移切出,而不是直接复制可能含分词标记的 word。

import csv
from transformers import pipeline

ner = pipeline("token-classification", model="dslim/bert-base-NER",
               aggregation_strategy="simple", device=-1)
text = "Alice joined Microsoft in Berlin. Bob works in London."
entities = ner(text)
rows = []
for item in entities:
    start, end = int(item["start"]), int(item["end"])
    assert 0 <= start < end <= len(text)
    rows.append({"type": item["entity_group"], "text": text[start:end],
                 "score": float(item["score"]), "start": start, "end": end})
with open("entities.csv", "w", newline="", encoding="utf-8-sig") as file:
    writer = csv.DictWriter(file, fieldnames=["type", "text", "score", "start", "end"])
    writer.writeheader()
    writer.writerows(rows)
print(rows)

结果怎样才算有用

打开 entities.csv,逐项对照 Alice、Microsoft、Berlin、Bob、London 的原句,检查实体是否漏掉、类型是否正确、名称是否被拆开。不要把这些词一定会被识别当成实测承诺;它们是本例的人工复核目标。输出空表说明没有实体通过模型判定,不能解释成正文确定没有实体。

为何一定保留原文位置

start 与 end 是当前 text 的字符位置。若后续要展示实体高亮,保存同一份原文和文档编号;文本清洗前后最好同时记录版本。分词聚合并不等同于姓名消歧:同名人物仍可能是不同人,两个相邻机构也不能只因类别相同而合并。

遇到长文、术语和异常怎样处理

该检查点来自新闻语料,领域缩写和新名称可能识别不准。用十几条你自己确认的句子先检查典型类型和漏检,再决定是否采用。长文切片必须保存每块原文起点,并将实体偏移换算回整篇位置;块边缘的名字可能被截断,需要重叠与去重规则。此示例只处理一个短段落,没有实现整篇切片。

相关问答

能直接用实体结果去替换敏感姓名吗?不建议。漏检会留下原名,误检会改坏正文;隐私脱敏需要补充规则、人工或专门的验收集,并保存替换前后的对应关系。

本文已核对官方接口与模型资料,示例输入为人为构造;未在本文环境下载并实跑所列公开模型,未测速度或任务准确率。下面的检查方法由你在实际运行后执行,不能把演示代码当成质量评测结果。

官方资料与版本依据

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/31344.html

赞 (0)
AI小管家的头像AI小管家
英文抽取式问答怎么做?用 DistilBERT 返回答案并核对原文位置
上一篇 3小时前
英文新闻怎么在本地生成摘要?用 DistilBART 控制长度并核对事实
下一篇 3小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部