隐马尔可夫模型(HMM)实现命名实体识别(NER)
隐马尔可夫模型(HMM)实现命名实体识别(NER)
一、命名实体识别(Named Entity Recognition,NER)
识别文本中具有特定意义的实体,包括人名、地名、机构名、专有名词等等
在使用的NER数据集中包含七个标签:
- “B-ORG” : 组织或公司(organization)
- “I-ORG” : 组织或公司
- “B-PER” : 人名(Person)
- “I-PER” : 人名
- “O” : 其他非实体(other)
- “B-LOC” : 地名(location)
- “I-LOC” : 地名
文本中以每一个字为单位,每一个字对应上面的任一种标签。
标签前面有分为B和I,"B"表示begin,实体开头的那个字,在实体中间或者结尾部分,,用”I“来标注。
例如:自(B-PER)贸(I-LOC)区(I-LOC),这是一个错误的标注,原因是我们以(B-PER)开头,那么后面的应该是I-PER类型,而不是其他类型。
由此,我们可以发现,仅仅采用语言模型(Bert 或者 LSTM)进行标注的话会产生很多的错误标注,我们需要在语言模型后加上概率图模型(条件随机场)由来约束模型的 输出,从而达到防止输出不合法的标注。
二、一个栗子
采用训练好的隐马尔可夫模型进行实体标注
from HMM_model import *
model = HMM_NER(char2idx_path="./dicts/char2idx.json",tag2idx_path="./dicts/tag2idx.json")
model.fit("./corpus/train_data.txt")
model.predict("我在西区300318教室上清华大学的自然语言处理课程")
识别人名
text = "张吉惟、林国瑞、林玟书、林雅南、江奕云、刘柏宏、阮建安、林子帆"
model.predict(text)
三、什么是隐马尔可夫模型
隐马尔可夫模型又称隐马模型又称HMM,是概率图模型之一,我们常见的贝叶斯模型也是概率图模型之一。
HMM属于生成模型,上面描述的BIO实体标签就是一个不可观测的隐藏状态,而HMM模型描述的就是由这些隐藏状态序列(实体标记)生成可观测结果(可读文本)的过程。
例如
隐藏状态序列: B-ORG | I-ORG | I-ORG | I-ORG |
观测结果序列: 清 华 大 学
假设可观测状态序列是由所有汉字组成的集合,用
隐马尔可夫模型(HMM)实现命名实体识别(NER)相关推荐
- 用隐马尔可夫模型(HMM)做命名实体识别——NER系列(二)
上一篇文章里<用规则做命名实体识别--NER系列(一)>,介绍了最简单的做命名实体识别的方法–规则.这一篇,我们循序渐进,继续介绍下一个模型--隐马尔可夫模型. 隐马尔可夫模型,看上去,和 ...
- 用隐马尔可夫模型(HMM)做命名实体识别——NER系列(一)
原博python2写的,文末是我改的python3代码 隐马尔可夫模型,看上去,和序列标注问题是天然适配的,所以自然而然的,早期很多做命名实体识别和词性标注的算法,都采用了这个模型. 这篇文章我将基于 ...
- viterbi维特比算法和隐马尔可夫模型(HMM)
阅读目录 隐马尔可夫模型(HMM) 回到目录 隐马尔可夫模型(HMM) 原文地址:http://www.cnblogs.com/jacklu/p/7753471.html 本文结合了王晓刚老师的ENG ...
- 机器学习知识点(二十五)Java实现隐马尔科夫模型HMM之jahmm库
1.隐马尔可夫模型HMM的应用场景,关乎于序列和状态变化的都可以. 发现java有可库,专为开发HMM,可惜只能在CSDN上有得下载. 2.jahmm是java开发隐马尔科夫模型的一个j ...
- 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现
1.隐马尔可夫模型HMM 学习算法,看中文不如看英文,中文喜欢描述的很高深. http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...
- 隐马尔科夫模型HMM自学 (3)
Viterbi Algorithm 本来想明天再把后面的部分写好,可是睡觉今天是节日呢?一时情不自禁就有打开电脑.......... 找到可能性最大的隐含状态序列 崔晓源 翻译 多数情况下,我们都希望 ...
- 隐马尔科夫模型HMM自学 (2)
HMM 定义 崔晓源 翻译 HMM是一个三元组 (,A,B). the vector of the initial state probabilities; the state transitio ...
- 隐马尔科夫模型HMM自学(1)
介绍 崔晓源 翻译 我们通常都习惯寻找一个事物在一段时间里的变化规律.在很多领域我们都希望找到这个规律,比如计算机中的指令顺序,句子中的词顺序和语音中的词顺序等等.一个最适用的例子就是天气的预测. 首 ...
- 【NLP】用于语音识别、分词的隐马尔科夫模型HMM
大家好,今天介绍自然语言处理中经典的隐马尔科夫模型(HMM).HMM早期在语音识别.分词等序列标注问题中有着广泛的应用. 了解HMM的基础原理以及应用,对于了解NLP处理问题的基本思想和技术发展脉络有 ...
最新文章
- c/c++中typedef与函数指针
- 超全PHP学习资源整理:入门到进阶系列
- maven设置代理服务器_使用Maven设置您的应用服务器
- 使用信号实现异步通知机制的例子
- C++基础::string
- {基于Applet的J2ME模拟器}和{microemulator}[J2ME推荐]
- linux journalctl使用详解
- 按拼音首字母排列的地区选择代码 中文和拼音已配好链接
- matlab 鲁棒性分析,电液速度系统的鲁棒性分析及MATLAB计算
- 2017-2018-2 20179215《网络攻防实践》第二周作业
- python3 socket TCP 服务器 一对多转发信息
- 如何用python画出自己喜欢的表情包
- 【转载】软件爱好者必备的优秀软件网站分享收藏
- 产品经理小技术:图片素材随手找,原型设计快又好
- CreateFont(MFC)字体设计
- Couldnt check the working tree for unmerged files because of an error. bad signature index file cor
- es java 查询为空和非空的数据
- sql 授予其他用户权限语句
- android实现下载功能实现,Android开发之DownloadManager的使用
- 【热门主题: 高清雪景桌面壁纸】