smartcn优化方案

smartcn,基于HMM模型的一套智能分词器,是ictclas的java简化版,原理网上已经能找到,也可以看我前面写的

http://blog.csdn.net/lgnlgn/archive/2010/06/13/5669855.aspx

 

smartcn 通过计算能提高分词精度(比如 和服 的问题),这也会导致一个语义连贯的短语可能在不同的上下文产生不同的切分结果,因此用来做搜索引擎的分词器会存在切分不一致的问题,会直接降低搜索的查全率。因此我们当然希望搜索的分词既具有较高的准确性,但语义完整的词语不会在不同上下文(搜索框输入查询的往往很短)下产生不同的结果。

 

结合smartcn内部原理,我想了几个针对搜索查询的优化方案:

1. 首先smartcn计算构词的跳转时,标点也参与计算,另外句首句尾分别增加了首尾特殊字符。其实标点和首尾特殊字符可以不需要,统一成一个标点,比如空格,设定一个较大的权值,这样可以让一些上下文不一致的机会少一些.

 

2. 正文不被切开比如“橄榄油”,查询被切开的“橄榄”“油”:把所有smartcn内部的词,都单独切一下,如果能切开的,最后如果正文里有的,把切开的可能也补上,比如“民族英雄”在正文是个词,把“民族”“影响补上”;另外那些自己想多切的词也可以记录下来,比如“集团公司”,这些可以通过最小正向匹配或者其他分词器来切。同时也可以加入同义词。

 

3. 正文切开了,查询没切开:对分词结果遍历检查连续的词是不是也能构成一个词,如果是,多造一个出来。

 

4. 优化词典,跳转频率。smartcn内置的词库词量不大,对于搜索切分来说,不必加入短语,但需要加入专有名词比如人名地名,网上能找实现了的增加词库代码;smartcn消歧依靠的是跳转频率库,然而我觉得它的单词库和跳转库似乎不是来源于一个语料。有些词在跳转库中频率比词库的频率还高....当然收集词库也是最难

 

 

 

最后来看看结果

“看李东垣还是看中华人民共和国成立的时候” 加入个新词“李东垣”可以原始分词结果:

看/李东垣/还/是/看/中华人民共和国/成立/的/时候/

 

加入一些多分信息和同义词变成这样:

看/东垣/李东垣/还是/还/是/看/中华/中国/中华人民共和国/人民/共和国/诞生/成立/的/时候/

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值