中文分词方法简介(毕业论文节选)

  中文与西方文字不同,西方文字如英文的单词间有空格作为分隔,计算机很容易把一个个词分开。而中文句子里的之间没有分隔,要把中文句子拆分成词就需要使用中文分词技术。由于全文索引采用的是倒排索引技术,所以分词的效果直接决定了搜索的效果。
  目前的中文分词技术主要有:n元切分、最长匹配、最大压缩、统计语言模型等方法。n元切分,即机械切分。就是把中文句子每n个字分成一个“词”。比如,“我是大学生”用一元切分的结果就是“我”、“是”、“大”、“学”、“生”。二元分词如果采用串分割,结果就是“我是”、“大学”、“生”,采用交叉分割结果就是“我是”、“是大”、“大学”、“学生”。通常,都采用交叉切分,以免在搜索“学生”时无法搜索到结果。同时,交叉分割可以保证查询和索引切分的一致性。但交叉分割的索引大小是串分割的n倍。机械切分并不是真正意义上的中文分词,因为它并没有把句子根据词法和语义分成有意义的词。这种方法实现简单,切分效率高,但会产生很多无用词。Lucene自带的StandardAnalyzer对中文的切分就是一元切分。Lucene Sandbox中的CJKAnalyzer采用的是交叉二元分词。
  最长匹配法是使用词典来切分的。比如,“我是大学生”根据词典通常会被拆分为“我”、“是”、“大学生”。最长匹配法又分正向最长匹配和反向最长匹配,即从句子的正方向或方向匹配单词。通常反向最长匹配的效果要好于正向最长匹配。也可以把两者结合起来,即双向最长匹配。最长匹配法实现也较简单,分词速度较快,但准确率比较低。采用词典的分词方法的效果很大程度上取决于词典的质量。同时,在遇到词典中没有的词往往就束手无策了。而且,基于词典的分词对于新词,还有人名、地名等往往不能很好地识别。Lucene Sandbox中的ChineseAnalyzer就是采用的反向最长匹配。
  统计语言模型方法简单的说,就是通过从文本库中统计出字与字之间结合和分开的概率来分词的。比如“我是大学生”,“是”和“大”结合的概率要小于“大”和“学”结合的概率。这种方法不依赖于词库和语法定义,可以适应新词以及人名地名等。但实现复杂,分词速度慢。在上下文信息较少的情况下效果不够好。

6 thoughts on “中文分词方法简介(毕业论文节选)

  1. aladinhon March 4, 2008 / 4:16 pm

    你好,看了你写的文章,思路很清晰。能不能把全文和源代码发给我一份啊,万分感谢!!

  2. 三马 June 26, 2007 / 10:10 am

    期待全文:)

  3. best_upon_best June 23, 2007 / 3:02 pm

    啊,深奥呀,看不懂,是不是四年以后也能达到这个境界了呢?赫赫

  4. Mike June 22, 2007 / 1:10 pm

    嗯…专业啊 是用于搜索的吧?!
    牛人啊!
    百度/google分别的分词在搜索引擎上和在硬盘搜索上,居然都不同!!!

  5. LongCT June 22, 2007 / 9:26 am

    呃…开始期待全文了.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s