HanLP-基于HMM-Viterbi的人名识别原理介绍
Hanlp自然语言处理包中的基于HMM-Viterbi处理人名识别的内容大概在年初的有分享过这类的文章,时间稍微久了一点,有点忘记了。看了 baiziyu 分享的这篇比我之前分享的要简单明了的多。下面就把文章分享给大家交流学习之用,部分内容有做修改。 本文主要介绍一下HanLP是如何利用HMM来做人名识别的。基本思想是把词语序列作为观测序列,将角色序列作为隐藏序列,当模型预测出最佳隐藏状态序列后,利用模式最大匹配法,匹配出人名实体。下边说一模型的三要素在这个应用中所对应的内容,因为训练阶段就是要求解这三个要素的值。假设有下边的观测序列和其对应的隐藏序列 观察值序列:词1 词2 … 词n隐变量序列:角色1 角色2 … 角色n训练阶段:统计三个要素(三个矩阵的元素值)初始概率分布: 各隐变量标记意义列于下表 状态转移概率分布: 观测概率分布: 有关这些概率值的计算都很简单,就是频率法,留在后边介绍隐马时候再写。预测阶段:根据训练得到的三个要素,利用Viterbi算法求解得到了最优隐藏变量序列 角色1 角色2 ... 角色n*最大模式匹配阶段:利用下边的模式串匹配出人名{ BBCD, BBE...
