这几天写完了人名识别模块,与分词放到一起形成了两层隐马模型。虽然在算法或模型上没有什么新意,但是胜在训练语料比较新,对质量把关比较严,实测效果很满意。比如这句真实的新闻“签约仪式前,秦光荣、李纪恒、仇和等一同会见了参加签约的企业家。”,分词结果:[签约/v, 仪式/n, 前/f, ,/w, 秦光荣/nr, 、/w, 李纪恒/nr, 、/w, 仇和/nr, 等/u, 一同/d, 会见/v, 了/ul, 参加/v, 签约/v, 的/uj, 企业家/n, 。/w],三个人名“秦光荣”“李纪恒”“仇和”一个不漏。一些比较变态的例子也能从容应对,比如下面:
这是hankcs将自己的分词与ansj作比较得出的结果,由于自己可以随时调整算法,所以主场占了很大便宜。但是第一句绝对没有放水,说实话能识别出“仇和”这么冷僻的名字着实让人惊喜了一下。
开源项目
本文代码已集成到HanLP中开源:https://github.com/hankcs/HanLP
原理
推荐仔细阅读《基于角色标注的中国人名自动识别研究.doc》这篇论文,该论文详细地描述了算法原理和实现。从语料库的整理、标注到最后的模式匹配都讲得清清楚楚。hankcs在这篇论文的基础上做了改进,主要步骤总结如下
1、对熟语库自动标注,将原来的标注转化为角色标注。角色标注一共有如下几种:
hankcs在此基础上拓展了一个S,代表句子的开始。
2、统计标签的出现频次,标签的转移矩阵。
3、对粗分结果角色标注,模式匹配。
hankcs对论文中的几个模式串做了拓充,并且采用了AC模式匹配算法。
体会
论文中将三字名称拆分为BCD,实测在2-gram模型下,C很容易被识别为E,导致人名缺一半。
人民日报2014中的人名并不能覆盖所有常用字,所以hankcs去别的地方找了个人名库,拆成BCD或BE补充了进去。
人民日报2014语料库中有很多错误,比如
去/vf 年老/vi 张中秋/nr 去/vf “/w 泡茶/vi ”/w ,/w 送礼/vi 遭到/v 了/ule 拒绝/v ,/w 老张/nz 担心/v 金额/n 不够/a
中秋很明显不是人名的组成部分,这个必须手工剔除。
“中秋安全”会识别出“中 秋安全”来,因为2-gram词典中没有“中秋@安全”这种接续,而有“中@未##人”这种接续。初步的解决方法是手工往2-gram词典里面加一条“中秋@安全”。这反映了这种方法的局限性,另一方面也说明词典的重要性。
相关推荐
基于HMM-Viterbi的通信网络资源数据处理方法及应用.docx
复杂动态手势识别是利用视频手势进行人机交互的关键问题.提出一种HMM-FNN模型结构.它整合了隐马尔可夫模型对时序数据的建模能力与模糊神经网络的模糊规则构建与推理能力,并将其应用到复杂动态手势的识别中.复杂动态...
HMM以及CRF用于自然语音处理中的命名识别
隐马尔可夫模型 (HMM) 是一种信号...我们的主要目的是通过预测一只股票的涨跌 使用 HMM-LSTM。 Experiment with 4 different models: GMM-HMM XGB-HMM GMM-HMM-LSTM XGB-HMM-LSTM Compared with the results: train_set
基于HMM的动态手势识别
hmm语音识别程序,能根据参数,训练模型和计算出模型距离,对于学习和编写有关隐马尔科夫语音识别程序很有帮助
实验报告-基于GMM-HMM的语音识别.doc
提出一种基于HMM模型的轨迹聚类算法HMM-Cluster,可有效地发现交通量过载情况。该算法首先提取时空轨迹特征点,并采用维数约简技术减少轨迹数据量,根据参照轨迹拟合HMM模型,基于密度函数得到轨迹相似度矩阵,最后...
open-source software toolkit named HMM-based speech synthesis system (HTS) to provide a research and development platform for the speech synthesis community. In December 2006, HTS version 2.0 ...
HMM-based Script Identification for OCR While current OCR systems are able to recognize text in an increasing number of scripts and languages, typically they still need to be told in advance what ...
用于隔离数字识别的简单GMM-HMM模型 简单的GMM和HMM模型的Python实现,用于隔离数字识别。 此实现包含3个模型: 单一高斯:使用具有对角协方差的单一高斯对每个数字进行建模。...cd gmm-hmm-asr && pip ins
ResByte-matlab_HMM-archive-refs-heads-master.zip
中国人名识别,音译人名识别,日本人名识别,地名识别,实体机构名识别 基于线性模型的命名实体识别(精度高) 感知机命名实体识别,CRF命名实体识别 关键词提取 TextRank关键词提取 自动摘要 TextRank自动摘要 短语...
针对中国金融市场呈现出的多波动状态的典型事实特征, 以上海银行间同业拆放利率(Shibor)市场为研究对象, 不仅引入隐马尔可夫模型(hidden Markov model, HMM)对其进行了...
HMM-Bigram(速度与精度最佳平衡;一百兆内存) 、 由字构词(侧重精度,全世界最大语料库,可识别新词;适合NLP任务) 、 词典分词(侧重速度,每秒数千万字符;省内存) 所有分词器都支持: 词性标注 (速度快) ...
语音识别中经典的HMM算法,包括产生序列、测试和参数训练,由C语言编写。
算法设计与分析:2-Lec6-HMM-Bio.pdf
matlab实现的基于HMM模型的语音识别系统,很实用!-Matlab achieve the HMM-based speech recognition systems, a very practical!
这个工具包是语音文件进行hmm识别的工具包。
Hidden markov model toobox with viterbi path