搜索的时候,让分词器自动分词和solr 空格分词的区别

博客分类:
对几种中文分析器,从分词准确性和效率两方面进行比较。分析器依次为:StandardAnalyzer、ChineseAnalyzer、CJKAnalyzer、IK_CAnalyzer、MIK_CAnalyzer、MMAnalyzer(JE分词)、PaodingAnalyzer。单纯的中文分词的实现一般为按字索引或者按词索引。按字索引顾名思义,就是按单个字建立索引。按词索引就是按词喽,根据词库中的词,将文字进行切分。车东的交叉双字分割或者叫二元分词我觉得应该算是按字索引的改进,应该还是属于字索引的范畴吧。分词准确性的评估比较难,很难有统一的标准,不同应用的要求也不同,这个统一以“日晚,举世瞩目的北京第二十九届奥林匹克运动会开幕式在国家体育场隆重举行。”为例说明。分词效率,统一使用《射雕英雄传》的全文文本为例说明。呵呵。对于按词索引的分析器,使用统一的基本词库,词汇量为227,719个。在开发环境下运行,性能不准确,但可比较相对值。
StandardAnalyzer
Lucene自带的标准分析器。
ChineseAnalyzer
Lucene contrib中附带的分析器,与StandardAnalyzer类似。注意是类似啊,还是有区别的。
CJKAnalyzer
Lucene contrib中附带的二元分词
IK_CAnalyzer、MIK_CAnalyzer
。使用版本为2.0.2
MMAnalyzer
现在能找到的最新版本是1.5.3。不过在原始网站已经找不到下载了,而且据说声明为不提供维护和支持。因为谈论的人比较多,所以列出来。但在使用中感觉不太稳定。
PaodingAnalyzer
庖丁解牛。。使用版本为2.0.4beta。
分词准确性:
StandardAnalyzer
2008/年/8/月/8/日/晚/举/世/瞩/目/的/北/京/第/二/十/九/届/奥/林/匹/克/运/动/会/开/幕/式/在/国/家/体/育/场/隆/重/举/行/
一元分词,没什么好说的。
ChineseAnalyzer
年/月/日/晚/举/世/瞩/目/的/北/京/第/二/十/九/届/奥/林/匹/克/运/动/会/开/幕/式/在/国/家/体/育/场/隆/重/举/行/
还是有区别吧,这是因为ChineseAnalyzer只对Character.LOWERCASE_LETTER、Character.UPPERCASE_LETTER、和Character.OTHER_LETTER进行了处理,其他类型的都滤掉了。具体可以参见代码。
CJKAnalyzer
2008/年/8/月/8/日晚/举世/世瞩/瞩目/目的/的北/北京/京第/第二/二十/十九/九届/届奥/奥林/林匹/匹克/克运/运动/动会/会开/开幕/幕式/式在/在国/国家/家体/体育/育场/场隆/隆重/重举/举行/
二元分词,作为一元分词的改进,建立的索引小于一元,查询效率较好,能满足一般的查询要求。
PaodingAnalyzer
2008/年/8/月/8/日/晚/举世/瞩目/举世瞩目/目的/北京/二/第二/十/二十/第二十/九/十九/二十九/九届/奥林/奥林匹克/运动/运动会/奥林匹克运动会/开幕/开幕式/国家/体育/体育场/隆重/举行/隆重举行/
细粒度全切分。对于不在词典中的词进行二元分词。
IK_CAnalyzer
2008年/2008/年/8月/8/月/8日/8/晚/举世瞩目/举世/瞩目/目的/北京/第二十九届/第二十九/第二十/第二/二十九/二十/十九/九届/九/奥林匹克运动会/奥林匹克/奥林/运动会/运动/开幕式/开幕/在国/国家/国/体育场/体育/隆重举行/隆重/举行/行/
细粒度全切分。对于不在词典中的词进行二元分词。
MIK_CAnalyzer
2008年/8月/8日/晚/举世瞩目/目的/北京/第二十九届/奥林匹克运动会/开幕式/在国/国家/体育场/隆重举行/
最大匹配分词。和细粒度全切分配合使用。
MMAnalyzer
2008/年/8/月/8/日/晚/举世瞩目/北京/第二十/九届/奥林匹克运动会/开幕式/国家/体育场/隆重举行/
对于不在字典项的内容,进行一元分词。
分词性能(毫秒):
StandardAnalyzer
ChineseAnalyzer
CJKAnalyzer
PaodingAnalyzer
IK_CAnalyzer
MIK_CAnalyzer
MMAnalyzer
需要说明的是,IK_CAnalyzer在性能上对于词典的敏感度较高。总结:对于一般性的应用,采用二元分词法应该就可以满足需求。如果需要分词的话,从分词效果、性能、扩展性、还是可维护性来综合考虑,建议使用庖丁解牛。
mmseg4j 多分词模式与 paoding 分词效果对比
发表于: | 分类: | 标签: , ,
| views(6,709)
: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.
原文出处:
mmseg4j 1.6支持最多分词,应网友的要求:分词效果与 paoding 对比下。观察了 paoding 部分分词结果,现总结下。
paoding 分词效果:
--------------------------
清华 | 大 | 华大 | 大学 |
--------------------------
华南理工大学
华南 | 理工 | 大 | 大学 |
--------------------------
广东工业大学
广东 | 工业 | 大 | 业大 | 大学 |
--------------------------
西伯 | 伯利 | 西伯利亚 |
--------------------------
研究生命起源
研究 | 研究生 | 生命 | 起源 |
--------------------------
为首要考虑
为首 | 首要 | 考虑 |
--------------------------
化装和服装
化装 | 和服 | 服装 |
--------------------------
中国人民银行
中国 | 国人 | 人民 | 银行 |
--------------------------
中华人民共和国
中华 | 华人 | 人民 | 共和 | 共和国 |
--------------------------
羽毛 | 羽毛球 | 球拍 |
--------------------------
人民 | 人民币 |
--------------------------
很好 | 好听 |
--------------------------
下一 | 一个 |
--------------------------
--------------------------
北京首都机场
北京 | 首都 | 机场 |
--------------------------
东西已经拍卖了
东西 | 已经 | 拍卖 | 卖了 |
--------------------------
主人因之生气
主人 | 生气 |
--------------------------
虽然某些动物很凶恶
动物 | 凶恶 |
--------------------------
朋友真背叛了你了
朋友 | 真 | 背叛 |
--------------------------
建设盒蟹社会
建设 | 盒蟹 | 社会 |
--------------------------
建设盒少蟹社会
建设 | 盒少 | 少蟹 | 社会 |
--------------------------
我们家门前的大水沟很难过。
我们 | 家门 | 前 | 门前 | 前的 | 大 | 大水 | 水沟 | 很难 | 难过 |
--------------------------
罐头不如果汁营养丰富。
罐头 | 不如 | 如果 | 果汁 | 营养 | 丰富 |
--------------------------
今天真热,是游泳的好日子。
今天 | 天真 | 热 | 游泳 | 日子 | 好日子 |
--------------------------
妹妹的数学只考十分,真丢脸。
妹妹 | 数学 | 只考 | 十分 | 真 | 丢脸 |
--------------------------
我做事情,都是先从容易的做起。
做事 | 事情 | 都是 | 先从 | 从容 | 容易 | 容易的 | 做起 |
--------------------------
老师说明天每个人参加大队接力时,一定要尽力。
老师 | 师说 | 说明 | 明天 | 每个 | 个人 | 人参 | 参加 | 大 | 加大 | 大队 | 接力 | 时 | 一定 | 定要 | 要尽 | 尽力 |
--------------------------
小明把大便当作每天早上起床第一件要做的事
小明 | 大 | 大便 | 便当 | 当作 | 每天 | 早上 | 上起 | 起床 | 床第 | 第一 | 一件 | 要做 | 做的 | 的事 |
mmseg4j maxword 分词效果:
--------------------------
清华 | 大学 |
--------------------------
华南理工大学
华南 | 理工 | 工大 | 大学 |
--------------------------
广东工业大学
广东 | 工业 | 大学 |
--------------------------
西 | 伯利 | 利亚 |
--------------------------
研究生命起源
研究 | 生命 | 起源 |
--------------------------
为首要考虑
为首 | 要 | 考虑 |
--------------------------
化装和服装
化装 | 和 | 服装 |
--------------------------
中国人民银行
中国 | 国人 | 人民 | 银行 |
--------------------------
中华人民共和国
中华 | 华人 | 人民 | 共和 | 国 |
--------------------------
羽毛 | 球拍 |
--------------------------
人民 | 币 |
--------------------------
很好 | 好听 |
--------------------------
下一 | 一个 |
--------------------------
为 | 什么 |
--------------------------
北京首都机场
北京 | 首都 | 机场 |
--------------------------
东西已经拍卖了
东西 | 已经 | 拍卖 | 了 |
--------------------------
主人因之生气
主人 | 因 | 之 | 生气 |
--------------------------
虽然某些动物很凶恶
虽然 | 某些 | 动物 | 很 | 凶恶 |
--------------------------
朋友真背叛了你了
朋友 | 真 | 背叛 | 了 | 你了 |
--------------------------
建设盒蟹社会
建设 | 盒 | 蟹 | 社会 |
--------------------------
建设盒少蟹社会
建设 | 盒 | 少 | 蟹 | 社会 |
--------------------------
我们家门前的大水沟很难过。
我们 | 家 | 门前 | 的 | 大水 | 水沟 | 很难 | 过 |
--------------------------
罐头不如果汁营养丰富。
罐头 | 不如 | 果汁 | 营养 | 丰富 |
--------------------------
今天真热,是游泳的好日子。
今天 | 天真 | 热 | 是 | 游泳 | 的 | 好 | 日子 |
--------------------------
妹妹的数学只考十分,真丢脸。
妹妹 | 的 | 数学 | 只 | 考 | 十分 | 真 | 丢脸 |
--------------------------
我做事情,都是先从容易的做起。
我做 | 事情 | 都是 | 先 | 从容 | 易 | 的 | 做起 |
--------------------------
老师说明天每个人参加大队接力时,一定要尽力。
老师 | 师说 | 明天 | 每个 | 个人 | 参加 | 大队 | 接力 | 时 | 一定 | 要 | 尽力 |
--------------------------
小明把大便当作每天早上起床第一件要做的事
小明 | 把 | 大便 | 当作 | 每天 | 早上 | 起床 | 第一 | 一件 | 要做 | 的 | 事 |
paoding 几乎把所有的子词都拆出来,有时候还有最长的词,还没搞懂“华南理工大学”会分出“大”;mmseg4j 的 maxword 是在 complex分词后的结果再把子词都拆出来(1.6版按二元,不是词的去掉或保存单字。下一版本可能方式有点不同,“为什么”不应该为“为|什么”,也即是三个字的前后不是词的应该不分,有待研究,:))。
如“化装和服装” mmseg4j 的 complex是可以较好的分出来(“化装 | 和 | 服装”),而 paoding 少了字频的信息,比较难到这事。mmseg4j complex 也有个缺点:“都是先从容易的做起” 不能把“容易”分出来,这是因为 mmseg 算法是用 3 个chunk的原因,我认为把整句的 chunk (还是仅仅3个chunk)来处理的话,分词效果要好),当然要更多的开销,选3个可能是效果与性能平衡吧。
mmseg4j 没有加任何 stopword,这东西留给使用者自己加,因为我不认为加 stopword 是好的方法。如音乐搜索,给加上 the,this……,还能找到歌曲?
当然分词效果还与词库有关,sogou 的词库是统计得出,有些高频的单字组合也成了词,如“我们的”。如果还要提高 mmseg4j 的分词效果,还要在整理下词库。
作者:唐福林 来源:福林雨 博客   收集 
1. 基本介绍:
:Lucene中文分词“庖丁解牛” Paoding Analysis :imdict智能词典所采用的智能中文分词程序 : 用 Chih-Hao Tsai 的
实现的中文分词器 :采用了特有的“正向迭代最细粒度切分算法“,多子处理器分析模式
2. 开发者及开发活跃度:
:, google code 上最后一次代码提交:,svn 版本号 132 :, 进入了 lucene contribute,lucene trunk 中 contrib/analyzers/smartcn/ 最后一次提交:, :,google code 中
(昨天),版本号 57,log为:mmseg4j-1.7 创建分支 :,google code 中 ,版本号 41
3. 用户自定义词库:
:支持不限制个数的用户自定义词库,纯文本格式,一行一词,使用后台线程检测词库的更新,自动编译更新过的词库到二进制版本,并加载 :暂时不支持用户自定义词库。但 原版
支持。支持用户自定义 stop words :自带sogou词库,支持名为 wordsxxx.dic, utf8文本格式的用户自定义词库,一行一词。不支持自动检测。 -Dmmseg.dic.path : 支持api级的用户词库加载,和配置级的词库文件指定,无 BOM 的 UTF-8 编码,/r/n 分割。不支持自动检测。
4. 速度(基于官方介绍,非自己测试)
:在PIII 1G内存个人机器上,1秒 可准确分词 100万 汉字 :483.64 (字节/秒),259517(汉字/秒) : complex 1200kb/s左右, simple 1900kb/s左右 :具有50万字/秒的高速处理能力
5. 算法和代码复杂度
:svn src 目录一共1.3M,6个properties文件,48个java文件,6895 行。使用不用的 Knife 切不同类型的流,不算很复杂。 :词库 6.7M(这个词库是必须的),src 目录 152k,20个java文件,2399行。使用
HHMM隐马尔科夫模型,“利用大量语料库的训练来统计汉语词汇的词频和跳转概率,从而根据这些统计结果对整个汉语句子计算最似然(likelihood)的切分” : svn src 目录一共 132k,23个java文件,2089行。 ,有点复杂。 : svn src 目录一共6.6M(词典文件也在里面),22个java文件,4217行。多子处理器分析,跟paoding类似,歧义分析算法还没有弄明白。
:几乎无。代码里有一些注释,但因为实现比较复杂,读代码还是有一些难度的。 : 几乎无。
也没有详细的文档,HHMM隐马尔科夫模型的数学性太强,不太好理解。 :
是英文的,但原理比较简单。实现也比较清晰。 : 有一个pdf使用手册,里面有使用示例和配置说明。
:引入隐喻,设计比较合理。search 1.0 版本就用的这个。主要优势在于原生支持词库更新检测。主要劣势为作者已经不更新甚至不维护了。 :进入了 lucene trunk,原版 ictclas 在各种评测中都有不错的表现,有坚实的理论基础,不是个人山寨。缺点为暂时不支持用户词库。 : 在complex基础上实现了最多分词(max-word),但是还不成熟,还有很多需要改进的地方。 :
针对Lucene全文检索优化的查询分析器IKQueryParser
个人觉得,可以在 mmseg4j 和 paoding 中选一个。关于这两个分词效果的对比,可以参考:
或者自己再包装一下,将 paoding 的词库更新检测做一个单独的模块实现,然后就可以在所有基于词库的分词算法之间无缝切换了。
ps,对不同的 field 使用不同的分词器是一个可以考虑的方法。比如 tag 字段,就应该使用一个最简单的分词器,按空格分词就可以了。
yingbin920
浏览: 237317 次
来自: 上海
怎么用的啊,
实现一个智能提示功能需要ajax、数据库、jsp/php、算法 ...
请问您qq多少
实现一个智能提示功能需要ajax、数据库、jsp/php、算法 ...
这样就可以实现相关搜索了吗
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'中文自动分词_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
中文自动分词
本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
中文自动分词;;;中文大数据
何谓自动分词?自动分词就是将用自然语言书写的文章、句段经电子计算机处理后,以词为单位给以输出,为后续加工处理提供先决条件。此技术对于信息分析、、机器翻译、和等IT应用方面有着关键性的作用。
自动分词的实现,对于拉丁语系来说并不困难,其语言文字的形成结构中,词与词之间本身就有着明显的间隔符(如:空格、标点符号等),但对于中文来说,就是一个至今仍未能得以很好解决的技术难题,中文词与词之间没有着明显的间隔符,甚至连标点符号都没有的古文更是为难了。当今,国内外IT界的一些仁人志士们还在为此技术不懈努力着。
当今世界已经进入大数据时代,纵观下来中文自动分词还很落后,还停留在字符串段比较搜索阶段。
清除历史记录关闭豆丁微信公众号
君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
校园网搜索引擎核心技术——中文自动分词
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口下次自动登录
现在的位置:
& 综合 & 正文
B2C商城请跟上搜索时代的脚步(二)——凭什么让用户打空格?
紧接上一篇《B2C商城请跟上搜索时代的脚步(一)——凭什么让用户点分类?》的话题,围绕站内搜索这个问题接着说。  上一篇提到很多B2C商家拥有站内搜索,何谈没有站内搜索呢?其实鉴别普通搜索功能和搜索引擎其实很简单。搜索引擎必须具备两点:(1)相关性排序技术。(2)分词索引技术。  对于中文B2C网站的站内搜索引擎来说,中文分词技术是必备的。这句话就引出了我题目的问题:凭什么让用户打空格?  可能这个问题对B2C运营者来说大部分压根都没考虑过。有些甚至认为他们的产品标题都有空格,用户要查询时自然会输入空格?这种想当然的想法是经不起推敲的。  中文和英文的区别就是带不带空格。英文本身就带空格,而中文则不会带空格。我们可以观察一下百度搜索中的相关搜索。其中的关键字,有多少是带空格的呢?可以说大部分都没有。百度搜索在一开始的功能中,也需要打空格,可是不久以后就不需要了。程序将自动分词。  据国外统计,搜索成功率占所有搜索的33%。这是英文,不需要分词,也就是所有用户都会自动输入空格的情况下的成功率。那中文呢?如果在中国,输入空格是一种语法,是一种习惯,那成功率也就是33%。可中国不是。我们要想把自己做大,提高销量,我们得花心思揣摩大部分用户的习惯。我们不能强制用户看大片QA文件,用户没兴趣,也不原意看。  有72%的用户习惯打两个词语以上来搜索自己想要的东西,这也告诉各位B2C,有72%的搜索有可能需要分词。48%的用户会输入4个词来搜索,中国博大精深的文字的排列组合,我们的站内搜索是否能满足呢?本人不想回到前一篇的内容来计算下单率。可以看得出来,如果72%的用户如果第一次没有输入空格而找不到商品的结果是超过三分之一的用户会离开,因为不是每个用户都知道带上空格就能找到。那会输入4个词的用户是否要输入4个空格呢?我相信中国人没这种习惯。  其实空格的作用就是在查询前作分词的预处理。我们没有理由要求用户去做这样的预处理。记住我们是在做电子商务,我们用的是互联网技术平台。我们不是在作传统贸易销售。不只是简单价格战和服务之间的比拼。在互联网上的暗劲中,技术也是不可忽略的。可是B2C的老二们?你们一直想做老二么?不想一直做老二就得提高自己的技术。(这里我先说搜索技术,之后还会有其他技术提醒大家)。  国内有一家二线的综合购物商城,家底还是不薄的,曾在上海作过媒体广告,在业界也小有名气。产品量大约有10万。这样规模,国内没有几家能够比得上。卓越有多少?其实没有他说的那么多,加上大量图书,产品也就在50万左右的样子。其实每天在线销售的估计不会超过40万。其实对于那家二线的商家来说,有实力可以在规模上做到和卓越一样,但是在用户群上简直差了几个档次。没错,卓越一直在烧钱做推广,但是如果推广过来的用户来如果找不到那些商品该怎么办?岂不是白烧了。无可厚非的,卓越的搜索技术在B2C种算好的了。而二线的呢?确实需要输入空格。  从我观察下来,当当的搜索技术要超越卓越,去年当当称其盈利了,究竟是否盈利我们就不去讨论了。有人说当当和卓越在打价格战。我并不这么认为?几乎卓越的价格大部分要比当当的便宜,卓越免运费,当当不免。可当当没输。  我对比一下两家,付款差不多,物流用的几乎是相同的公司,产品也差不多,价格卓越比当当便宜,为什么当当不输?当当的搜索技术起到了一定的作用。卓越的搜索引擎在分词颗粒度策略上有一定缺陷(当然这属于应用程度,和其他相关技术结合时出了问题)。导致有时候明明有的产品,可就是找不到。而在当当那里,基本上要好很多。  Google几乎垄断了全世界的搜索,唯独搞不定中国。原因在于一开始分词技术百度抢先运用了,百度请了中文教授语言学家来指导分词策略的制定。Google现在的分词技术不比百度差,可是为什么还是不如百度?晚了一步。  各位B2C们,现在还差不多属于一个起跑线上,国内一家联盟的统计数据,每月的广告销售额超过百万的商家也就是4家。而这4家几乎在搜索技术上都比较好。不要再迟了。淘宝B2C就要起来了。淘宝的搜索技术有多强大呢?去试试就知道了。它哪天要搞成垂直搜索都是眨眼间的功夫。请不要在淘宝B2C崛起的时候,我们还在让用户输入空格。我还在好几家化妆品网站发现,你们输了空格也不一定搜得到。你们以为在数据库查询语句用个LIKE就能搜出相关产品了?请重视技术。搞电子商务,老板可以不懂技术,但是你得要有重视技术的意识。不要让其他优势埋没在技术上。更不要让其他优势埋没在一个空格上。  输入不输入空格是服务和用户体验的分界点。小小一个空格将决定你产品的展示率。千万不要输在空格上。因为我们找不到理由也不存在理由要“上帝”输入空格。
【上篇】【下篇】}

我要回帖

更多关于 自动分词 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信