几种开源分词工具的比較

几种开源分词工具的比較

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

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

分词工  具

      特点

  

支持语言

    原理

词典及扩展性

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/117911.html原文链接:https://javaforall.net

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


相关推荐

  • IIS防盗链技术

    IIS防盗链技术 “盗链”的定义是:此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容。常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量。  为什么会产生盗链  一般浏览有一个重要的现象就是一个完整的页面并不是一次全部传送到客户

    2022年7月23日
    8
  • 为什么引入ReLU激活函数

    为什么引入ReLU激活函数https://blog.csdn.net/fredinators/article/details/79443386ReLu是神经网络中的一个激活函数,其优于tanh和sigmoid函数。1.为何引入非线性的激活函数?如果不用激活函数,在这种情况下每一层输出都是上层输入的线性函数。容易验证,无论神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(…

    2022年6月20日
    32
  • 怎么检查计算机和打印机是否连接网络,检查电脑是否正确连接网络打印机

    怎么检查计算机和打印机是否连接网络,检查电脑是否正确连接网络打印机我们有时候会在电脑中连接网络打印机来进行打印工作。可是有用户会遇到文件无法打印的问题。那么这个时候应该怎么检查电脑中是否已成功连接网络打印机?对此,我们可以参考以下方法来进行操作。1、如果文件打印不了,按Crtl+P打开打印对话框,在打印机名称中看看有没有网络打印机的名称,如果没有则说明打印机驱动有问题,需要重新安装网络打印机的驱动程序;2、如果有显示打印机名称,那么问题有可能是网络连接错误或者打…

    2022年5月10日
    230
  • vue中通过路由跳转的三种方式

    vue中通过路由跳转的三种方式router-view实现路由内容的地方,引入组件时写到需要引入的地方需要注意的是,使用vue-router控制路由则必须router-view作为容器。通过路由跳转的三种方式1、router-link【实现跳转最简单的方法】<router-linkto=’需要跳转到的页面的路径>浏览器在解析时,将它解析成一个类似于<a>的

    2022年7月27日
    3
  • 2021年SpringBoot面试题30道「建议收藏」

    2021年SpringBoot面试题30道「建议收藏」文章目录前言SpringBoot面试题内容1.谈谈你对SpringBoot的理解?2.为什么需要SpringBoot?3.说出SpringBoot的优点4.SpringBoot的核心配置文件有哪几个?它们的区别是什么?5.SpringBoot的配置文件有哪几种格式?它们有什么区别?6.开启SpringBoot特性有哪几种方式?7.什么是SpringBootStarter?8.SpringBoot有哪几种读取配置的方式?9.SpringBoot支持哪些日志框架?推荐

    2022年6月8日
    41
  • Jmeter面试题_软件测试的面试题及答案

    Jmeter面试题_软件测试的面试题及答案Jmter性能测试面试题

    2022年9月30日
    4

发表回复

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

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