专栏首页文智的专栏【文智背后的奥秘】系列篇:基于 CRF 的人名识别
原创

【文智背后的奥秘】系列篇:基于 CRF 的人名识别

一.命名实体识别

命名实体识别的主要任务就是从输入文本中把含有特定意义的词或者词组挑出来。命名实体根据其特点可以分为两大类,一类是可以根据构词法规则及上下文语境识别出来的,比如人名、地名、机构名;另外一类是可以穷举的垂直类实体,比如影视名,小说名,游戏名等。

命名实体识别是自然语言处理领域的基础任务,对很多应用都有十分大的作用,比如信息检索,文本摘要,信息抽取,文本聚类分类等。拿信息检索来举例,命名实体识别的结果可以在检索端生成完整索引,在query端做整体下发,这样既可以提高检索效率,又可以降低检索噪音,提高相关性。

二.人名识别

人名识别是命名实体识别中比较典型的一类问题,目前业界主要采用的方法是基于统计的。我们可以把人名识别问题看成是一个序列标注的问题,即根据观察序列预测最优隐含状态序列。

我们把标记定义为:姓用字 B,名中字用字I,名尾字用字E,其他用字O,那么下图的例子中,人名识别的问题可以转化为在已知输入文本“去看谭咏麟演出”,找到一条最大概率的标注序列,即“OOBIEOO”。

求解序列标注的模型有很多,这里我们采用了条件随机场(CRF), 主要是因为他可以任意选择特征,而不像HMM有严格的独立性假设,并且CRF是将所有特征进行全局归一化,最终得到全局最优解。

对于统计的方法来说,最主要的问题就是特征选择与语料获取的问题,下面就这两个问题展开介绍我们的做法。

三.特征选择

我们的特征选择主要分为两大类,一类是基本特征:主要有基于构词法的特征,和基于上下文语言环境的特征。

去看陈奕迅演出 陈学友

去看张学友演出 陈德华

去看刘德华演出 张奕迅

去看谭咏麟演出 刘学友

构词法特征:上面加粗字体部分就是构词法的特征,我们从已有语料中知道这四个都是人名,于是这些人名用字的交叉组合也很有可能也是人名。

            去看邓紫棋演出

                            去看汪苏泷演出

上下文特征:还是上面的例子,黑色字体部分就可以看做是上下文特征,即在“去看^演出”这样的上下文中,知道^部分很大可能是人名。

另外一类主要的特征是泛化特征,之所以添加这类特征主要是因为我们实验发现,仅有基础特征模型的召回是不够的,需要一些泛化的东西来增加召回。

于是我们添加了一个是否为姓名常用字的特征,这个特征可以解决当该名字没有在语料中出现过的时候,也可以根据他的用字特点把新人名识别出来。

比如语料里面有张学友,也有刘德华, 但是没有张学华,于是W(S华 == E, C-2-1 == 张学) = 0, 但是 张,学 作为姓名常用字是有的,那么 W(S华 == E, C-2-1 == 11) > 0 , 这样就增加了这个人名被识别到的概率。

四.语料获取

有监督的学习方法最大的问题就是语料,如何能够获取到又多又准的语料是老大难的问题。现在大部分人都是利用已有标注的熟语料或者人工标注的方法去获取,人名日报是一份比较权威的熟语料,但是我们发现他量小,年份久远,与我们的应用场景网络语料的差距也很大。人工标注语料的成本是很大的,时间长,速度慢,数量小。于是我们想到了一种boosting的语料自动获取方法。

Boosting的方法主要思想就是先用n个基分类器,然后把他们进行加权融合,产生一个最后的结果分类器,在这n个基分类器中,每个单个的分类器的识别率不一定很高,但他们联合后的结果有很高的识别率,这样便提高了该弱分类算法的识别率。

这里我们也是采用了类似的思想,将多种人名识别的结果做投票,认为越多的方法识别到的结果则越准确,我们把这种准确的语料补充到训练语料中去,优化我们的模型。这里我们使用了旧版人名识别结果、竞品人名识别结果、机器翻译的识别结果、及我们基础模型的识别结果来做投票。这四类中,旧版结果,竞品结果及我们的结果我想象都不需要再做介绍了,下面对利用机器翻译结果做人名识别简单介绍一下。

利用机器翻译的结果做人名识别的方法是这样的,我们发现中文人名翻译成英文之后 是有明显特征的,首先是两个大写开头的单词,另外这两个单词是中文字的拼音。那么我们利用中文串的中英翻译的结果及他的拼音串做比对,在满足着两个特征的时候,就是发现其中所包含的人名了。

五、结论

我们的模型经过多次特征及语料的调整,最终在开放集合上测试,最终准确率有96%,召回率有89%。下一步针对人名识别我们还会对语料做持续扩充,并且增加更精细化的特征,让识别效果进一步提升。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 腾讯 AI Lab 计算机视觉中心人脸 & OCR 团队近期成果介绍(1)

    腾讯 AI Lab 计算机视觉中心人脸&OCR; 团队专注于领域内国际前沿技术研究与应用,近期取得部分成果,这里和大家分享一下。

    周景超
  • 闲置资源再利用:个人电脑上畅玩 TensorFlow

    眼下 github 社区最火的开源项目莫过于 tensorflow (后简称TF),本文介绍一种基于windows平台下搭建 TF 运行和开发环境,带大家畅玩 ...

    陈林峰
  • 腾讯云小微激活硬件生态,携合作产品正式亮相

    腾讯云小微自5月22日上线内测以来,吸引了众多关注。在6月22日腾讯“云+未来”峰会现场,腾讯云小微以“声音连接物理世界”为主题,正式在AI小微专场上亮相发布。

    云加社区专栏
  • 腾讯云助力智能交通物流 邱跃鹏:云是无人驾驶的高速公路

    智能交通云在刚刚举办的2017腾讯“云+未来”峰会上,成为瞩目焦点。交通与物流智能化的领军人物就腾讯云新发布的“人工智能即服务”战略展开了讨论与分享。腾讯云也由...

    云资讯小编
  • 关于程序员转型AI这件事,三位老炮跟你聊些干货(下)

    Part 3 智亮:你是我的眼——对计算机视觉的介绍今天我们主要聊的是计算机视觉,咱们先从最大的概念开始说一说,人工智能,机器学习,计算机视觉。人工智能这个概念...

    AI科技大本营
  • 机器学习从入门到出家

    一个2010年入坑的后台如何转向做算法和机器学习的历程和感悟,附录一个书单。希望对于大家在摸索深度学习的入门路径过程中有帮助。

    张红林
  • 关于程序员转型AI这件事,三位老炮跟你聊些干货(中)

    著名财经作家吴晓波最近发表了一篇文章,《为什么新科技的风口总火不过一年》,在文章中引用了Garner技术发展曲线,他认为人工智能目前处在第一波峰的顶点,那么很显...

    AI科技大本营
  • TensorFlow -2: 用 CNN 识别数字

    昨天只是用了简单的 softmax 做数字识别,准确率为 92%,这个太低了,今天用 CNN 来提高一下准确率。关于 CNN,可以看这篇:图解何为CNN简单看一...

    杨熹
  • 当深度学习成为过去,迁移学习才是真正的未来?

    大牛吴恩达曾经说过:做 AI 研究就像造宇宙飞船,除了充足的燃料之外,强劲的引擎也是必不可少的。假如燃料不足,则飞船就无法进入预定轨道。而引擎不够强劲,飞船甚至...

    张霁
  • 基于 boosting 原理训练深层残差神经网络

    介绍一种基于提升理论的训练深度模型的新方法。基于 boosting(提升)原理,逐层训练深度残差神经网络的方法,并对性能及泛化能力给出了理论上的证明。

    丁科

扫码关注云+社区

领取腾讯云代金券