第四章谈谈中文分词
1.中文分词的演变
由于中文等语言,字与字之间是没有空格隔开的,所以需要分词。最简单的分词就是查字典。就是从左到右或者从右到左扫描一句话,然后找到最长的匹配。这种方法可以解决七八成的分词问题。但是毕竟太简单了一点。后来哈工大王晓龙博士把查字典方法理论化,发展成最少词数的分词理论,即一句话应该分成数量最少的词串。但是他无法解决“北京大学生”这样的二义性分割问题。直到20世纪90年代,郭进博士用统计语言模型成功解决了分词二义性问题。假设我们有几种不同的分词方法,那么最好的方法应该是出现概率最大的划分。
在分词上,没有一种绝对正确的划分,根据不同的需要,我们可能有不同的划分方法,“北京大学”,我们可以直接分成“北京大学”,或者分成“北京”+“大学”。
另外不止中文需要分词,有时候,英语也需要分词,尤其是单词间空格不清楚的手写体。
最后,虽然统计语言模型分词可以取得比人工更好的结果,但也不是完全正确,我们只能遵循“大多数人的想法”。
2.延伸阅读:工程上的细节问题
2.1 分词一致性
正如上面说的,分词没有绝对正确的,对一个词可能会有不同的分法。我们不能说准确率97%的一定比95%的分词器好,只能说97%的和人工分词结果更吻合。
2.2 词的颗粒度和层次
分词不一致的主要原因在于人们对词的颗粒度的认识问题。有些地方(比如机器翻译),颗粒度大的效果好,但是有些地方(比如网页搜索),颗粒度小的比较好。次要原因是分词的错误造成的,比如把“北京大学生”分成“北京大学”、“生”,这种属于越界型错误;还有就是把“性价比”这样的词分成三个,这是覆盖型错误。
我们不可能对不同的应用构造不同的分词器,最好是让一个分词器同时支持不同层次的词的切分。
首先我们需要“北京”、“大学”这样的即本次和“北京大学”这样的复合词,为它们各建立一个语言模型L1,L2。先用基本词分句,在用复合词整合。