隐马尔可夫模型(HMM)实现命名实体识别(NER)

一、命名实体识别(Named Entity Recognition,NER)

识别文本中具有特定意义的实体,包括人名、地名、机构名、专有名词等等
在使用的NER数据集中包含七个标签:

  1. “B-ORG” : 组织或公司(organization)
  2. “I-ORG” : 组织或公司
  3. “B-PER” : 人名(Person)
  4. “I-PER” : 人名
  5. “O” : 其他非实体(other)
  6. “B-LOC” : 地名(location)
  7. “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)相关推荐

  1. 用隐马尔可夫模型(HMM)做命名实体识别——NER系列(二)

    上一篇文章里<用规则做命名实体识别--NER系列(一)>,介绍了最简单的做命名实体识别的方法–规则.这一篇,我们循序渐进,继续介绍下一个模型--隐马尔可夫模型. 隐马尔可夫模型,看上去,和 ...

  2. 用隐马尔可夫模型(HMM)做命名实体识别——NER系列(一)

    原博python2写的,文末是我改的python3代码 隐马尔可夫模型,看上去,和序列标注问题是天然适配的,所以自然而然的,早期很多做命名实体识别和词性标注的算法,都采用了这个模型. 这篇文章我将基于 ...

  3. viterbi维特比算法和隐马尔可夫模型(HMM)

    阅读目录 隐马尔可夫模型(HMM) 回到目录 隐马尔可夫模型(HMM) 原文地址:http://www.cnblogs.com/jacklu/p/7753471.html 本文结合了王晓刚老师的ENG ...

  4. 机器学习知识点(二十五)Java实现隐马尔科夫模型HMM之jahmm库

    1.隐马尔可夫模型HMM的应用场景,关乎于序列和状态变化的都可以.    发现java有可库,专为开发HMM,可惜只能在CSDN上有得下载.     2.jahmm是java开发隐马尔科夫模型的一个j ...

  5. 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现

    1.隐马尔可夫模型HMM    学习算法,看中文不如看英文,中文喜欢描述的很高深.    http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...

  6. 隐马尔科夫模型HMM自学 (3)

    Viterbi Algorithm 本来想明天再把后面的部分写好,可是睡觉今天是节日呢?一时情不自禁就有打开电脑.......... 找到可能性最大的隐含状态序列 崔晓源 翻译 多数情况下,我们都希望 ...

  7. 隐马尔科夫模型HMM自学 (2)

    HMM 定义 崔晓源 翻译 HMM是一个三元组 (,A,B).  the vector of the initial state probabilities;  the state transitio ...

  8. 隐马尔科夫模型HMM自学(1)

    介绍 崔晓源 翻译 我们通常都习惯寻找一个事物在一段时间里的变化规律.在很多领域我们都希望找到这个规律,比如计算机中的指令顺序,句子中的词顺序和语音中的词顺序等等.一个最适用的例子就是天气的预测. 首 ...

  9. 【NLP】用于语音识别、分词的隐马尔科夫模型HMM

    大家好,今天介绍自然语言处理中经典的隐马尔科夫模型(HMM).HMM早期在语音识别.分词等序列标注问题中有着广泛的应用. 了解HMM的基础原理以及应用,对于了解NLP处理问题的基本思想和技术发展脉络有 ...

最新文章

  1. c/c++中typedef与函数指针
  2. 超全PHP学习资源整理:入门到进阶系列
  3. maven设置代理服务器_使用Maven设置您的应用服务器
  4. 使用信号实现异步通知机制的例子
  5. C++基础::string
  6. {基于Applet的J2ME模拟器}和{microemulator}[J2ME推荐]
  7. linux journalctl使用详解
  8. 按拼音首字母排列的地区选择代码 中文和拼音已配好链接
  9. matlab 鲁棒性分析,电液速度系统的鲁棒性分析及MATLAB计算
  10. 2017-2018-2 20179215《网络攻防实践》第二周作业
  11. python3 socket TCP 服务器 一对多转发信息
  12. 如何用python画出自己喜欢的表情包
  13. 【转载】软件爱好者必备的优秀软件网站分享收藏
  14. 产品经理小技术:图片素材随手找,原型设计快又好
  15. CreateFont(MFC)字体设计
  16. Couldnt check the working tree for unmerged files because of an error. bad signature index file cor
  17. es java 查询为空和非空的数据
  18. sql 授予其他用户权限语句
  19. android实现下载功能实现,Android开发之DownloadManager的使用
  20. 【热门主题: 高清雪景桌面壁纸】

热门文章

  1. 广义表之树的兄弟孩子表示法
  2. JavaScript 实战-翻牌游戏 - H5和CSS3 (1)
  3. 大学生心理健康和二级心理咨询师
  4. $time,$realtime
  5. 日程管理系统——UML建模
  6. 着色问题求解java 图形化_练习 - 实现 Grover 算法以解决图形着色问题
  7. 《高级无线网络—4G技术》——1.5参考文献
  8. 丽江全域游:综合整治与大数据支撑的升级样本
  9. PMFS文件系统挂载
  10. CCS3.3安装常见问题(以合众达的为例)