1. 摘要

本次我们将开始新的分享系列——自然语言处理(NLP),NLP可以被应用于很多领域:机器翻译、情感分析、智能问答、文本分类等等。本次我们将分享中文自然语言处理的一个重要技术:中文分词技术。在通常的语言理解中,词是最小的能够独立活动的语言成分。只有将词确定下来,中文才能够向英文那样过渡到短语划分以及主题分析,以至自然语言处理。

2. 中文分词技术

由于汉语结构与欧体系语种差异较大,对词的构成边界方面很难进行定位。在英文中,单词本身就是词的表示,一篇英文文章就是单词加空格来表示。在汉语中,词以字为单位,但一篇汉语文章的语义却仍以词来划分。因此,在处理中文文档时,需要进行分词处理,将文档转换成词来表示。这个切词过程就是中文分词。通过计算机自动识别出句子的词,在词间加入边界标识符,分隔出各个词汇,主要的难点在于分词歧义。

中文分词主要有三个流派:规则分词、统计分词、混合分词。

3. 规则分词

规则分词:基于规则的分词是一种机械分词方法,主要是通过维护词典,将语句中的每一个字符串与词表中的词逐一匹配,匹配到就切分,否则不予切分。按照匹配切分的方式,主要有正向最大匹配法、逆向最大匹配法和双向最大匹配法。

正向最大匹配法思想:假设分词词典中的最长词有i个字符,那么用被处理文档的当前字符串的前i个字符作为匹配字段,查找字典。若字典中存在这样一个i长度字词,则匹配成功,匹配字段则被作为一个词切分出来。如果词典中找不到这样的一个i长度字词,则匹配失败。此时便将匹配字段中的最后一个字去掉,对剩余的字符串重新匹配处理。根据这样的规则处理下去,直到匹配成功,即切分出一个词或剩余字符串的长度为0为止。这样就完成一轮匹配,然后取下一个i长度字符串进行匹配处理,直到文档被扫描完为止。

逆向最大匹配法思想:基本原理与正向最大匹配法相同,不同的是分词切分的方向与正向最大匹配法相反。相应的,它使用的分词词典是逆序词典,其中的每个词条都将按逆序方式存放。在实际的处理时,先将文档进行倒排处理,生成逆序文档。然后,根据逆序词典,对逆序文档用正向最大匹配法处理即可。

由于汉语中偏正结构较多,若从后向前匹配,可以适当提高精准度。所以,逆向最大匹配法比正向最大匹配法的误差要小。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配法的错误率为1/245。

双向最大匹配法思想:将正向最大匹配法得到的分词结果和逆向最大匹配法得到的结果进行比较,然后按照最大匹配原则,选取词数切分最少的作为结果。

基于规则的分词,一般都比较简单高效,但是词典的维护是一个很庞大的工程。而且网络新词频频出现,很难通过词典覆盖到所以词。

4. 统计分词

统计分词:主要思想是把每个词看作是由词的最小单位的各个字组成的,如果相连的字在不同的文本中出现的次数越多,就证明这相连的字很可能就是一个词。因此我们就可以利用字与字相邻出现的频率来反映成词的可靠度,统计语料中相邻共现的各个字的组合的频率,当组合频率高于某一个临界值时,我们可以认为这个字的组合可能会构成一个词语。

基于统计的分词,通常需要两个步骤操作:

(1)建立统计语言模型;

(2)对句子进行单词划分,然后对划分结果进行概率计算,获得概率最大的分词方式。这里就要用到了统计学习算法。

语言模型:用概率论的专业术语描述语言模型就是,为长度为m的字符串确定其概率分布P(w1,w2, …,wm),其中w1到wm依次表示文本中的每个词语。一般采用链式法则计算其概率值。

P(w1,w2, …,wm)=P(w1)P(w2|w1)P(w3|w1,w2)

...P(wi|w1,w2, …,wi-1) …P(wm|w1,w2, …,wm-1)

当文本过长时,公式右部从第三项起的每一项计算难度都很大。为了解决该问题,提出了n元模型用来降低该计算难度。所谓的n元模型就是在估算条件概率时,忽略距离大于等于n的上文词的影响,那么此时,计算公式可以简化为

P(wi|w1,w2, …,wi-1) ≈P(wi|wi-(n-1), …,wi-1)

当n=1时称为一元模型,此时整个句子的概率可以表示为P(w1,w2,…,wm)=P(w1)P(w2)…P(wm)。在一元模型中,整个句子的概率等于各个词语概率的乘积。也可以看作是各个词之间是相互独立的,这无疑是完全损失了句子中的顺序信息。所以一元模型的效果并不理想。

由上面表达式可见,当n越大时,模型包含的词顺序信息越丰富,但同时计算量也随之增大。此时长度越长的文本序列出现的次数也会减少。根据公式估计n元条件概率时,就会出现分子分母为零的情况。因此,在一般的n元模型中需要配合相应的平滑算法解决该问题,例如拉普拉斯平滑算法。

HMM模型:隐马尔可夫模型(HMM)是将分词作为字在字串中的序列标注任务来实现的。基本思想是,每一个字在构造一个特定词语时都占据着一个确定的构词位置(简称词位),现规定每个字最多只有4个构词位置,即B(词首)、M(词中)、E(词尾)、S(单独成词),那么对常见的一句话,我们展示效果为。

原句:留给中国足球队的时间已经不多了!

切词后:留给/中国/足球队/的/时间/已经/不多了!

逐字标注后:留/B 给/E 中/B 国/E 足/B 球/M 队/E 的/S 时/B 间/E 已/B 经/E 不/B 多/M 了/M !/E

使用数学抽象表示:用λ=λ1λ2…λn代表输入的句子,n为句子的长度λi表示字,o=o1o2…on代表输出的标签,这样最理想的输出可以表示为:

Max=maxP(o1o2…on|λ1λ2…λn)

在分词的任务中,o即为B、M、E、S这4种标记,λ则表示文本中“足”“球”“队”等单独的字,也包括标点符号等非中文字符。需要注意的是,P(o|λ)是关于2n个变量的条件概率,且n不固定。因此,几乎是无法对P(o|λ)进行精确计算的。在这里要引入观测独立性假设,即每个字的输出仅仅与当前的字有关,于是就可以得到下面表达式:

P(o1o2…on|λ1λ2…λn)=P(o1|λ1)P(o2|λ2)…P(on|λn)

通过了观测独立性假设后,目标问题得到了极大的简化,P(ok|λk)在计算上容易了很多。但是我们会发现这种方法完全没有考虑上下文环境,所以这是非常不合理的。

HMM就是用来解决上述问题的。在上面公式中,我们期望求解的是P(o|λ),那么通过贝叶斯公式分析可以得到:

P(o|λ)=P(o,λ)/P(λ)=P(λ|o)P(o)/P(λ)

λ为给定的输入,因此P(λ)计算为常数,因此最大化P(o,λ)等价于最大化P(λ|o)P(o)。

此时对P(λ|o)P(o)作马尔可夫假设,可以得到:

P(λ|o)=P(λ1|o1)P(λ2|o2)…P(λn|on)

同时,对P(o)有:

P(o)=P(o1)P(o2|o1)P(o3|o1,o2)…P(on|o1,o2,…,on-1)

这是也会面临计算困难的问题,从公式中的第三项开始,计算难度就非常大,这里HMM做了另一个假设——齐次马尔可夫假设:每次输出仅与上一个的输出相关,那么公式可以简化为:

P(o)=P(o1)P(o2|o1)P(o3|o2)…P(on|on-1)

这时,对于P(λ|o)P(o)就可以表示为:

P(λ|o)P(o)≈P(λ1|o1)P(o2|o1)P(λ2|o2)P(o3|o2)…P(λn|on)P(on|on-1)

在HMM中,将P(λk|ok)称为发射概率,P(ok|ok-1)称为转移概率。并且可以通过设置P(ok|ok-1)=0,排除上述中不合理的情况。在我们列出的马尔可夫式子中就是一个二元语言模型,在实际的分词中也多采用二元模型。

HMM求解MaxP(λ|o)P(o)的常用方法是Veterbi算法。算法思想是:如果最终的最优路径经过某个oi,那么从初始节点到oi-1点的路径也必然是最优路径。因为每个节点oi只会影响前后两个P(oi-1|oi)和P(oi|oi+1)。

和机械分词相比,统计分词方法不需要维护词典,还能较好的处理歧义和一些未登录词,是目前很主流的方法,但分词的效果很依赖训练语料的质量,并且计算量高于机械分词很多。

5. 混合分词

在目前常用的分词方法中,在具体的分词任务中,效果上并未有很明显的差距。在实际的工程应用中,首先是先基于一种分词算法使用,然后将其他分词方法辅助使用。

通常的使用方式是先基于机械分词方法进行分词,然后再使用统计分词方法辅助对准未登录词和歧义词,这样混合使用会有比单一使用有更好的效果。

6. 总结

本次分享了中文自然语言处理项目分词的相关技术,基于词典匹配下的规则分词:正向最大匹配法、逆向最大匹配法以及双向最大匹配法。以及为了消除词语歧义和为登录词的基于统计原理的的分词技术:HMM模型。并介绍了通常实战分词时使用的混合分词策略。

MindSpore:自然语言处理(NLP)—分词技术相关推荐

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

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

  2. 与自定义词典 分词_如何掌握分词技术,你需要学会这些

    导语 本周对自然语言处理的分词技术进行了学习.本文针对分词技术的进行了全视角的概览,目标是掌握什么是分词技术.为什么需要分词技术和如何使用分词技术.后续将分不同篇幅对其中内容进行深挖和讲解. 文章结构 ...

  3. jieba分词错误_如何掌握分词技术,你需要学会这些

    1.导语: 本周对自然语言处理的分词技术进行了学习.本文针对分词技术的进行了全视角的概览,目标是掌握什么是分词技术.为什么需要分词技术和如何使用分词技术.后续将分不同篇幅对其中内容进行深挖和讲解.文章 ...

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

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

  5. NLP学习(二)中文分词技术

    运行平台: Windows Python版本: Python3.x IDE: PyCharm 一. 前言 这篇内容主要是讲解的中文分词,词是一个完整语义的最小单位.分词技术是词性标注.命名实体识别.关 ...

  6. 【原创】NLP中的中文分词技术

     NLP中的中文分词技术 作者:mjs (360电商技术组) 随着需求的变化和技术的发展,互联网企业对数据的分析越来越深入,尤其是自然语言处理处理领域,近几年,在搜索引擎.数据挖掘.推荐系统等应用方 ...

  7. 《自然语言处理实战入门》 ---- 第4课 :中文分词原理及相关组件简介 之 语言学与分词技术简介...

    <自然语言处理实战入门> ---- 第4课 :中文分词原理及相关组件简介 之 语言学与分词技术简介 https://edu.csdn.net/course/play/20769/25954 ...

  8. 《自然语言处理实战入门》 第三章 :中文分词原理及相关组件简介 ---- 语言学与分词技术简介

    文章大纲 0.内容梗概 1. 汉语语言学简介 1.1 汉语与汉字的起源 1.2 汉字的统一与演变 1.3 印欧语系与汉藏语系 1.4 语言区别对于NLP 的影响 2. 词汇与分词技术简介 2.1 汉语 ...

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

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

  10. NLP+词法系列(二)︱中文分词技术简述、深度学习分词实践(CIPS2016、超多案例)

    摘录自:CIPS2016 中文信息处理报告<第一章 词法和句法分析研究进展.现状及趋势>P4 CIPS2016 中文信息处理报告下载链接:http://cips-upload.bj.bce ...

最新文章

  1. JSP自定义标签_控制标签体是否执行
  2. python自动测试p-Python自动化测试
  3. PostgreSQL新手入门教程
  4. diamond operator is not supported in -source 1.5和source release 8 requires target release 1.8的问题
  5. 「第三篇」全国电子设计竞赛,这些你必须知道的比赛细节,文末附上近十年电赛题目下载...
  6. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(六)精简魔法更强大
  7. PHP8编译swoole出错,swoole自定义错误的方法
  8. oracle计算1到一百偶数的和,Perl 打印在1..100内所有偶数和奇数
  9. 蚂蚁技术专家:一篇文章带你学习分布式事务
  10. JAVA基础--继承(inheritance)
  11. soapUI(groovy脚本作用1)请不要问为什么系列1
  12. 【软件工程】安装rational rose的步骤
  13. 区块链开发者平台-u deserved it
  14. tinymce 实现 粘贴图片自动上传
  15. 哈哈哈……~好敷衍的第一篇博客标题~
  16. WordPress系列教程(二)----WordPress基本使用和常用设置
  17. 到底什么是超融合呢?
  18. 网易被裁后,68天吃透这份阿里学长甩我的Android面试笔记,竟让我收到字节跳动和小米offer
  19. 06-----the inferior stopped because it triggered an exception
  20. 记录个tomcat启动报错问题,Unable to process Jar entry

热门文章

  1. html读取指定excel,怎样用html读取excel数据
  2. 在word中公式太长,用公式编辑器怎样设置才能自动换行?
  3. 未转变者怎么调服务器难度,未转变者服务器怎么设置出生点 | 手游网游页游攻略大全...
  4. 首届中国云南普洱茶茶王获奖名单及常识
  5. html语言定义诗歌教学实例,小班语言活动案例分析:古诗清明
  6. 腾讯2021校园招聘-后台综合-第一次笔试 8.23 20.00-22.00 Apare_xzc
  7. 前端实现打印功能(纯前端实现)
  8. 数模论文写作方法3|问题重述
  9. 【Vue】报错:Avoid mutating a prop directly since the value will be overwritten whenever the parent
  10. VeryCD关闭音乐视频下载视频网站的正版化历程