自然语言处理NLP分词篇

自然语言处理NLP【分词篇】

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

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

自然语言处理NLP分词篇相关教程

matlab分词NLP,自然语言处理NLP分词篇相关推荐

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

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

  2. jieba分词_自然语言NLP必备(1),jieba工具 5 行代码对整篇文章分词

    自然语言是什么?下面来看看百度百科的介绍: 自然语言处理是计算机科学领域与人工智能领域中的一个重要方向.它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法.自然语言处理是一门融语言学.计 ...

  3. NLP自然语言处理实战(一):利用分词器构建词汇表

    在NLP中,分词(tokenization,也称分词)是一种特殊的文档切分(segmentation)过程.而文档切分能够将文本拆分成更小的文本块或片段,其中含有更集中的信息内容.文档切分可以是将文档 ...

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

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

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

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

  6. 自然语言处理(NLP)任务中常用的分词工具及底层算法支持

    刚刚和一个在三快在线(美团)的算法老同学聊天,聊到了他们现有分词工具效果不好的问题,我们最终讨论的结果就是没有效果好或者效果不好之后,只有适合不适合,归根结底还是要看各个分词工具中模型的基础训练数据成 ...

  7. 用python进行自然语言处理_Python NLP自然语言处理之使用jieba进行中文分词实践

    自然语言处理的首要任务是分词,将一段文本分割成独立的词语. 中文分词介绍 已经归纳的三种分词如下: 规则分词.统计分词.混合分词规则分词: 通过设立人工词库,按照一定方式进行切分匹配. 正向最大匹配法 ...

  8. 深度学习将会变革NLP中的中文分词

    深度学习将会变革NLP中的中文分词 2016-08-08 19:03 转载 陈圳 0条评论 雷锋网按:本文转自ResysChina高翔,文章主要介绍了1)区分中文分词的方法:2)用深度学习的方法来解决 ...

  9. 【NLP】为什么中文分词比英文分词更难?有哪些常用算法?(附代码)

    导读:人类文明的重要标志之一是语言文字的诞生.数千年来,几乎人类所有知识的传播都是以语言和文字作为媒介. 自然语言处理是使用计算机科学与人工智能技术分析和理解人类语言的一门学科.在人工智能的诸多范畴中 ...

最新文章

  1. 为什么这些死脑筋们在用 VI ?
  2. solaris10修改IP
  3. 超详细 - SVN下载安装及使用教程
  4. c语言打印字符的函数参数,C语言格式化打印函数vsnprintf()的实现
  5. 为什么有些人看起来年纪轻轻,但思想深度和高度却远高于常人?
  6. SQL Server中的动态SQL
  7. 邮箱与手机做账号的验证实例
  8. 算法:Unix是如何简化路径的Simplify Path简化路径规则
  9. 会议论文有影响因子吗_论文投稿——会议论文能否被SCI或EI收录
  10. 初学树莓派——(六)树莓派安装OpenCV及USB摄像头配置
  11. 9种常见的HR数据分析方法
  12. HTML期末学生大作业:中华传统文化【苏绣手工艺】带psd设计图(15页)
  13. 斐讯n1 linux连接wifi,斐讯 N1 部署 Docker 和 OpenWRT,并利用 Hostapd 开启 Wi-Fi 热点
  14. pe没法给服务器装系统吗,U盘重装系统无法进入PE解决方法
  15. 在线API文档、技术文档工具ShowDoc
  16. 医疗行业售前100问之第3问:医院的常用信息系统有哪些?
  17. Failed to connect to github.com port 443 after 21035 ms: Timed out
  18. 15年程序员经验分享:40个改变你编程技能的小技巧!
  19. Python编程练习.机器人行走
  20. 沁恒微CH32V307开发板试用-RT-Thread+UART+LWIP+LED

热门文章

  1. 佳能G4810彩色喷墨打印机更换墨盒
  2. Go基础系列 01-Golang简介
  3. 2022超nice的跨年烟花代码
  4. 【Error】 Linux系统“检测到系统程序错误”
  5. [轉]运用项目管理WBS方法成功创建网店
  6. MobaXterm下载文件*B00000000000000解决办法
  7. 解决Docker Swarm重装.yml文件后无法创建新Service
  8. matlab实现CP分解 代码
  9. 人工智能中的Web端编程
  10. python离线下载第三方库