NLP简介和三种分词模型

NLP逐渐成为人工智能一大热点研究方向,目前国外对英文分词的研究比较深入,而中文分词发展较缓。它需要联系上下文、作者背景、内容背景等进行调整。

处理这些高度模糊句子所采用消歧的方法,通常运用到语料库以及隐马尔可夫模型(Hidden Markov Model,HMM)、支持向量机(Support Vector Machine,SVM)和条件随机场(Conditional Random Field, CRF)三种为主,也常用于句法分析、命名实体识别、词性标注等,且后两者(SVM、CRF)明显优于隐马尔可夫模型。

其中隐马尔可夫模型(HMM)和条件随机场(CRF)的模型主干相同,其能够应用的领域往往是重叠的,但在命名实体、句法分析等领域CRF更胜一筹。当然不是必须学习HMM才能读懂CRF,但通常来说如果做自然语言处理,这两个模型大家都应该有所了解。

中文分词的概念

中文分词就是输入一个汉语句子,输出一串由“BEMS”组成的序列串,以“E”、“S”结尾进行切词,进而得到句子划分。其中B(begin)代表该字是词语的起始字,M(middle)代表词语中间字,E(end)结束字,S(single)单字成词。

例如:

小普是星海湾最受欢迎的小马

得到BEMS组成的序列为

BESBMESBMESBE

因为句尾只能是E或S,所以得到的切词方式为

BE/S/BME/S/BME/S/BE

进而得到中文句子切词为

小普/是/星海湾/最/受欢迎/的/小马

我们的目的是想要获得每个字的位置,就需要通过了解每个字的状态和它之前的字推出。这就是一个典型的隐马尔可夫模型问题。

什么是隐马尔可夫(HMM)模型

现实生活中有这样一类随机现象,在已知现在情况的条件下,未来时刻的情况只与现在有关,而与遥远的过去并无直接关系。

比如天气预测,如果我们知道“晴天,多云,雨天”之间的转换概率,那么如果今天是晴天,我们便可以推断明天的天气情况,同理后天的天气可以由明天的天气进行推断。

假设我们没办法知道真实的天气情况,仅有今明后三天的植物状态数据。由于植物状态与天气有关,我们可以通过隐马尔可夫模型(Hidden Markov Model)利用植物数据推测真正的天气情况。

即通过观察某种信息来间接地推出该信息背后隐藏的信息。同理,中文分词就是观察中文句子间接地推出每个字在词语中的位置。

运用HMM模型导出的Viterbi算法

1、 五元组:

观测序列-O:小普是星海湾最受欢迎的小马。

初始状态概率向量-π:句子的第一个字属于{B,E,M,S}这四种状态的概率。

状态转移概率矩阵-A:如果前一个字位置是B,那么后一个字位置为BEMS的概率各是多少(如图1,B后面是E的概率为e^(-0.590),此次已取对数方便计算)。

观测概率矩阵-B:在状态B的条件下,如图2观察值为“耀”的概率,取对数后是-10.460。

2、 两种假设

假设一(有限历史性):W_i只由W_(i-1)决定

假设二(独立输出):第i时刻的接收信号w_i只由发送信号r_i决定

3、 viterbi算法

通过五元组加上两个假设导出解决中文分词问题的Viterbi算法,而viterbi算法是一种解码问题:参数(O,π,A,B)已知的情况下,求解状态值序列S。它是一个多步骤、多选择模型的最优化问题,每步选择都保存了所有前序步骤到当前步骤的最小总代价以及下一步的选择。

简单介绍完隐马尔可夫模型后会在此基础上写中文分词(二)提出CRF的理解和两者的比较。简单概括就是:

隐马尔可夫模型(HMM)是在拟合联合概率p(x,y)分布的参数,而条件随机场(CRF)是直接在拟合后验概率p(y|x)的参数。

参考:

https://blog.csdn.net/u014365862/article/details/54891582

https://www.cnblogs.com/mantch/p/12292084.html

作者:陈光泽,就读于华中科技大学。

技术03期:自然语言处理NLP【分词篇】相关推荐

  1. matlab分词NLP,自然语言处理NLP分词篇

    自然语言处理NLP分词篇 自然语言处理NLP[分词篇] NLP简介和三种分词模型 NLP逐渐成为人工智能一大热点研究方向,目前国外对英文分词的研究比较深入,而中文分词发展较缓.它需要联系上下文.作者背 ...

  2. 自然语言处理NLP中文分词,词性标注,关键词提取和文本摘要

    NLP相关工具包的介绍 1.1 jieba "结巴"中文分词,理念是做最好的 Python 中文分词组件. 支持三种分词模式: (1)精确模式,试图将句子最精确地切开,适合文本分析 ...

  3. 自然语言处理(NLP):概述【NLP技术的四个维度:声音、单词、句子结构、语义】

    深度学习-自然语言处理:概述[NLP技术的四个维度:声音.单词.句子结构.语义] 一.NLP的主要问题 二.NLP技术的四个维度 1.声音 2.单词/Morphology层面的技术 2.1 Word ...

  4. 【组队学习】【28期】基于transformers的自然语言处理(NLP)入门

    基于transformers的自然语言处理(NLP)入门 论坛版块: http://datawhale.club/c/team-learning/39-category/39 开源内容: https: ...

  5. 自然语言处理NLP之BERT、BERT是什么、智能问答、阅读理解、分词、词性标注、数据增强、文本分类、BERT的知识表示本质

    自然语言处理NLP之BERT.BERT是什么.智能问答.阅读理解.分词.词性标注.数据增强.文本分类.BERT的知识表示本质 目录

  6. 自然语言处理NLP之分词、词性标注(POS)、组块分析(Chunking)、命名实体识别(Named Entity Recognition,简称NER)

    自然语言处理NLP之分词.词性标注(POS).组块分析(Chunking).命名实体识别(Named Entity Recognition,简称NER) 目录

  7. 离线数仓建设,企业大数据的业务驱动与技术实现丨03期直播回顾

    原文链接:离线数仓建设,企业大数据的业务驱动与技术实现丨03期直播回顾 视频回顾:点击这里 课件获取:点击这里 一.离线数仓建设背景 离线数据是相对实时数据而言的数据产出,不同于实时数据,离线数据一般 ...

  8. 【组队学习】【29期】9. 基于transformers的自然语言处理(NLP)入门

    9. 基于transformers的自然语言处理(NLP)入门 航路开辟者:多多.erenup.张帆.张贤.李泺秋.蔡杰.hlzhang 领航员:张红旭.袁一涵 航海士:多多.张红旭.袁一涵.童鸣 基 ...

  9. 2021年自然语言处理(NLP)算法学习路线!

    NLP近几年非常火,且发展特别快.像BERT.GPT-3.图神经网络.知识图谱等技术应运而生.我们正处在信息爆炸的时代.面对每天铺天盖地的网络资源和论文.很多时候我们面临的问题并不是缺资源,而是找准资 ...

最新文章

  1. Altium Designer修改3D视图时PCB板的颜色
  2. Confusion matrix
  3. 12.dateformat常用格式
  4. SBT模版(Size Balanced Tree)
  5. 期货与期权(part3)--期货合约和期权合约
  6. 获取Android手机的分辨率通过ADB命令
  7. 初识ABP vNext(6):vue+ABP实现国际化
  8. bzoj3129 [Sdoi2013]方程 容斥+扩展lucas
  9. Centos7.3 坑爹网络配置
  10. 从未在一起更让人遗憾_科比生涯4大遗憾,只有1个MVP,错过保罗,跟腱撕裂再无传奇...
  11. android点击图片跳转页面底部,【报Bug】安卓底部选项卡webview模式下 点击跳转到某个页面后,会出现底部重叠的问题...
  12. linux 内存清理/释放命令(也可用于openwrt和padavan等系统的路由器)
  13. matlab 7.0电路图,基于Multisim10和Matlab7.0的正弦稳态电路分析
  14. linux oracle ora-12162,oracle ORA-12162: TNS:net service name is incorrectly specified
  15. 【Linux】循序渐进学运维-学习方法篇
  16. 《惢客创业日记》2020.04.01-15(周三) 国家有难,匹夫有责(四)
  17. 云打码实现验证码识别
  18. 电池供电应用中的电源设计:干电池特性了解、LDO与DC-DC选型设计、电流检测方案要点
  19. 【环境搭建】手把手教你安装Ubuntu16.04系统
  20. 最新PHP软文发稿新闻文章发布自助推广平台源码

热门文章

  1. 阿里深度序列匹配模型SDM:如何刻画大型推荐系统的用户行为?
  2. 程序员入错行怎么办?
  3. 京东金融将发布重量级技术与数据产品 招募合作伙伴共拓蓝海市场
  4. 硅谷初创公司工资期权调查报告出炉,你羡慕吗?
  5. 笑出腹肌的注释,都是被代码耽误的诗人!
  6. Alibaba Sentinel限流功能
  7. 收藏:存储知识全面总结
  8. Spring Cloud 2020: Hystrix不生效怪我咯
  9. 教你设计一个超牛逼的本地缓存!
  10. 我去,你写的 switch 语句也太老土了吧