几种开源分词工具的比較

几种开源分词工具的比較

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

分词工  具

      特点

  

支持语言

    原理

词典及扩展性

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • touchesBegan: withEvent: 不执行解决

    touchesBegan: withEvent: 不执行解决touchesBegan:withEvent:/ touchesMoved:withEvent:/ touchesEnded:withEvent:等只能被UIView捕获(如有问题请指出对请指出,路过的大牛请勿喷),当我们创建UIScrollView或UIImageView时,当点击时UIScrollView或UIImageView 会截获touch事件,导致tou

    2022年7月25日
    16
  • 实时数据采集传输软件LDM配置

    实时数据采集传输软件LDM配置本环境一共两个机器 cma ldm87 gov cn hostname 机器作为 upstreamLDM cma ldm84 gov cn hostname 机器作为 downstreamLD 下面分享一下这两个 的配置 1upstreamLDM 的配置 nbsp nbsp 1 1ldmd conf 配置重点 nbsp nbsp nbsp nbsp nbsp nbsp ExecEntries 当使用 bin ldmadmin 命令

    2025年10月24日
    5
  • Linux学习——shell编程之正则表达式和字符处理命令

    shell编程之正则表达式一 正则表达式 1 什么是正则表达式 正则表达式用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分隔、匹配、查找及替换操作。2 shell编程之正则表达式与通配符 正则表达式:用于在文件中匹配符合条件的字符串。正则是包含匹配。grep 、awk 、sed等命令支持正则表达式。 通配符:用于匹配符合条件的文件名,通配符是完全匹配。ls、f

    2022年2月26日
    50
  • apache rewritecond_hfile数据格式中的data字段用于

    apache rewritecond_hfile数据格式中的data字段用于RewriteCond就像我们程序中的if语句一样,表示如果符合某个或某几个条件则执行RewriteCond下面紧邻的RewriteRule语句,这就是RewriteCond最原始、基础的功能,为了方便理解,下面来看看几个例子。复制代码代码如下:RewriteEngineonRewriteCond %{HTTP_USER_AGENT} ^Mozilla//5/.0.*

    2022年5月3日
    134
  • quick-cocos2d-x游戏开发【4】——加入文本[通俗易懂]

    quick-cocos2d-x游戏开发【4】——加入文本

    2022年1月19日
    47
  • resnet是卷积神经网络吗_神经网络架构搜索的应用

    resnet是卷积神经网络吗_神经网络架构搜索的应用卷积神经网络在图像识别方面应用广泛,在实际应用在中,识别的准确率不仅仅与数据量有关,还与模型的架构有很大的关联。从首个成功应用于数字识别的卷积神经网络LeNet,到卷积神经网络崛起点AlexNet,以及陆陆续续的ZFNet,VGGNet,Inception系列和ResNet,这些架构在网络深度,宽度,卷积核大小和可视化部分都做了很大的改进,使得卷积神经网络的性能越来越强。

    2022年8月14日
    4

发表回复

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

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