分词,是NLP-自然语言处理(还不了解NLP的小伙伴点这里跳转)的重要步骤。
顾名思义,分词就是将句子、段落、文章等连续的长文本,按照一定的规范重新组合分解,使其成为以字、词为基本单位的数据结构,从而方便后续的处理分析工作。
本文主要对中文分词的相关内容进行介绍,英文分词暂不讨论。
为什么要进行中文分词?
1.可以将复杂问题转化为数学问题
在先前介绍机器学习的文章中,我们讲到过,机器学习之所以看上去可以解决很多复杂的问题,是因为它把这些问题都转化为了数学问题。
而NLP也是相同的思路,文本都是一些“非结构化数据”,我们需要先将其转化为“结构化数据”,才能进行后续的工作,将其转化为数学问题,而分词就是转化中的第一步。
2.词是一个比较合适的粒度
我们知道,与以英文为代表的拉丁语系语言相比,英文以空格作为天然的分隔符,而中文由于继承自古代汉语的传统,词语之间没有分隔(古代汉语中除了连绵词和人名地名等,通常单字就是一个词,所以没有分词书写的必要)。
而在现代汉语中,双字或多字词居多,一个字不再等同于一个词,如果将字作为分词的最小单位,其粒度太小,无法表达完整含义,而句子的粒度太大,承载的信息量多,很难复用。
所以说,词往往是能够表达完整含义的最小单位。
中文分词的难点
难点1:没有统一的标准
现代汉语的基本表达单元虽然为“词”,且以双字或者多字词居多,但由于人们认识水平的不同,对词和短语的边界很难去区分。
例如在“对随地吐痰者给予处罚”中,“随地吐痰者”本身是一个词还是一个短语,不同的人会有不同的看法。
因此目前中文分词既没有统一的标准,也没有公认的规范。不同的公司和组织之间都有各自的方法和规则。
难点2:如何做歧义识别
歧义在中文分词中指同样的一句话,可能会存在两种或者更多的切分方法。
例如“兵乓球拍卖完了”以下的2种分词方式就分别表达了2种不同的含义:
“乒乓球/拍卖/完了”
“乒乓/球拍/卖/完了”
主要的歧义有两种:交集型歧义和组合型歧义。
例如“化妆和服装”,可以分为“化妆/和/服装”或者“化妆/和服/装”,由于计算机没有人类的知识进行理解,就很难知道哪个方案才是正确的,这种被称为交集型歧义。
如果说交集型歧义还算比较容易处理,组合型歧义就必须根据整个句子来判断了。例如“这个门把手坏了”中“把手”是一个词,但在“请把手拿开”中“把手”就不是一个词。这对于计算机来说如何识别也十分困难。
难点3:如何做新词识别
在专业术语中,人名、地名和新词被统称为未登录词,也就是那些在分词词典中没有收录,但又确实能称为词的那些词。
最典型的是人名,人可以很容易理解,对机器来说却十分困难。同样举个例子,在“王军虎去广州了”中,“王军虎”作为一个人名,在此处可以算是一个词,但如果把“王军虎”做为一个词收录到字典中去,在“王军虎头虎脑的”中,“王军虎”显然不是一个词,此时就会与先前的收录内容出现分歧。
除人名之外,还有机构名、地名、产品名、商标名、简称、省略语等,这些又恰好是人们使用频率较高的词,因此如何做好新词识别就显得十分重要,新词识别准确率已经成为评价一个分词系统好坏的重要标志之一。
3种典型的中文分词方法
现有的分词算法可分为三大类:基于字符串(词典)匹配的分词方法、基于统计的分词方法和基于理解(深度学习)的分词方法。
1.基于词典匹配的分词方法
又叫机械分词方法,其基本思想是基于词典匹配,即按照一定的策略将待分析的汉字串与机器词典中的词条进行匹配,匹配成功则按照词典的词分词,匹配失败通过调整或者重新选择,如此反复循环即可。
按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配。
常用的几种机械分词方法有如下几种:
1)正向最大匹配法(由左到右的方向)
2)逆向最大匹配法(由右到左的方向)
3)最少切分(使每一句中切出的词数最小)
4)双向最大匹配法(进行由左到右、由右到左两次扫描)
优点:速度快、成本低
缺点:适应性不强,不同领域效果差异大
[if !supportLists]2. [endif]基于统计的分词方法
从形式上看,词是稳定的字之间的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。字与字相邻共现的频率或概率能够较好反映成词的可信度。
因此对分析样本中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。
这种方法只需对分析样本中的字组频度进行统计,无需切分词典,因而又叫做无词典分词法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“许多的”等,并且对常用词的识别精度差,时空开销大。
优点:适应性较强
缺点:成本较高,速度较慢
3.基于理解的分词方法
这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果,其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。
基于理解的分词方法通常包括分词子系统、句法语义子系统、总控三部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。
优点:准确率高、适应性强
缺点:成本高,速度慢
常见的分词器都是使用机器学习算法和词典相结合,一方面能够提高分词准确率,另一方面能够改善领域适应性。
网友评论