IT知识库 购物 网址 游戏 小说 歌词 快照 开发 股票 美女 新闻 笑话 | 汉字 软件 日历 阅读 下载 图书馆 编程 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题 autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程 CSS/HTML/Xhtml html5 CSS XML/XSLT Dreamweaver教程 经验交流 开发者乐园 Android开发资料
站长资讯 .NET新手 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA VisualStudio ASP.NET-MVC .NET控件开发 EntityFramework WinRT-Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动 Html-Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP OracleERP DynamicsCRM K2 BPM 信息安全 企业信息 Android开发 iOS开发 WindowsPhone WindowsMobile 其他手机 敏捷开发 项目管理 软件工程 SQLServer Oracle MySQL NoSQL 其它数据库 Windows7 WindowsServer Linux
  IT知识库 -> 架构设计 -> 中文分词器性能比较 -> 正文阅读

[架构设计]中文分词器性能比较

中文分词器性能比较 摘要:本篇是本人在Solr的基础上,配置了中文分词器,并对其进行的性能测试总结,具体包括
使用mmseg4j、IKAnalyzer、Ansj,分别从创建索引效果、创建索引性能、数据搜索效率等方面进行衡量。
具体的Solr使用方法假设读者已有了基础,关于Solr的性能指标见前期的Solr博文。
前提:       Solr提供了一整套的数据检索方案,一台四核CPU、16G内存的机器,千兆网络。
需求:       1、对Solr创建索引的效率有一定的要求。
             2、中文分词速度要快,搜索速度也要快。
             3、中文分词准确率有一定的要求。
说明:      以下是在Solr上分别配置不同的中文分词器,它们之间的比较。
1.      中文分词 1.1  中文分词器概述
名称
最近更新
速度(网上情报)
扩展性支持、其它
mmseg4j
2013
complex 60W字/s (1200 KB/s)
simple 100W字/s (1900 KB/s)
使用sougou词库,也可自定义
(complex\simple\MaxWord)
IKAnalyzer
2012
IK2012 160W字/s (3000KB/s)
支持用户词典扩展定义、支持自定义停止词
(智能\细粒度)
Ansj
2014
BaseAnalysis 300W字/s
hlAnalysis 40W字/s
支持用户自定义词典,可以分析出词性,有新词发现功能
paoding
2008
100W字/s
支持不限制个数的用户自定义词库
注意:
中文分词器可能与最新版本Lucene不兼容,配置好运行时出现TokenStream contractviolation错误,对于mmseg4j需要更改com.chenlb.mmseg4j.analysis.MMSegTokenizer源码,添加super.reset()在reset()内,重新编译后替换原jar。
1.2  mmseg4j
创建索引效果:
FieldValue内容:
京華时报ぼおえ2009年1月23日报道,???????受一股来自中西伯利亚的强冷空气影响,本市出现大风降温天气,白天最高气温只有零下7摄氏度celsius degree,同时伴有6到7级的偏北风。
在词库中补充:
京華、??、ぼおえ、受一股来
类型
结果
textMaxWord
京華|时报|ぼ|お|え|2009|年|1|月|23|日|报道|?|?|?|?|?|?|?|受|一股|来|自|中|西|伯|利|亚|的|强|冷|空气|影响|本市|出现|大风|降温|天气|白天|最高|气温|只有|零下|7|摄氏|度|celsius|degree|同时|伴有|6|到|7|级|的|偏|北风
textComplex
京華|时报|ぼおえ|2009|年|1|月|23|日|报道|????|?|?|?|受一股来|自|中|西伯利亚|的|强|冷空气|影响|本市|出现|大风|降温|天气|白天|最高气温|只有|零下|7|摄氏度|celsius|degree|同时|伴有|6|到|7|级|的|偏|北风
textSimple
京華|时报|ぼおえ|2009|年|1|月|23|日|报道|????|?|?|?|受一股来|自|中西|伯|利|亚|的|强|冷空气|影响|本市|出现|大风|降温|天气|白天|最高气温|只有|零下|7|摄氏度|celsius|degree|同时|伴有|6|到|7|级|的|偏|北风
创建索引效率:
17个各种类型字段,在solr博文中字段基础上,选一空string类型字段改为新类型,并写入文本内容(原纯文本Size约为400B,SolrInputDocument对象Size约为1130B)。
文本内容以词库中任选20词拼成的句子,每词大约3字,一句大约60字。
总数据量为2000W条数据,与2.2节相同配置。
字段类型
创建时间(s)
索引大小(GB)
网络(MB/s)
速率(W条/s)
textMaxWord
3115
4.95
6.0
0.64 (38W字/s)
textComplex
4860
4.3
5.0
0.41 (25W字/s)
textSimple
3027
4.32
6.5
0.66 (40W字/s)
string
2350
9.08
8.0
0.85 (57W字/s)
速度:在与“solr博文http://www.cnblogs.com/wgp13x/p/3742653.html”中1.2节相同配置的情况下,分词索引创建速度要差于不使用分词的。
大小:分词索引大小要小于不使用分词的,经测试分词字段配置成autoGeneratePhraseQueries="false"对索引大小几乎没有影响。
数据搜索效率:
文本内容以词库中任选20词拼成的句子,每词大约3字,一句大约60字,总数据量为2000W条数据。
字段类型
关键词
搜索时间(ms)
结果(条)
textMaxWord
一不做二不休
180
2556
textComplex
一不做二不休
59
2648
textSimple
一不做二不休
62
2622
string
*一不做二不休*
20000
2689
textMaxWord
一个国家两种制度
22
2620
textComplex
一个国家两种制度
12
2687
textSimple
一个国家两种制度
10
2670
string
*一个国家两种制度*
15500
2657
textMaxWord
一些
24
15999
textComplex
一些
11
2687
textSimple
一些
9
2665
string
*一些*
14200
15758
textMaxWord
转辗反侧
15
2622
textComplex
转辗反侧
5
2632
textSimple
转辗反侧
9
2676
string
*转辗反侧*
15600
2665
补充:
对于非中文、数字、英文词汇,包括繁体字,在词典中加入新词汇即可。
mmseg4j对于“都是先从容易的做起”,不能把“容易”分出来,分词结果为“都是|先|从容|易|的|做起”。
网上推荐使用textMaxWord类型分词。
1.3  IKAnalyzer
创建索引效果:
FieldValue内容、在词库中补充均同1.2。
分词字段配置autoGeneratePhraseQueries="false"
类型
结果
细粒度
京華|时报|ぼおえ|2009|年|1|月|23|日报|日|报道|????|?|?|?|受一股来|一股|一|股|来自|中西|西伯利亚|西伯|伯利|亚|的|强冷空气|冷空气|空气|影响|本市|出现|大风|降温|天气|白天|最高|高气|气温|只有|有|零下|零|下|7|摄氏度|摄氏|度|celsius|degree|同时|伴有|有|6|到|7|级|的|偏北风|偏北|北风
创建索引效率:
字段类型
创建时间(s)
索引大小(GB)
网络(MB/s)
速率(W条/s)
细粒度
3584
5.06
6.0
0.56 (33W字/s)
速度:与1.2比较,分词索引创建速度要略差于使用mmseg4j分词的。
大小:分词索引大小要略大于使用mmseg4j分词的。
数据搜索效率:
字段类型
关键词
搜索时间(ms)
结果(条)
细粒度
一不做二不休
400
5949255
细粒度
一个国家两种制度
500
6558449
细粒度
一些
300
5312103
细粒度
转辗反侧
15
10588
补充:
mmseg4j中textMaxWord,“一不做二不休”被分为:一|不做|二不|不休;
IKAnalyzer中细粒度,“一不做二不休”被分为:一不做二不休|一|不做|二不休|二|不休;
因此同样使用autoGeneratePhraseQueries="false",“一不做二不休”搜索,IKAnalyzer搜索出来的结果要远多于mmseg4j。
1.4  Ansj
创建索引效果:
FieldValue内容同1.2,没有补充词库。
<fieldType name="text_ansj"class="solr.TextField">
                            <analyzertype="index">
                                     <tokenizerclass="org.ansj.solr.AnsjTokenizerFactory" conf="ansj.conf"rmPunc="true"/>
                            </analyzer>
                            <analyzertype="query">
                                     <tokenizerclass="org.ansj.solr.AnsjTokenizerFactory" analysisType="1"rmPunc="true"/>
                            </analyzer>
</fieldType>
结果
京华|时报|ぼ|お|え|2009年|1月|23日|报道|,|?|?|?|?|?|?|?|受|一股|来自|中|西伯利亚|的|强|强冷空气|冷空气|影响|,|本市|出现|大风|降温|天气|,|白天|最高|气温|只|只有|有|零下|7摄氏度|摄氏|摄氏度|celsius||degree|,|同时|伴|伴有|有|6|到|7级|的|偏|偏北风|北风|。
    “京華”二字被分词后变成了“京华”,据朋友介绍,它有将生僻字改字的Bug。
创建索引效率:
字段类型
创建时间(s)
索引大小(GB)
网络(MB/s)
速率(W条/s)
细粒度
3815
5.76
5.2
0.52 (31W字/s)
速度:与1.2、1.3比较,分词索引创建速度要略差于使用mmseg4j、IKAnalyzer分词的。
大小:分词索引大小要略大于使用mmseg4j、IKAnalyzer分词的。
数据搜索效率:
关键词
搜索时间(ms)
结果(条)
一不做二不休
200
2478
一个国家两种制度
15
0
一些
25
15665
转辗反侧
6
2655
1.5  总结
按分词后的结果进行搜索,若在分词字段配置autoGeneratePhraseQueries="false",则是搜索条件先分词,再使用分词在结果中搜索,默认的是true。autoGeneratePhraseQueries="false"对创建索引速度没影响,对搜索结果有影响。也可以修改Solr的QueryPasser,对于输入的一个字符串,先进行相应分词,再使用分词结果在索引集中搜索。
精确或模糊*搜索,都是以词为单位搜索。精确搜索是指返回所有包含分词的结果。
分词器能对word、letter、digit等进行识别。
对于不使用分词的String类型进行搜索,只能通过模糊搜索*,搜到连字,以字为单位搜索。
在分词索引内搜索,速度较快;不分词,需要遍历所有文档,速度较慢。
如果需要分词的话,那分词速度是主要瓶颈。
综合考虑,mmseg4j是首选的中文分词器。
如有需要具体的测试代码,可以跟本人联系。
上一篇文章      下一篇文章      查看所有文章
加:2015-03-30 03:55:49  更:2017-05-16 02:22:07 
 
  架构设计 最新文章
spring boot实现ssm(2)功能
java 企业站源码 兼容手机平板PC 自适应响应
Serverless无服务应用架构纵横谈
理论篇:关注点分离(Separation of concern
Struts 2 入门
spring boot实现ssm(1)功能
java springMVC SSM 操作日志 4级别联动 文
SSM框架SSM项目源码SSM源码下载java框架整合
分布式下session的管理
MvvmLight框架使用入门(一)
技术频道: 站长资讯 .NET新手区 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA Visual Studio ASP.NET MVC .NET控件开发 Entity Framework WinRT/Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动设计 Html/Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP Oracle ERP Dynamics CRM K2 BPM 信息安全 企业信息化其他 Android开发 iOS开发 Windows Phone Windows Mobile 其他手机开发 敏捷开发 项目与团队管理 软件工程其他 SQL Server Oracle MySQL NoSQL 其它数据库 Windows 7 Windows Server Linux
脚本语言: vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题 autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程
网站开发: CSS/HTML/Xhtml html5 CSS XML/XSLT Dreamweaver教程 经验交流 开发者乐园 Android开发资料
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 三丰软件 开发 中国文化 网文精选 阅读网 看图 日历 万年历 2018年8日历
2018-8-14 23:58:55
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT知识库