HanLP中的人名识别分析详解
在看源码之前,先看几遍论文《基于角色标注的中国人名自动识别研究》 关于命名识别的一些问题,可参考下列一些issue: u名字识别的问题 #387 u机构名识别错误 u关于层叠HMM中文实体识别的过程 HanLP参考博客: 词性标注 层叠HMM-Viterbi角色标注模型下的机构名识别 分词 在HMM与分词、词性标注、命名实体识别中说: 分词:给定一个字的序列,找出最可能的标签序列(断句符号:[词尾]或[非词尾]构成的序列)。结巴分词目前就是利用BMES标签来分词的,B(开头),M(中间),E(结尾),S(独立成词) 分词也是采用了维特比算法的动态规划性质求解的,具体可参考:文本挖掘的分词原理 角色观察 以“唱首张学友的歌情已逝”为例, 先将起始顶点 始##始,角色标注为:NR.A 和 NR.K,频次默认为1 对于第一个词“唱首”,它不存在于 nr.txt中,EnumItem<NR> nrEnumItem = PersonDictionary.dictionary.get(vertex.realWord);返回null,于是根据它本身的词性猜一个角色标注: 由于"唱首"的Attribute为 nz 16,不是nr 和 nnt,故默认给它指定一个角色NR.A,频率为nr.tr.txt中 NR.A 角色的总频率。 此时,角色列表如下: 接下来是顶点“张”,由于“张”在nr.txt中