机器咋从一段话里捞人名地名?聊聊命名实体识别

先说人话:它干的是「捞名字」的活儿
命名实体识别,名字唬人,干的事特实在——从一段文字里,把那些「有名有姓」的玩意儿一个个捞出来,再贴上标签。人名归人名、地名归地名、公司名归公司名、时间日期归时间日期。你平时刷新闻,看见「马斯克」「特斯拉」「得州」被标成不同颜色,或者搜「苹果」只给你公司不给你水果,背后八成站着 NER 这位老编辑。它不写文章、不抒情,就专门干「分拣名字」这种细活儿,是信息提取的头道工序,机器读懂「谁在哪儿干了啥」全靠它打底。
它咋干:先认字、再归类,老套路是「标注加模型」
传统干法分两步走。第一步,得有人先把一堆句子里的人名地名用手工标好,告诉机器「这个词是人、那个词是地」——这叫标注语料,最累人,也最费钱。第二步,拿这些标好的样本去训个模型,让它能举一反三,看见新句子也知道哪儿该捞、捞出来算哪类。早年用规则硬写(「姓加名」算人),后来换成序列标注模型(比如条件随机场、双向 LSTM),现在是预训练大模型一上手,连标都不用标那么细。但根儿上还是那句话:先有人教,机器才会捞,没人喂它啥也认不出。
难在哪儿:同名不同人、新名字天天冒
这活儿看着简单,坑可不少。头一个坑叫「同名不同人」——满世界叫「李娜」的多了去了,模型得结合上下文判断这是网球李娜还是你邻居家李娜,光看名字它懵。第二个坑叫「新名字天天冒」——今天冒出个新公司、新地名,模型没见过就认不出,总得补数据。第三个坑是缩写和别称:「字节」是家公司、「BYD」是比亚迪,机器得把这套黑话也记脑子里。所以 NER 不是一劳永逸的活儿,得常更常新,老炮管这叫「模型会老,语料得喂」。
还有更坑的:边界划不清、嵌套套娃
再往深了说,还有俩磨人的主儿。一个是「边界」——「北京大学」是整体一个机构名,还是「北京」加「大学」?少切一刀多切一刀,意思就歪了。另一个是「嵌套」——「北京大学肿瘤医院」里,套着「北京大学」又套着「肿瘤医院」,像俄罗斯套娃,模型得一层层剥。这类嵌套实体,传统模型经常一刀切错。所以真正落地时,光说「能识别」不够,得问清它能不能扛住这套娃和边界,别被演示视频忽悠了,演示里挑的都是好对付的。
如今大模型上位,它轻松了吗
你肯定想问:现在大模型这么能聊,NER 是不是随便拿捏?确实轻松了不少——你直接跟它说「把这段话里的人名地名列出来」,它基本张口就来,连标注都省了,小场面真香。但真上业务,麻烦还在:它偶尔会编、会漏、不稳定,今天认明天不认;而且你没法精准控制它吐啥格式,要接进系统还得规整。所以眼下主流是「大模型打底、规则兜底」——能聊的活儿交给它,要准要稳的环节还得有老办法把着,别指望一个模型包打天下,那是偷懒不是本事。
一句话收尾
命名实体识别,说白了就是让机器从文字里把人名、地名、机构名这类「有名有姓」的玩意儿捞出来贴标签,是信息提取的头道工序。它靠标注喂大、被同名新名折腾、被嵌套边界磨,如今大模型能帮大忙却还不能完全撒手。咱记住它的用处就够了:搜索、推荐、知识图谱、舆情监控,背后都站着这位不爱出风头、专捞名字的老编辑。它不写诗,但没它,机器读不懂你写的「谁在哪儿干了啥」,再能聊也是睁眼瞎。







