java人名识别_HanLP-基于HMM-Viterbi的人名识别

有关于隐马的原理,打算在后边的文章中再去介绍,今天主要介绍一下HanLP是如何利用HMM来做人名识别的。基本思想是把词语序列作为观测序列,将角色序列作为隐藏序列,当模型预测出最佳隐藏状态序列后,利用模式最大匹配法,匹配出人名实体。下边说一模型的三要素在这个应用中所对应的内容,因为训练阶段就是要求解这三个要素的值。

假设有下边的观测序列和其对应的隐藏序列

观察值序列:词1 词2 … 词n

隐变量序列:角色1 角色2 … 角色n

训练阶段:统计三个要素(三个矩阵的元素值)

初始概率分布:

各隐变量标记意义列于下表

状态转移概率分布:

观测概率分布:

有关这些概率值的计算都很简单,就是频率法,留在后边介绍隐马时候再写。

预测阶段:

根据训练得到的三个要素,利用Viterbi算法求解得到了最优隐藏变量序列 角色1* 角色2* ... 角色n*

最大模式匹配阶段:

利用下边的模式串匹配出人名

{ BBCD, BBE, BBZ, BCD, BEE,BE,BG,BXD,BZ,CD,EE,FB, Y,XD}

基于HMM-Viterbi标注的人名识别原理就介绍到这里,我想我应该把原理说清楚了,如果你还没有看明白,就等着后续的有关隐马的文章吧。基于隐马的人名识别会很容把以一个姓氏作为开头的词语识别为人名,特别是地名中有人名字的,因此,人工整理出一些非常用姓氏的人名,以及一些地名是必要的,后续如果整理出来了,我应该会放到专栏文章里,毕竟都是公开语料上做的,也就不涉及什么别的不方便。

接下来说点儿猪一样脑子的笑话。今天猪又发问了,问题是”你知道字段的意思吗?“我实在对这种儿童一样的问题没兴趣答,于是回答”不知道“。这些导数据的人还有点儿脑子没有,没脑子也就罢了,多学习学习呀,改MySQL的技能就不要求了,反正现在MySQL也不开源了,学习学习计算机等级考试教材去吧,我问了一堆自我感觉良好的Java工程师,我觉得这号的连工程师的头衔都不配,顶到头是个中级技师,3级数据库全是设计,我觉得得有一多半人做不出来,当然全体指的不光是Java,所有跟计算机程序打交道的,我也不会。。。狗屁不懂,还老装着很懂,就像汪诚义老师说的,那些工农兵大学的学生,不懂也都说懂。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值