自然语言处理与Java语言实现
上QQ阅读APP看书,第一时间看更新

开发篇

第2章 中文分词原理与实现

一段文字首先需要分词,然后才能理解。比如,人们在街上看到一块饭店的招牌,写着“阿文炒饭店”。这时,我们都会选择切分成“阿文/炒饭/店”,而不会去考虑是否某位员工“阿文”在“炒/饭店”的鱿鱼。切分出来的名词短语比一个陈述句更适合作为一个招牌。

和英文不同,中文词与词之间没有空格。因此,实现专业的中文搜索引擎,比英文搜索引擎多了一项分词的任务。英语、法语和德语等西方语言通常采用空格或标点符号将词隔开,具有天然的分隔符,所以词的获取简单。但是中文、日语和韩语等东方语言,虽然句子之间有分隔符,但词与词之间没有分隔符,所以需要靠程序切分出词。如果没有将中文分词,搜索“华大”,则会匹配上“清华大学”。当使用搜索引擎时,虽然不能直接看到分词,但是可以感觉到它的存在。

要解决中文分词准确度的问题,仅仅提供一个免费版本的分词程序供下载使用显然是不够的,像分词这样的自然语言处理领域的问题,很难全部彻底解决。例如,通用版本的分词也许需要做很多修改后才能用到手机上,所以需要让人能看懂其中的代码与实现原理,并参与到改进的过程中,这样才能更好地应用。