首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HanLP中人名识别分析详解

在看源码之前,先看几遍论文《基于角色标注的中国人名自动识别研究》 关于命名识别的一些问题,可参考下列一些issue: l ·名字识别的问题 #387 l ·机构名识别错误 l ·关于层叠HMM中文实体识别的过程...HanLP参考博客: 词性标注 层叠HMM-Viterbi角色标注模型下的机构名识别 分词 在HMM与分词、词性标注、命名实体识别中说: 分词:给定一个字的序列,找出最可能的标签序列(断句符号:[词尾...至于为什么是上面那个公式来计算转移概率和发射概率,可参考论文:《基于角色标注的中国人名自动识别研究》 在上面例子中,得到的最优隐藏状态序列(最优路径)K->A->K->Z->L->E->A->A 如下:...wordNetOptimum.insert(offset, new Vertex(Predefine.TAG_PEOPLE, name, ATTRIBUTE, WORD_ID), wordNetAll); } 将识别出来的人名保存到最优词网后...                    System.out.printf("细分词网:\n%s\n", wordNetOptimum);                 }             } 总结 源码上的人名识别基本上是按照论文中的内容来实现的

93430

HanLP中的人名识别分析详解

在看源码之前,先看几遍论文《基于角色标注的中国人名自动识别研究》 关于命名识别的一些问题,可参考下列一些issue: 名字识别的问题 #387 机构名识别错误 关于层叠HMM中文实体识别的过程 封面....JPG HanLP参考博客: 词性标注 层叠HMM-Viterbi角色标注模型下的机构名识别 分词 在HMM与分词、词性标注、命名实体识别中说: 分词:给定一个字的序列,找出最可能的标签序列(断句符号:...至于为什么是上面那个公式来计算转移概率和发射概率,可参考论文:《基于角色标注的中国人名自动识别研究》 在上面例子中,得到的最优隐藏状态序列(最优路径)K->A->K->Z->L->E->A->A 如下:...wordNetOptimum.insert(offset, new Vertex(Predefine.TAG_PEOPLE, name, ATTRIBUTE, WORD_ID), wordNetAll); } 将识别出来的人名保存到最优词网后...                    System.out.printf("细分词网:\n%s\n", wordNetOptimum);                 }             } 总结 源码上的人名识别基本上是按照论文中的内容来实现的

90250
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    HanLP-基于HMM-Viterbi的人名识别原理介绍

    Hanlp自然语言处理包中的基于HMM-Viterbi处理人名识别的内容大概在年初的有分享过这类的文章,时间稍微久了一点,有点忘记了。看了 baiziyu 分享的这篇比我之前分享的要简单明了的多。...封面.jpg 本文主要介绍一下HanLP是如何利用HMM来做人名识别的。基本思想是把词语序列作为观测序列,将角色序列作为隐藏序列,当模型预测出最佳隐藏状态序列后,利用模式最大匹配法,匹配出人名实体。...角色n* 最大模式匹配阶段: 利用下边的模式串匹配出人名 { BBCD, BBE, BBZ, BCD, BEE,BE,BG,BXD,BZ,CD,EE,FB, Y,XD} 基于HMM-Viterbi标注的人名识别原理就介绍到这里...基于隐马的人名识别会很容把以一个姓氏作为开头的词语识别人名,特别是地名中有人名字的,因此,人工整理出一些非常用姓氏的人名,以及一些地名是必要的,后续如果整理出来了,我应该会放到专栏文章里,毕竟都是公开语料上做的

    80940

    hanlp自然语言处理包的人名识别代码解析

    nr 33% ns 83% nt 43% 姓氏过滤后,各命名实体识别准确率 nr 36% ns 83% nt 81% 这里没有开层叠隐马预测机构名和地名,nt上升原因估计是由于很多不是人名的词语没被标为人名...错误识别人名,100个常用姓氏的不多,很多恐怕是HanLP里其他词表干预进来的。 隐马一般用于分词和词性标注是比较好的,为什么通常的序列标注方法也就是BIEO方法直接用到实体识别不合适呢。...但是到了实体识别则不一定,拿人名来说,除了姓氏以外,名字词语部分可以填充的词语是任意的,也就是说任何词语都有可能出现在中间位置,此时发射矩阵中的某些词实际上就没有太大意义了,因为它可能等可能的由BIEO...下边介绍一下HanLP人名识别的主要流程 1.使用使用匹配法求出各种分词路径用变量wordNetAll存储 2.用viterbi方法找到一条最优的分词路径,这里主要使用用户自定义词典以及核心词典,用序列变量...在做人名识别时还有一个注意的点,如果你的预测语料和训练语料完全在文体上差别很大,或者说你就是在公开的训练语料上训练而不在预测语料上训练的话,基本上上下文信息是没有用处的,甚至有可能上下文信息会给实体边界标注带来干扰

    93530

    基于分布式的短文本命题实体识别之----人名识别(python实现)

    目前对中文分词精度影响最大的主要是两方面:未登录词的识别和歧义切分。 据统计:未登录词中中文人名在文本中一般只占2%左右,但这其中高达50%以上的人名会产生切分错误。...其目的是识别语料中人名、地名、组织机构名等命名实体。...e.g.ICTCLAS中的HMM人名识别 1.以“王菲”为例,粗分结果是“始##始, 王, 菲, 末##末,”,很明显,粗分过程并不能识别正确的人名,因为“王菲”这个词并不存在于一元语言模型词典中。...我们的BE匹配到了BE: 姓+单名这条规则,所以是一个单名人名,最终识别出结果: 王菲 ---- 3 单机版实现 ?...基于统计和规则的中文人名识别研究与实现[D].

    3.7K20

    Hanlp实战HMM-Viterbi角色标注中国人名识别

    这几天写完了人名识别模块,与分词放到一起形成了两层隐马模型。虽然在算法或模型上没有什么新意,但是胜在训练语料比较新,对质量把关比较严,实测效果很满意。...但是第一句绝对没有放水,说实话能识别出“仇和”这么冷僻的名字着实让人惊喜了一下。...图2.jpg 开源项目 本文代码已集成到HanLP中开源:https://github.com/hankcs/HanLP 原理 推荐仔细阅读《基于角色标注的中国人名自动识别研究.doc》这篇论文,该论文详细地描述了算法原理和实现...体会 论文中将三字名称拆分为BCD,实测在2-gram模型下,C很容易被识别为E,导致人名缺一半。...人民日报2014中的人名并不能覆盖所有常用字,所以hankcs去别的地方找了个人名库,拆成BCD或BE补充了进去。

    95900

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

    二.人名识别 人名识别是命名实体识别中比较典型的一类问题,目前业界主要采用的方法是基于统计的。我们可以把人名识别问题看成是一个序列标注的问题,即根据观察序列预测最优隐含状态序列。...这里我们使用了旧版人名识别结果、竞品人名识别结果、机器翻译的识别结果、及我们基础模型的识别结果来做投票。...利用机器翻译的结果做人名识别的方法是这样的,我们发现中文人名翻译成英文之后 是有明显特征的,首先是两个大写开头的单词,另外这两个单词是中文字的拼音。...那么我们利用中文串的中英翻译的结果及他的拼音串做比对,在满足着两个特征的时候,就是发现其中所包含的人名了。...下一步针对人名识别我们还会对语料做持续扩充,并且增加更精细化的特征,让识别效果进一步提升。

    3.9K31

    中文车牌识别系统

    感谢Liuruoze的EasyPR开源车牌识别系统。 EasyPR是一个中文的开源车牌识别系统,其目标是成为一个简单、灵活、准确的车牌识别引擎。...它能够识别中文,例如车牌为苏EUK722的图片,它可以准确地输出std:string类型的"苏EUK722"的结果。 它的识别率较高。目前情况下,字符识别已经可以达到90%以上的精度。...目录结构 以下表格是本工程中所有目录的解释: 目录 解释 src 所有源文件 include 所有头文件 test 测试程序 model 机器学习的模型 resources/text 中文字符映射表 resources...,是字符分割与字符鉴别功能的组合 plate_recognize 车牌识别,是车牌检测与字符识别的共有子类 feature 特征提取回调函数 plate 车牌抽象 core_func.h 共有的一些函数...train目录下文件的解释: 文件 解释 ann_train.cpp 训练二值化字符 annCh_train.hpp 训练中文灰度字符 svm_train.hpp 训练车牌判断 create_data.hpp

    10.7K91

    Windows 使用 pocketsphinx 做中文语音识别

    https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/ 其中 Mandarin 为中文普通话...16k_ptm256_8000.tar.bz2 (需要解压) 语言模型:zh_broadcastnews_64000_utf8.DMP 拼音字典:zh_broadcastnews_utf8.dic 测试中文语音识别...首先准备一个中文音频文件(要求:.wav 格式,采样频率 16000HZ,单声道) 将下载的中文模型文件和解压后的 pocketsphinx 目录放到同一个目录下,这里假定就叫“中文语音识别”。...进入“中文语音识别”目录,然后运行下面的命令 pocketsphinx\bin\Release\x64\pocketsphinx_continuous.exe -hmm zh_broadcastnews_ptm256...dict zh_broadcastnews_utf8.dic -infile myfile-16000.wav > myfile.txt 运行完毕后,查看 myfile.txt 文件,内容即是程序识别出来的中文

    5.6K31

    Python:字符中文判断及编码识别

    简介 python在执行代码过程是不知道这个字符是什么意思的、是否是中文,而是把所有代码翻译成二进制也就是000111这种形式,机器可以看懂的语言。  也就是在计算机中所有的字符都是有数字来表示的。...汉字也是有数字表示的,Unicdoe4E00~9FFF表示中文,所以如果一个字符的utf-8编码在这个区间内,就说明它是中文。...中文编码对应表 GBK UTF16 UTF8 汉字 D2BB 4E00 E4 B8 80 一 B6A1 4E01 E4 B8 81 丁 C6DF 4E03 E4 B8 83 七 CDF2 4E07 E4...判断字符包含中文: def is_not_en_word(self, word:str): ''' 判断一个词是否是非英文词,只要包含一个中文,就认为是非英文词汇 :param...else: return False def is_en_mail(self, mail_text:str): ''' 判断一个词是否是非英文词,只要包含一个中文

    15610

    PPASR中文语音识别(入门级)

    PPASR语音识别(入门级) 本项目将分三个阶段分支,分别是入门级、进阶级和应用级分支,当前为入门级,随着级别的提升,识别准确率也随之提升,也更适合实际项目使用,敬请关注!...PPASR基于PaddlePaddle2实现的端到端自动语音识别,本项目最大的特点简单,在保证准确率不低的情况下,项目尽量做得浅显易懂,能够让每个想入门语音识别的开发者都能够轻松上手。...在传统的语音识别的模型中,我们对语音模型进行训练之前,往往都要将文本与语音进行严格的对齐操作。...每一行数据包含该语音文件的相对路径和该语音文件对应的中文文本,要注意的是该中文文本只能包含纯中文,不能包含标点符号、阿拉伯数字以及英文字母。...我们可以使用这个脚本使用模型进行预测,通过传递音频文件的路径进行识别

    2.4K20

    Linux 使用 pocketsphinx 做中文语音识别

    前一篇博客说了一下怎么在 Windows 平台使用 pocketsphinx 做中文语音识别,今天看看在 Linux 上怎办实现。...模型文件下载地址 https://sourceforge.net/projects/cmusphinx/files/Acoustic and Language Models/ 其中 Mandarin 为中文普通话...16k_ptm256_8000.tar.bz2 (需要解压) 语言模型:zh_broadcastnews_64000_utf8.DMP 拼音字典:zh_broadcastnews_utf8.dic 测试中文语音识别...首先准备一个中文音频文件(要求:.wav 格式,采样频率 16000HZ,单声道) 将下载的中文模型文件和解压后的 pocketsphinx 目录放到同一个目录下,这里假定就叫 “test”。...-dict zh_broadcastnews_utf8.dic -infile myfile-16000.wav > myfile.txt 运行完毕后,查看 myfile.txt 文件,内容即是程序识别出来的中文

    5.1K30
    领券