首页 人工智能

第二节 中文分词

字体:16+-

前面已经谈到过分词的问题。因为词是表达语义的最小单位,所以几乎所有语言处理模型都是建立在识别词的基础之上的,这是自然语言处理中的一个基本问题。

英文的词之间存在天然的分界符(空格),所以只要识别分界符就可以解决大部分分词问题。这里之所以说解决的是大部分问题,是因为在手写文本识别任务中,因为存在书写不规范的问题,所以英文同样需要更高级的分词技术。更重要的,在中文、日文等词之间不存在明确分界符的语言中,准确分词是几乎所有其他自然语言处理工作的前提。接下来以中文为例介绍如何实现分词任务。

一个简单的处理分词问题的方法是建立中文词典,需要对句子进行分词时,要从词典中查询,遇到词典中存在的词汇就标识出来。这样做存在一个小问题,就是词典需要不断更新;还有一个大的问题,就是它不能很好地适应中文的复杂性。例如,“研究生命起源”,正确的分词方式是“研究/生命/起源”。但是在词典中还可以查询到“研究生”“命”,如果按照“研究生/命/起源”分词是不正确的,但是机器并不能确定使用哪种方式分词,所以如果只采用查询词典的方式分词效果不是很好。

有一些办法可以改进这些缺点。例如,很多学者在20世纪90年代以前,尝试通过建立大量的文法规则来解决问题。但是语言的复杂性决定了基于规则的方法依然不是十分成功。随着基于统计的方法开始大量应用于自然语言处理,分词问题慢慢取得了越来越好的效果。现在已经有多个效果较好的开源分词工具,如结巴分词(jieba)、盘古分词、LTP、THULAC等。下面使用在网络上抓取的新闻文本作为案例,介绍如何利用结巴分词实现文本的分词工作。相关的文本数据可以在平台下载。