数学之美笔录(2):中文分词

中文分词:统计语言模型在中文处理中的一个应用

  前一篇文章(数学之美笔录(1):统计语言模型)我们提到使用统计语言模型进行自然语言的处理,而这些语言模型是建立在词的基础上,因为词是表达语义的最小单位。西方的拼音语言,词之间有明确的分界符,统计和使用语言模型处理相对简单。而对于汉语等东方语言,词之间没有明确的分界符(比如:我颜值很高。没有像英文一样的空格之类的分界符),这就需要先对句子进行中文分词。   例如把句子 “中国航天官员应邀到美国与太空总署官员开会。” 分成一串词:   中国 / 航天 / 官员 / 应邀 / 到 / 美国 / 与 / 太空 / 总署 / 官员 / 开会。

  中文分词最简单的方式是查字典,这种方式最早由北京航空航天大学的梁南元教授提出。简单的来说,就是把一个句子从左到右扫描一遍,遇到字典里有的词就标识出来,遇到复合词(比如“上海大学”)就找最长的词匹配, 遇到不认识的字串就分割成单字词。   八十年代,哈工大的王晓龙博士把它理论化,发展成最少词数的分词理论,即一句话应该分成数量最少的词串。这种方法一个明显的不足是当遇到有二义性 (有双重理解意思)的分割时就无能为力了。比如,对短语 “发展中国家” 正确的分割是“发展-中-国家”,而从左向右查字典的办法会将它分割成“发展-中国-家”,显然是错了。另外,并非所有的最长匹配都一定是正确的。比如“上海大学城书店”的正确分词应该是 “上海-大学城-书店,” 而不是 “上海大学-城-书店”。    90年前后,清华大学的郭进博士用统计语言模型成功解决分词二义性问题,将汉语分词的错误率降低了一个数量级。

     利用统计语言模型分词的方法,可以用几个数学公式简单概括如下: 我们假定一个句子S可以有几种分词方法,为了简单起见我们假定有以下三种: A1, A2, A3, …, Ak, B1, B2, B3, …, Bm C1, C2, C3, …, Cn

  其中,A1, A2, B1, B2, C1, C2 等等都是汉语的词。那么最好的一种分词方法应该保证分完词后这个句子出现的概率最大。也就是说如果 A1,A2,…, Ak 是最好的分法,那么 (P 表示概率): P (A1, A2, A3, …, Ak) 〉 P (B1, B2, B3, …, Bm), 并且 P (A1, A2, A3, …, Ak) 〉 P(C1, C2, C3, …, Cn)    因此,只要我们利用前面一篇文章提到的统计语言模型计算出每种分词后句子出现的概率,并找出其中概率最大的,我们就能够找到最好的分词方法。    但是如果我们穷举所有可能的分词方法并计算出每种可能性下句子的概率,那么计算量是相当大的。因此,我们可以把它看成是一个动态规划(Dynamic Programming) 的问题,并利用 “维特比”(Viterbi) 算法快速地找到最佳分词。

  需要指出的是,语言学家对词语的定义不完全相同。比如说 “北京大学”,有人认为是一个词,而有人认为该分成两个词。一个折中的解决办法是在分词的同时,找到复合词的嵌套结构。在上面的例子中,如果一句话包含“北京大学”四个字,那么先把它当成一个四字词,然后再进一步找出细分词 “北京” 和 “大学”。   一般来讲,根据不同应用,汉语分词的颗粒度大小应该不同。比如,在机器翻译中,颗粒度应该大一些,“北京大学”就不能被分成两个词。而在语音识别中,“北京大学”一般是被分成两个词。因此,不同的应用,,应该有不同的分词系统。

  最后,分词具有不一致性,主要体现在两个方面:一是颗粒度不同,比如“中国科技大学”,或者把其当做“中国-科技-大学”三个词,二是分词错误,不如把“贾斯汀比伯”分为五个单字。

如果发现错了,一定要止步.

数学之美笔录(2):中文分词

相关文章:

你感兴趣的文章:

标签云: