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

作者:肖波

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

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

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

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

多元分词的缺点:

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

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

首先先谈谈冗余度,对于一句话,可能会有很多种分词组合,我们通过冗余度的设置可以控制这个组合的数量。 KTDictSeg 1.4 版本支持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)/

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

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

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

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

下面来看看搜索 “长春市长春药店” 这个句子采用KTDictSeg 1.4 版本 + 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 版本还有最后的扫尾工作,不日即将发布。

KTDictSeg 1.4 版本功能介绍 - 多元分词相关推荐

  1. vSAN 6.7培训_第1章-Virtual SAN各版本功能介绍

    vSAN 6.7培训_第1章-Virtual SAN各版本功能介绍 2019年10月8日 by 何 坤源 http://www.bdnetlab.com/?p=996 1,865 Views Virt ...

  2. CleanMyMac X4.11经典免费版本功能介绍

    ​ CleanMyMac X我想知道我是否应该安装免费版,但免费版和付费版之间有什么区别?"许多人想知道.CleanMyMac X有许多功能,包括清除恶意软件和记录浏览历史和在线活动以保护隐 ...

  3. Ubuntu各大分支版本功能介绍及下载地址

    Ubuntu 目标:(摘自官网)快速,免费,易用. 特色:带有上千种免费的开源应用软件,支持各种电脑文件设备.打印机.数码相机.音乐播放器和智能手机.每年的4月和10月都会发布一个新版本. 官方网站: ...

  4. PDF软件最新版本功能介绍

    很多人在日常生活中,在学习中,在工作中,从阅读小说到研究文件都会或多或少的使用到,对于"驱动人生"来说也一样,虽然说我们是一个专门提供电脑驱动下载和安装自动化的软件的公司,但是有些 ...

  5. vivo的android版本功能介绍,vivo帐号中心软件下载-vivo帐号appv6.0.0.1 官方安卓版-腾牛安卓网...

    vivo帐号app是一款适用于vivo手机的系统软件,无桌面图标,无法直接打开,用户安装后可以开启vivo帐号保护功能,在非信任设备登录帐号需要验证身份信息,保证您的帐号安全,有需要的朋友欢迎下载体验 ...

  6. XMind 6各版本功能介绍

    2019独角兽企业重金招聘Python工程师标准>>> XMind是一款备受欢迎的思维导图软件,同时也是一款开源思维导图软件,以大量强大的免费功能为支持,向用户提供极致的使用体验.为 ...

  7. 华为p7android5.1系统,P7 Android 5.1+EMUI3.1 版本功能介绍(一)

    本帖最后由 DP手机产品经理 于 2015-7-24 09:39 编辑 P7 EMUI3.1内测的第一个版本已经发布,但是工程师们希望能继续对系统功能做一些优化和改善,惹得小伙伴们很心急,今天就先跟大 ...

  8. 超级完整的Maya2019版本功能介绍

    Maya2019已经发布很久了,朋友们你们都有了解2019版本的新功能吗?今天来说说Maya2019的新功能吧.说好了,这篇文章有点长,看不完不准走啊! Maya 2019带来了哪些新功能呢?包括新的 ...

  9. vivo的android版本功能介绍,vivoX30发布,全新版本OS,新功能应用分享登场

    vivo作为国内老牌手机厂商,在2019年最后的一个月迎来了旗下第三款5G手机--vivo X30.该系列手机搭载了全新A77架构的三星Exynos 980处理器,同时支持NSA和SA两种组网模式:这 ...

最新文章

  1. html点击屏幕向右移动,HTML – 一旦打开,如何使移动页面适合屏幕?
  2. 对比学习系列论文SDCLR(一)-Self-Damaging Contrastive Learning论文的概括
  3. AWS加入.NET Foundation企业赞助商计划
  4. 关于onload的事件权柄以及踩过的坑
  5. Golang面向并发的内存模型
  6. C程序设计语言现代方法09:函数
  7. html rpc文档,HTML5 DRM 正式成为 Web 标准,百度正式开源RPC框架brpc
  8. python一对一视频教学-使用Python的Tornado框架实现一个一对一聊天的程序
  9. 摇号系统怎么做_雨水收集系统怎么做
  10. snmp有android代理端吗,GitHub - wosika/SNMP4Android: 简易使用于安卓的SNMP工具类,基于snmp4j...
  11. 人工智能 - NBA球星产生式系统
  12. vb科学计算机ppt,《计算机级VB教程》PPT课件.ppt
  13. NanoMsg框架|NanoMsg的简介
  14. 校外国外博士论文去哪里查找下载
  15. Win11打不开本地组策略编辑器怎么办
  16. Deployer 使用问题
  17. 最新外卖霸王餐系统程序源码|美团/饿了么霸王餐系统(含数据库)(可对接公众号)
  18. 腾讯游戏客户端日常实习面经
  19. Redis监控汇总一
  20. 关于 国产麒麟系统双击启动脚本方式后无法启动应用程序 的解决方法

热门文章

  1. 2008.11.1 《李小龙传奇》观后感
  2. 生信笔记 | 文本挖掘的一般流程
  3. 微信小程序 使用 TGit管理代码
  4. Java毕设_基于Android的学习无忧APP的设计与实现
  5. 内嵌多协议工业设备数据采集网关
  6. 【FFmpeg】rtmp推流
  7. java利用poi添加多张图片到word
  8. vue postman使用方法
  9. 自己动手在阿里云服务器上搭建一套zabbix+grafana监控系统
  10. 实现DHCP服务和TFTP服务