1. 基本文本处理技能
1.1 分词的概念(分词的正向最大、逆向最大、双向最大匹配法);
百度百科定义:中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。
维基百科定义:Word segmentation is the problem of dividing a string of written language into its component words.
简单的讲,中文分词就是让计算机系统在汉语文本中的词与词之间自动加上空格或其他边界标记。
汉语分词难点:分词规范、歧义切分、未登录词识别。
分词规范:词这个概念一直是汉语语言学界纠缠不清又挥之不去的问题,也就是说,对于词的抽象定义(词是什么)和词的具体界定(什么是词)迄今拿不出一个公认的、具有权威性的词表来。
歧义切分:切分歧义是汉语分词研究中一个大问题,因为歧义字段在汉语文本中大量存在。处理这类问题可能需要进行复杂的上下文语义分析,甚至韵律分析(语气、重音、停顿等)。
未登录词识别:未登录词又叫生词,一般有二种解释:第一种指的是已有的词表中没有收录的词;第二种指的是已有的训练语料中未曾出现过的词。在第二种解释下,又称之为集外词(out of vocabulary,OOV)。
中文分词基本方法:
三大类:基于词典的方法、基于理解的分词方法和基于统计的分词方法。
基于词典的方法(又称机械分词方法):
- 这种方法本质上就是字符串匹配的方法,将一串文本中的文字片段和已有的词典进行匹配,如果匹配到,则此文字片段就作为一个分词结果。但是基于词典的机械切分会遇到多种问题,最为常见的包括歧义切分问题和未登录词问题
- 常用的字符串匹配方法有如下几种:
正向最大匹配法(从左到右的方向);
逆向最大匹配法(从右到左的方向);
最少切分(每一句中切出的词数最小)
双向最大匹配(进行从左到右、从右到左两次扫描) - 这类算法的优点是速度快,时间复杂度可以保持在O(n),实现简单,效果尚可;但对歧义和未登录词处理效果不佳。
1.正向最大匹配分词
正向的就是从前往后比较,要设置一个最长词的长度maxLength,就是最长能识别这么长的词,举个例子,比如有个词叫“五仁叉烧”,而设定的最长词长度为3,那么就不会分出“五仁叉烧”这个词出来。所调用“最大”意思就是说,从长的往短的匹配,一旦能匹配上长的,就终止了,就不会去匹配短的,比如如果“五仁叉烧”能匹配上,就不会再去匹配“五仁”,“叉烧”。
下面以一个例子来说明:要进行分词的字符串:“研究生命的起源”
假定我们的字典中的相关内容如下:
研究
研究生
生命
命
的
起源
假定最大匹配字数设定为5
正向最大匹配过程:
研究生命的
研究生命
研究生 #第一个词匹配成功
之后继续匹配第二个词: