作者:eaglet

盘古分词开发了多元分词算法,其与lucene.net 配合构建全文搜索,经测试准确度接近google和baidu的水平。现将一些实现方法和测试结果公布出来,供关心分词和搜索技术的朋友们参考。

中文分词按照分词粒度来分,分成 一元分词,二元分词,多元分词和精确分词等类型。一元分词就是最简单的分词,将所有的中文字符按照单字形式输出。二元分词按双字形式输出。多元分词则是将 一句话中可能的单词组合按照一定规则输出,允许输出的词有重叠。精确分词则是将一句话中最准确的单词组合输出,不允许输出的词有重叠。当然这里用精确这个 词来修饰只是为了与其他几种分词方法区分,不可能有完全精确的分词方法,因为我们伟大祖国的语言实在是博大精深,分词本身缺乏标准(能否制定标准也是一个 问号)一些中文句子就是由人来分解也可能分出不同的结果,所以到目前为止还没有100%精确的分词方法。

由于一元和二元分词较为简单,其分词的效果也不尽理想,这里不多讨论。

现在让我们看看精确分词。下面这句话:“许仙喝了口黄酒”,精确分词由于不能包含重叠的词,一般可以分成 许仙/喝了/口/黄酒,用这种分词结果构建索引,输入黄酒,可以搜到,但输入酒就无法搜到。而作为搜索用户,往往需要既能搜到黄酒也能搜到 酒,google, 百度等著名搜索引擎就可以达到这种效果。我们自己开发的搜索引擎如果无法实现这种功能,用户体验就不会很好。为了解决这个问题,我们必须对中文句子进行多 元分解,即分解出合适的组合,比如上面的句子,如果分解为 许/仙/许仙/喝/了/口/黄/酒/黄酒/喝了口/ 那么无论我们输入黄酒还是酒,我们都可以搜索到这条记录。

多元分词的缺点:

多元分词和搜索引擎结合可以得到较多的匹配结果,但同时也增加了索引文件的大小。另外由于将一些单词进行了拆分,搜索结果的排序会受到影响。比如搜索黄 酒,多元分词后搜索的关键字组合为 黄+酒+黄酒,很可能会将只包含黄或者酒的记录排在包含黄酒的记录前面,这不是我们希望的结果。对于搜索引擎来说这个排序是很重要的,google,百度 就靠这个吃饭的,如果这样瞎排,估计用户早就把他们抛弃了。事实上,他们做的很好。

为了解决这个问题,盘古分词提出了两个概念,一个是多元分词的冗余度(Redundancy),一个是多元分词结果的权重级别(Rank)。

首先先谈谈冗余度,对于一句话,可能会有很多种分词组合,我们通过冗余度的设置可以控制这个组合的数量。 盘古分词支持3级冗余。当冗余度设置为0时,只分解最佳的分词组合,设置为1时次之,2时再次之。

比如 “中华人民共和国” ,冗余度取0,1,2 时 分词结果分别为

中华人民共和国(0,5)/

中华(0,3)/人民共和国(2,3)/中华人民(0,3)/共和国(4,3)/中华人民共和国(0,5)/

中(0,2)/华(1,2)/人民共和国(2,2)/中华(0,2)/人民(2,2)/共和国(4,2)/中华人民(0,2)/共和(4,2)/国(6,2)/中华人民共和国(0,5)/

其中挎号中第一个数字表示单词在整个文章中的位置,第二个数字表示权重级别。下同。

盘古分词不同分词方法的索引大小和分词时间比较

我们再谈谈权重。盘古分词将多元分词出来的单词根据其词长,词的间隔以及未登录词的取舍等条件给定了不同的权重。最高权重为5,最低为0。由于 Lucene.net 不支持根据权重建立索引(毕竟其不是为中文设计的),我们只能在搜索时对分解出来的关键字指定权重来影响搜索结果。

比如黄酒这个词,搜索关键词分解为 黄酒/黄/酒 如果我们对黄酒指定较高的权重,对黄和酒指定较低的权重,那么包含黄酒的记录将会优先于只包含黄或者酒的记录被搜索到,这样就基本解决了搜索排序的问题。

下面来看看搜索 “长春市长春药店” 这个句子采用盘古分词 + Lucene.net 2.0 的搜索结果和采用 google 和百度的搜索结果的比较。冗余度取1,搜索范围限定在 博客园 网站内。

Google 的搜索结果 59 条符合条件的记录 搜索关键字:长春市长春药店  site:cnblogs.com

  1. 常用分词算法的比较与设想- Alic的文件夹- 博客园

    - [ Translate this page ]

    长春市/长春/药店(分成3个词,都匹配到,语义正确) ... 我们对“长春市长春药店”进行两种方法的分词,但是因为逆向最大匹配法得到的“春药店”的词频相比于其他词语的 ...
        www.cnblogs.com/alic/archive/2008/06/06/1215001.html - 26k - Cached - Similar pages
  2. KTDictSeg 一个C#.net做的简单快速准确的开源中文分词组件- eaglet ...

    - [ Translate this page ]

    长春市长春药店”可以依次拆分为长春、长春市、市长、长春、春药、春药店、药店这几个词, ...长春市长春药店”按正向最大匹配扫描顺序可以出现如下匹配的单词组合: ...
        www.cnblogs.com/eaglet/archive/2007/05/24/758833.html - 144k - Cached - Similar pages
  3. KTDictSeg 一个C#.net做的简单快速准确的开源中文分词组件- eaglet ...

    - [ Translate this page ]

    以“长春市长春节致词”和“长春市长春药店”这个两个句子为例:. “长春市长春节致词”可以依次拆 ...长春市长春药店”按正向最大匹配扫描顺序可以出现如下匹配的单词组合: ...
        www.cnblogs.com/eaglet/archive/2007/06/02/758833.html - 145k - Cached - Similar pages
  4. 汉语转拼音(带音调和多音字识别) - 草屋主人的blog - 博客园

    - [ Translate this page ]

    由结果看,是分成了“长春市”“长”了如果是“长春市长大”和“长春市长治久安”,分的就 ... 另外,一般我们都会说“长春市市长”,“北京市市长”,少一个市虽然也能理解,但总 ...
        www.cnblogs.com/sunli/archive/2007/11/21/967294.html - 78k - Cached - Similar pages
  5. 最新评论- 草屋主人的blog - 博客园

    - [ Translate this page ]

    长春市长”试了下,确实不对这个跟分词有关吧? 由结果看,是分成了“长春市”“长”了如果是“长春市长大”和“长春市长治久安”,分的就对的看来分词还要做上下文分析^_^ ...
        www.cnblogs.com/sunli/RecentComments.html - 44k - Cached - Similar pages
  6. 中文分词组件KTDictSeg 1.2 版本发布及算法简介- eaglet  - 博客园

    - [ Translate this page ]

    长春市长春节致词 长春市长春药店 IBM的技术和服务都不错 ... 市长 157 2 春节 159 2 致词 161 2 -1 1 9 1 长春市 155 3 长春 158 2 药店 170 2 ...
        www.cnblogs.com/eaglet/archive/2007/06/02/768856.html - 118k - Cached - Similar pages
  7. 搜索引擎中中文词组分词的实现- 旋风- 博客园

    - [ Translate this page ]

    ps:"杭州市长春药店"你分完词后会是什么呢?:). #3楼 [楼主] 回复 引用 查看. 2007-04 -16 16:12 by xuanfeng. 第一步:把,”杭州市长“ ”杭州市“ “春药店” 添加到词库中 ...
        www.cnblogs.com/xuanfeng/archive/2007/04/15/714312.html - 83k - Cached - Similar pages
  8. 博客园- Clark Zheng发表的评论

    - [ Translate this page ]

    ps:"杭州市长春药店"你分完词后会是什么呢?:). Clark Zheng 发表于2007-4-16 11:42. re: C#基础概念二十五问. @森林扩展或修改继承的方法、属性、索引器或事件的抽象 ...
        www.cnblogs.com/CommentsByAuthor.aspx?author=Clark+Zheng&page=31 - 27k - Cached - Similar pages
  9. 博客园- xuanfeng发表的评论

    - [ Translate this page ]

    不好意思,是“长春药店”而不是“春药店”! xuanfeng 发表于2007-4-16 18:39. re: 搜索引擎中中文词组分词的实现. 第一步:把,”杭州市长“ ”杭州市“ “春药店” 添加到词库 ...
        www.cnblogs.com/CommentsByAuthor.aspx?author=xuanfeng&page=2 - 27k - Cached - Similar pages
  10. 我的评论- 旋风- 博客园

    - [ Translate this page ]

    不好意思,是“长春药店”而不是“春药店”! re: 搜索引擎中中文词组分词的实现 xuanfeng 2007-04-16 16:12. 第一步:把,”杭州市长“ ”杭州市“ “春药店” 添加到词库中 ...
        www.cnblogs.com/xuanfeng/MyComments.html - 49k - Cached - Similar pages

   

百度 的搜索结果 4 条符合条件的记录  搜索关键字:site:(cnblogs.com) 长春市长春药店

常用分词算法的比较与设想 - Alic的文件夹 - 博客园
长春市长春节致辞 2) 长春市长春药店 我们假使词库中包含如下词语“长春”,“长春市”,“市长”,“春节”,“致辞...我们对“长春市长春药店”进行两种方法的分词,但是因为逆向最大匹配法得到的“春药店”的词频相比于其他词语的词频要...
www.cnblogs.com/alic/articles/1215001.html 33K 2008-9-4   - 百度快照

KTDictSeg 一个C#.net做的简单快速准确的开源中文分词组件 - eagl..
        以“长春市长春节致词”和“长春市长春药店”这个两个句子为例: “长春市长春节致词”可以依次拆分为 长春、长春市...“长春市长春药店”可以依次拆分为长春、长春市、市长、长春、春药、春药店、药店 这几个词,按照正向最大匹配算法,...
        www.cnblogs.com/eaglet/archive/2007/05/24 ... 125K 2008-9-15   - 百度快照
       
中文分词组件 KTDictSeg 1.2 版本发布及算法简介 - eaglet - 博客..
        长春市长春节致词 长春市长春药店 IBM的技术和服务都不错 张三在一月份工作会议上说的确实在理 于北京时间5月10日举行运动会 我的和服务必在明天做好 KTDictSeg 0 9 9 1 简介10 2 : 12 1 13 1 KTDictSeg 14 9 23 1 是24 1...
        www.cnblogs.com/eaglet/articles/768856.html 119K 2008-9-2   - 百度快照
       

博客园 - 剑飘红发表的评论
长春市长春节致词 长春市长春药店 IBM的技术和服务都不错 张三在一月份工作会议上说的确实在理 于北京时间5月10日举行运动会 我的和服务必在明天做好 KTDictSeg 0 9 9 1 简介10 2 : 12 1 13 1 KTDictSeg 14 9 23 1 是24 1...
www.cnblogs.com/CommentsByAuthor.aspx?aut ... 35K 2008-9-3   - 百度快照

KTDictSeg 1.4 版本 + Lucene.net 2.0 的搜索结果 376 条符合条件的记录

常用分词算法的比较与设想- Alic的文件夹- 博客园
        ,语义错误) 长春市/长春/药店(分成3个词,都匹配到,语义正确) 用逆向最大匹配法得到的结果是: 长春/市长/春节/致辞(分成4个词,都匹配到,语义正确) 长春/市长/春药店(分成3个词,都
        http://www.cnblogs.com/alic/archive/2008/06/06/1215001.html
       
KTDictSeg 一个C#.net做的简单快速准确的开源中文分词组件- eaglet ...
        词结果是长春市/长/春节/致词,按照反向最大匹配算法,分词结果是长春/市长/春节/致词。 “长春市长春药店”可以依次拆分为长春、长春市、市长、长春、春药、春药店、药店 这几个
        http://www.cnblogs.com/eaglet/archive/2007/05/24/758833.html
       
我的评论- 旋风- 博客园
        sp; 第一步:把,”杭州市长“ ”杭州市“ “春药店” 添加到词库中 后效果为:杭州市长/杭州市/杭州/杭/州/市长/市/长/春药店/春药/春/药店/药/店  采用的是模糊分词分保证每个词语
        http://www.cnblogs.com/xuanfeng/MyComments.html
       
博客园- Clark Zheng发表的评论
        分词的实现     连着三个if+goto,为什么不用switch呢?ps:"杭州市长春药店"你分完词后会是什么呢?:)     Clark Zheng 发表于 2007-4
        http://www.cnblogs.com/CommentsByAuthor.aspx?author=Clark+Zheng&page=31
       
搜索引擎中中文词组分词的实现- 旋风- 博客园
        第一步:把,”杭州市长“ ”杭州市“ “春药店” 添加到词库中 后效果为:杭州市长/杭州市/杭州/杭/州/市长/市/长/春药店/春药/春/药店/药/店  采用的是模糊分词分保证每个词语
        http://www.cnblogs.com/xuanfeng/archive/2007/04/15/714312.html
       
中文分词组件KTDictSeg 1.2 版本发布及算法简介- eaglet  - 博客园
        9 1 长春 155 2 市长 157 2 春节 159 2 致词 161 2  -1 1  9 1 长春市 155 3 长春 158 2 药店 170
        http://www.cnblogs.com/eaglet/archive/2007/06/02/768856.html
       
最新评论- 草屋主人的blog - 博客园
        菌哥 长春市市长 re: 汉语转拼音(带音调和多音字识别) jason_lb 2007-11-21 16:26   “长春市长”试了
        http://www.cnblogs.com/sunli/RecentComments.html
       
汉语转拼音(带音调和多音字识别) - 草屋主人的blog - 博客园
        “长春市长”试了下,确实不对这个跟分词有关吧?由结果看,是分成了“长春市”“长”了如果是“长春市长大”和“长春市长治久安”,分的就对的看来分词还要做上下文分
        http://www.cnblogs.com/sunli/archive/2007/11/21/967294.html
       
前门新大街8月7日正式开街亮相- 岁月无声- 博客园
        店都还空着没开张,就一些老字号开张了,包括”大北照相馆、庆林春茶庄、亿兆百货、都一处烧麦馆、一条龙羊肉馆、长春堂药店、中国书店、南区邮局、月盛斋酱牛羊肉馆、张一元茶庄分社、尚珍阁工艺品店
        http://www.cnblogs.com/joe235/archive/2008/08/29/1263334.html
       
博客园- 560889223发表的评论
        re: 我完成的C#关于在lucene下的中文切词     长春市|长春节 长春市长|春节     560889223 发表于 2007-9-26 19:57     
        http://www.cnblogs.com/CommentsByAuthor.aspx?author=560889223&page=2

从搜索结果来看KTDictSeg 1.4 + Lucene.net 2.0 的搜索效果已经非常接近google的搜索效果,前10个记录的选择两者基本上差不多,排序上略有区别。Baidu搜索出来的数据很少,可能其更追求搜索 的精度吧,毕竟也是国内搜索界的老大,这里不想做过多评论,好不好按百度自己的话说还是拿事实说话吧。

关于KTDictSeg 的多元分词技术,本文就介绍到这里。 KTDictSeg 1.4 版本还有最后的扫尾工作,不日即将发布。

盘古分词 - 多元分词相关推荐

  1. 盘古分词 - 多元分词算法

    中文分词按照分词粒度来分,分成 一元分词,二元分词,多元分词和精确分词等类型.一元分词就是最简单的分词,将所有的中文字符按照单字形式输出.二元分词按双字形式输出.多元分词则是将一句话中可能的单词组合按 ...

  2. KTDictSeg 1.4 版本功能介绍 - 多元分词

    KTDictSeg 1.4 版本功能介绍 - 多元分词 作者:肖波 KTDictSeg 1.4 开发了多元分词算法,其与lucene.net 配合构建全文搜索,经测试准确度接近google和baidu ...

  3. 中文分词器分词效果的评测方法

    [原创]中文分词器分词效果的评测方法 2013年8月27日 由 learnhard留言 » 转载请注明出处:http://www.codelast.com/ 现在有很多开源的中文分词器库,如果你的项目 ...

  4. 自然语言处理系列十七》中文分词》分词工具实战》Python的Jieba分词

    注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书<分布式机器学习实战>(人工智能科学与技术丛书)[陈敬雷编著][清华大学出版社] 文章目录 自然语言处理系列十七 分词工 ...

  5. lucene6.6+拼音分词+ik分词实现

    原来项目使用的是solr进行建立索引与查询,最近想改为lucene.对于最新版的lucene网上的资料没有solr多,并且solr很多功能直接配置就可以使用,但是lucene都要通过api进行封装使用 ...

  6. NPL系列之分词和分词框架(二)

    如果要从事NPL的相关技术工作,那么最基础的工作就是分词工作,这个也是所有技术的第一步,当然 这里讨论的中文的分词,因为英文的分词技术是比较单一,基本上按照空格进行标准分词就可以了,但是中文就比较复杂 ...

  7. dig的现在分词_dig的过去式,过去分词,现在分词

    dig的过去式,过去分词,现在分词 dig 英 [dɪg] 美 [dɪɡ] 第三人称单数:digs 现在分词:digging 过去式:dug 过去分词:dug 扩展资料: 过去式与过去分词.现在分词的 ...

  8. 公司开源的java分词,Java开源项目cws_evaluation:中文分词器分词效果评估

    通过对前文<word分词器.ansj分词器.mmseg4j分词器.ik-analyzer分词器分词效果评估>中写的评估程序进行重构改进,形成了一个新的Java开源项目cws_evaluat ...

  9. word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器分词效果评估(转)

    转自:http://yangshangchuan.iteye.com/blog/2056537(有代码可下载) word分词器.ansj分词器.mmseg4j分词器.ik-analyzer分词器分词效 ...

最新文章

  1. 【从零学习OpenCV 4】4种读取Mat类元素的的方法
  2. 膨胀卷积--Multi-scale context aggregation by dilated convolutions
  3. python链接mysql系统结构设计_MySQLpython交互
  4. Windows 8消费者预览版发布啦(附离线分享)
  5. OpenCV3.4.5带GPU编译error: #error This file requires compiler and library support for the ISO C++ 2011
  6. AliOS-Things Visual studio code helloworld 入门
  7. java对mysql的简单操作——增删改查的总结
  8. Something about WMI
  9. POJ1521 LA2088 HDU1053 ZOJ1117 Entropy【哈夫曼编码】
  10. web性能优化--缓存
  11. 自动登录Windows系统
  12. mysql密码怎么解密_MySQL密码加密与解密详解
  13. 数据分析 超市条码_超市小程序做得比较好的功能点是什么?
  14. 使用Gpu恢复7z密码
  15. hdu 6638 Snowy Smile
  16. web开发中移动端适配
  17. NAS信令学习笔记 ——GUTI reallocation过程
  18. Installations
  19. 中华名将索引 - 第一批:孙武
  20. setTimeout expects a function as first argument but got undefined

热门文章

  1. 复制出来 python -m pip install --upgrade pip 升级还是出现一堆红色英文,报错
  2. typora笔记去除英文红色下划线
  3. 易经中人生的六大阶段 :潜、现、惕、跃、飞、亢 你在第几个阶段?
  4. G - 小彬的周赛(easy)
  5. 前端开发人员如何制作微信小程序模板
  6. 移相全桥DCDC通过Simulink扫频得到其传递函数方法(非m脚本)
  7. [附源码]JAVA+ssm计算机毕业设计高考志愿智能填报系统(程序+Lw)
  8. FreeSwitch mod_dptools: playback
  9. python分割函数_Python应用——自定义函数:分割PDF文件函数
  10. 图像常用的插值算法:最近邻插值、双线性插值和双三次插值算法