几种开源分词工具的比較

几种开源分词工具的比較

  搜集了一些资料,与同学一起进行了简单的測试,总结例如以下。

分词工  具

      特点

  

支持语言

    原理

词典及扩展性

StandardAnalyzer

中文、英文(unicode

中文:单字符切分

英文:依据空格切分

ChineseAnalyzer

中文,不支持中文和英文及数字混合的文本分词 

按字分词,StandardAnalyzer对中文的分词没有大的差别

CJKAnalyzer

中文,英文,不支持中文和英文及数字混合的文本分词 

採用的双字切分,也就是对一段文字按每两个字来进行切分 

IKAnalyzer

英文字母、数字、中文词汇等分词处理,兼容韩文、日文字符

正向迭代最细粒度切分算法(词典+文法分析)

收录27万中文词汇,

支持用户词典扩展定义、支持自己定义停止词

paoding

中文

支持不限制个数的用户自己定义词库

MMAnalyzer

支持英文、数字、中文(简体)混合分词

正向最大匹配算法

支持动态扩展

MMSeg4j 

中文,包含一些字符的处理 英文、俄文、希腊、数字(包含)的分出一连串的。眼下版本号没有处理小数字问题 

用 Chih-Hao Tsai 的 MMSeg 算法MMSeg 算法有两种分词方法:SimpleComplex,都是基于正向最大匹配。在complex基础上实现了最多分词(max-word)   

强制使用 UTF-8)

使用sougou词库,也可自己定义覆盖

imdict

中文、英文、数字

隐马尔科夫模型

coredict核心字典、bigramdict词典,不含人名、地名词典。不支持自己定义词典

分词工具

 

特点

速度

文档完整性

大小

Lucene版本号

备注

StandardAnalyzer

ChineseAnalyzer

Lucene contrib中附带的分析器

CJKAnalyzer

Lucene contrib中附带的二元分词

IKAnalyzer

3.2.8

83 万字/秒(1600KB/S

具体

2.62MB

Lucene2.9

Lucene3.0

支持细粒度和最大词长两种切分模式

paoding

100万字/

差点儿无

1.3MB

Lucene3.0

MMAnalyzer

第一次分词须要12秒(读取词典),之后速度基本与Lucene自带分词持平 

原始站点已经找不到下载不提供维护和支持

内存消耗30M+

lucene 1.92.4之间 

MMSeg4j 

complex 1200kb/s左右, simple 1900kb/s左右 

MMSeg 算法是英文的,但原理比較简单。实现也比較清晰。

内存开销了50M左右 

mmseg4j 1.8.3 仅仅支持 lucene 2.9/3.0 接口 。mmseg4j 1.8.5 支持 lucene 3.1

imdict

259517/

较全

词典大小7.26MB

Lucene2.9直接收录

分词效果演示:

消歧义效果:

分词工具

    效果

张三买了张三角桌

南京市长江大桥

StandardAnalyzer

|||||||

||||||

ChineseAnalyzer

|||||||

||||||

CJKAnalyzer

张三|三买|买了|了张|张三|三角|角桌

南京|京市|市长|长江|江大|大桥

IK

Analyzer

最大词长

张三|买了|张三|三角|

南京市|市长|长江大桥

最细粒度

张三||买了|张三|三角|||

南京市|南京|市长|长江大桥|长江|大桥

paoding

张三|买了|张三|三角|  桌  

|南京|南京市||市长|长江|大 |大桥  

MMAnalyzer

张三|买了|张三角|

南京市|长江大桥

MMSeg4j 

SimpleSeg

张三|买了|张三||

南京市|长江大桥

ComplexSeg

张三|买了|张三||

南京市|长江大桥

imdict

||||||三角|

南京市|长江|大桥

数字、英文混合分词效果:

分词工具

        效果

我的QQ号是******

StandardAnalyzer

||qq|||******

ChineseAnalyzer

||qq||

CJKAnalyzer

我的|qq|||******

IKAnalyzer

IK

||qq|||******

MIK

||qq|||******

MMAnalyzer

我的|qq|||******

MMSeg4j 

SimpleSeg

我的|qq|||******

ComplexSeg

我的|qq|||******

paoding

|qq||****** 

Imdict

||qq||******

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119089.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微信公众号开发基本流程

    微信公众号开发基本流程背景:过年前后做了个微信公众号项目,已经过去一段时间了,抽空回忆总结下基本流程吧,不然很快估计自己就忘了。。微信公众平台官网:https://mp.weixin.qq.com文章目录一、注册公众号二、了解公众号管理页面三、必备开发者工具的使用1.开发者文档2.在线接口调试工具3.web开发者工具4.公众平台测试账号四、细读开发者文档五、开发流程重点解析1.开发环境准备2.服务器基本配置3….

    2022年6月6日
    34
  • 矢量积与叉乘_向量积叉乘的几何意义

    矢量积与叉乘_向量积叉乘的几何意义矢量叉乘,向量外积原创不易,路过的各位大佬请点个赞矢量叉乘,向量外积矢量叉乘,向量外积1.矢量叉乘定义2.模长3.方向4.坐标运算6.叉乘矩阵(斜对称矩阵)6.叉乘运算规则1.矢量叉乘定义定义两个向量a\mathbf{a}a和b\mathbf{b}b,他们的叉乘可以写为a×b\mathbf{a}\times\mathbf{b}a×b本质上向量叉乘为向量旋转,满足右手螺旋准则;叉乘结果是一个向量,向量模长是向量A,B组成平行四边形的面积;向量方向是垂直于向量A,B组成的平面;也

    2025年7月28日
    3
  • 万能密码大全[通俗易懂]

    万能密码大全[通俗易懂]aspaspx万能密码1:”or”a”=”a2: ‘)or(‘a’=’a3:or1=1–4:’or1=1–5:a’or’1=1–6:”or1=1–7:’or’a’=’a8:”or”=”a’=’a9:’or”=’10:’or’=’or’11:1

    2022年6月15日
    162
  • 圣杯布局与双飞翼布局

    圣杯布局与双飞翼布局圣杯布局和双飞翼布局都是实现的三栏布局 两边的盒子宽度固定 中间盒子自适应 也就是我们常说的固比固布局 它们实现的效果是一样的 差别在于其实现的思想 圣杯布局的出现是来自于 alistpart 上的一篇文章 InSearchofth 比起双飞翼布局 它的起源不是源于对页面的形象表达 在西方 圣杯是表达 渴求之物 的意思 而双飞翼布局 源与淘宝的 UED 通过缩放页面就可以发

    2026年1月29日
    1
  • Struts2运行错误:Error filterStart

    Struts2运行错误:Error filterStart困扰我近10多天的问题,让我在框架功力修炼上几乎停滞不前,今天问题被KO,小小的高兴下。 纯洁的web.xml文件struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/*

    2022年7月11日
    13
  • Java递归调用_递归算法1加到100

    Java递归调用_递归算法1加到100递归用于解决什么样的问题?1)各种数学问题如:8皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题(google编程大赛)2)各种算法中也会使用到递归,比如快排,归并排序,二分查找,分治算法等.3)将用栈解决的问题–>递归代码比较简洁简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。递归需要遵守的重要规则:1…

    2025年12月1日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号