分词的那些事(一)
分词的那些事
By Super.Jiju
好久没更新blog了,前天为了让群里面的技术气氛活跃点,以及也整理整理自己的一些知识以便与大家交流,所以我把分词的前前后后介绍一下,希望大家多多指教。
分词是中文自然语言处理里面最基础的工作,因此大家说到中文信息处理的时候,都会说到中文分词。事实上,切分的思想是没有语言边界的,下面从我的理解分别说一说分词的前因后果。整个介绍分为分词的需求背景,分词的应用背景,分词的常用方法,分词的相关不足及其改进策略,概述等等。欢迎加入 Web Mining & Search QQ 群 9826518 。
分词的需求背景
分词不同的应用需求对应这不同的需求背景。比如说,分词最基本的功能是帮助计算机来理解句子。计算机本身擅长做的工作就是匹配,却无法知道如何根据语义去匹配。这个时候就需要分词来帮助他。对于一个句子来说,如果按照组成成分进行切分,那么计算机在读取这些组成成分的时候,一定程度上相当于“理解”了这个句子。举个例子来说,假如有个句子“分词的那些事”,计算机在读入这个句子如果想“理解他”,比如让他“理解”这个是什么意思,是说“人文”,“地理”,“评论”,还是“科技”。那么通过向量空间模型(Vector Space Model) , 计算机为该句话建立了一个向量,在其中6 个字对应的位置上都有每个字对应的tfidf 。最后计算向量之间的相似性,来判断这句话到底说的是啥类别的事。这样做的效果可能不容乐观,因为是仅仅字面意思的匹配。如果通过分词得到“分词| 的| 那些事”,然后再一次建立VSM ,结果就不一样了。所以,通过分词,让计算机假装理解了我们的语言。
在这个层次上,分词是无边界的。中英文都需要通过这个手段对句子进行切分理解。这方面有个单独的topic ,chunking ,就是把句子分成几块。在中文中,这个也是以切分为基础的,在英文里面因为不用切分,因此可以直接通过词性句法进行处理。因此很多research 中带有phrase based 的方法,大多都是利用了这一点。
再说另外一个需求,在中文搜索引擎中,需要分词。当然前面说的分词的可以有助机器理解的功能在搜索引擎中是重要的,但是除此之外,分词另外一个功能是降低中文搜索引擎的性能消耗。我们常用的汉字有5000 多个,常用词组是几十万个。在倒排索引中,如果用每个字做索引的话,那么会造成每个字对应的拉链非常长。所以我们一般会用词组来代替字建立索引,这里面的词组也就是英文里面的words( 说个极端的比喻,为啥英文里面不用128 个ascii 字母做索引,一个道理) 。在这么多家搜索引擎公司中,应该以G 家的切分粒度最小,原因是G 家的计算能力很强,这种小粒度下最大的好处就是保证召回。当然对后期的rank 也有一定的影响。
大多数情况下,分词简单的说是对一个输入片段进行有效地切分,让每个切分片段都能表达一个意思,并且尽量表达一个意思。
下一节:分词的应用背景。