中文分词的核心问题

中文分词是互联网公司必修的课程之一。分词有诸多好处,对于搜索引擎来说,最大的好处就是把索引之后的数据量降下来了。对于互联网公司的词典来说,规模都很大,一般会在几百万的级别上。

今天和一个朋友聊天,说起互联网中用到的分词方法。朋友说,应该最主要注重两点:速度和线程安全。速度不言而喻,速度慢就意味着成本的增加。多线程是分词必修具备的功能。不然,搜索引擎无法使用它。分词的算法比较成熟,路径寻优基本上是优先选择的方法。这种方法相对于最大前向匹配,准确率有提高,而效率却比较低。实际上,分词算法固然比较大的影响分词速度,但是,使用vertibi算法一样可以达到10M/S的分词速度。影响速度的最关键因素在查字典,查字典的函数使用的频率是最高的,那么该函数以及对应的数据结构是非常关键的,使用现存的stl固然比较简便,但是会极大的影响效率。高效的分词可以采用如下方案:双数组trie为字典的存储结构,vertibi算法路径寻优,核心函数的效率必须保证,不能使用现有的数据结构,这种方法应该的速度可以在5M/S以上。线程安全就是在实现分词算法过程中,注意一下就可以了。

分词词典的更新也是比较关键的问题。当然,这个部分是分词的上游,数据挖掘的工作。词性标注,人名,地名,机构名识别都是分词的需要解决的问题。其中,分词的词性标注是最关键的问题。如果公司比较强的话,可以将词按照一定类别进行组织。当然,类别体系需要根据自己的需求和面向的领域来构造。这样,可以根据词性标注和词的属性信息对搜索引擎的query进行消歧。

以上仅为一些浅显的看法,肯定会有不足之后。

你可能感兴趣的:(搜索引擎,数据结构,算法,互联网,数据挖掘,多线程)