分词基于java的中文分词工具ANSJ

分词工具  时间:2021-03-07  阅读:()

基于j ava的中文分词工具ANSJ

ANSJ

这是一个基于n-Gra m+C RF+HMM的中文分词的j a va实现.

分词速度达到每秒钟大约200万字左右mac air下测试 准确率能达到96%以上

目前实现了.中文分词.中文姓名识别.用户自定义词典,关键字提取 自动摘要关键字标记等功能

可以应用到自然语言处理等方面,适用于对分词效果要求高的各种项目.分词的目的是创建一个高稳定可用的中文分词工具,可以利用到各种需要文字处理的场景中下面简单介绍一下Ansj中文分词的主要算法及特点.

数据结构

高度优化Trie树

在用户自定义词典以及各种类似于Map的场景中,大量使用的一个工具,众所周知,Tr ie具有高速的文本扫描能力,和较低的内存占用率,是最好的AC机之一,弦外之音,在我的认知范围内,貌似没有之一.相比其它结构在性能和构造上做到了很好的平衡,但是在j ava中,大量构建map尤其是has hmap,是一个非常昂贵的操作,通过对于一个map放入大量的key也注定其在自动拆箱装箱,以及解决冲突,大量hash匹配上做了过多的小消耗,虽然多数人认为,这种消耗属于纳秒级别的,但是对于动不动就上GB的文本来说,这个消耗是不可忽略的,所以作者在这里使用了首字母hash次字二分的方式来避免过多的消耗内存,也正应为有了这个机制.可以保证Ansj加载更多的用户自定义词典,有人问我具体的数字.大约500万词,1 Gd e内存.在这里作者强烈推荐这个小家伙,你可以通过nlp-lang包来获取这个小工具,居家神器.

三数组trie树

三数组trie树,好吧我知道你们会吐槽我明明用的DAT(Double Array Tree),为什么在这里改成了TAT(Tree Array Tree)。我也不想如此但是为了严谨一些真实的还原算法 的确是用了三个数组来实现的DA T的主要是为了在判断词语之后避免一次无谓的倒退算是空间换取时间的一个策略吧具体感兴趣的可以参见nlp-lang中DAT的创建。对于DAT算法个人觉得。如非必要勿用其在构造和修改上具有很多不确定性不符合简单可依赖的理念有兴趣的人可以了解下。在我小时候的博客中写了几篇关于DA T的文章虽然很水。据说也有几个人看明白了。

机器学习

隐马尔科夫语言模型最短路径ansj中和ngram一起使用.通过两个词语之间的关联来确定,用来做语义消歧.

TF/I DF词袋模型关键词抽取中用到.用来确定一个词的重要程度.同时利用关键词对文章进行自动摘要

CRF类似CRF的上下文基于词的标注用来实现新词发现功能,同时新词发现也服务于关键词抽取

ToAnalysis精准分词

精准分词是Ansj分词的***店长推荐款***

它在易用性,稳定性.准确性.以及分词效率上.都取得了一个不错的平衡.如果你初次尝试Ansj如果你想开箱即用.那么就用这个分词方式是不会错的.

DicAnalysis用户自定义词典优先策略的分词

用户自定义词典优先策略的分词,如果你的用户自定义词典足够好,或者你的需求对用户自定义词典的要求比较高,那么强烈建议你使用DicAnalysis的分词方式.可以说在很多方面Dic优于ToAnalysis的结果

NlpAnalysis带有新词发现功能的分词nlp分词是总能给你惊喜的一种分词方式.

它可以识别出未登录词.但是它也有它的缺点.速度比较慢.稳定性差.ps:我这里说的慢仅仅是和自己的其他方式比较.应该是40w字每秒的速度吧.

个人觉得nlp的适用方式.1.语法实体名抽取.未登录词整理.主要是对文本进行发现分析等工作

IndexAnalysis面向索引的分词

面向索引的分词。顾名思义就是适合在lucene等文本检索中用到的分词。 主要考虑以下两点

召回率*召回率是对分词结果尽可能的涵盖。 比如对“上海虹桥机场南路”召回结果是[上海/ns,上海虹桥机场/nt,虹桥/ns,虹桥机场/nz,机场/n,南路/nr]准确率*其实这和召回本身是具有一定矛盾性的Ansj的强大之处是很巧妙的避开了这两个的冲突。比如我们常见的歧义句“旅游和服务”->对于一般保证召回。大家会给出的结果是“旅游和服服务”对于a nsj不存在跨te r m的分词。意思就是。召回的词只是针对精准分词之后的结果的一个细分。比较好的解决了这个问题

BaseAnalysis最小颗粒度的分词

基本就是保证了最基本的分词.词语***颗粒度最非常小***的. .所涉及到的词大约是***10万***左右.

基本分词速度非常快.在macAir上.能到每秒300 w字每秒.同时准确率也很高.但是对于新词他的功能十分有限.

功能统计

String str="洁面仪配合洁面深层清洁毛孔清洁鼻孔面膜碎觉使劲挤才能出一点点皱纹脸颊毛孔修复的看不见啦草莓鼻历史遗留问题没辙脸和脖子差不多颜色的皮肤才是健康的长期使用安全健康的比同龄人显小五到十岁28岁的妹子看看你们的鱼尾纹" ;

System.out.println(BaseAnalys is.pars e(str));

洁/ag,面/q,仪/k,配合/v,洁/ag,面/q,深层/b,清洁/a,毛孔/n, ,清洁/a,鼻孔/n,面膜/n,碎/a,觉/v,使劲/v,挤/v,才能/v,出/v,一/m,点点/v,皱纹/n, ,脸颊/n,毛孔/n,修复/v,的/u,看/v,不见/v,啦/y, ,草莓/n,鼻/ng,历史/n,遗留/vn,问题/n,没辙/v, ,脸/n,和/c,脖子/n,差不多/l,颜色/n,的/u,皮肤/n,才/d,是/v,健康/a,的/u, ,长期/d,使用/v,安全/an,健康/a,的/u,比/p,同龄人/n,显/v,小/a,五/m,到/v,十/m,岁/q, ,28/m,岁/q,的/u,妹子/n,看看/v,你们/r,的/u,鱼尾纹/n

Sys te m.o ut.println(To Ana lys is.p arse(str));

洁/ag,面/q,仪/k,配合/v,洁/ag,面/q,深层/b,清洁/a,毛孔/n, ,清洁/a,鼻孔/n,面膜/n,碎/a,觉/v,使劲/v,挤/v,才能/v,出/v,一/m,点点/v,皱纹/n, ,脸颊/n,毛孔/n,修复/v,的/u,看/v,不见/v,啦/y, ,草莓/n,鼻/ng,历史/n,遗留/vn,问题/n,没辙/v, ,脸/n,和/c,脖子/n,差不多/l,颜色/n,的/u,皮肤/n,才/d,是/v,健康/a,的/u, ,长期/d,使用/v,安全/an,健康/a,的/u,比/p,同龄人/n,显/v,小/a,五/m,到/v,十岁/mq, ,28岁/mq,的/u,妹子/n,看看/v,你们/r,的/u,鱼尾纹/n

System.out.println(D icAnalys is.pars e(str));

洁/ag,面/q,仪/k,配合/v,洁/ag,面/q,深层/b,清洁/a,毛孔/n, ,清洁/a,鼻孔/n,面膜/n,碎/a,觉/v,使劲/v,挤/v,才能/v,出/v,一/m,点点/v,皱纹/n, ,脸颊/n,毛孔/n,修复/v,的/u,看/v,不见/v,啦/y, ,草莓/n,鼻/ng,历史/n,遗留/vn,问题/n,没辙/v, ,脸/n,和/c,脖子/n,差不多/l,颜色/n,的/u,皮肤/n,才/d,是/v,健康/a,的/u, ,长期/d,使用/v,安全/an,健康/a,的/u,比/p,同龄人/n,显/v,小/a,五/m,到/v,十岁/mq, ,28岁/mq,的/u,妹子/n,看看/v,你们/r,的/u,鱼尾纹/n

System.out.println(IndexAnalys is.parse(str));

洁/ag,面/q,仪/k,配合/v,洁/ag,面/q,深层/b,清洁/a,毛孔/n, ,清洁/a,鼻孔/n,面膜/n,碎/a,觉/v,使劲/v,挤/v,才能/v,出/v,一/m,点点/v,皱纹/n, ,脸颊/n,毛孔/n,修复/v,的/u,看/v,

不见/v,啦/y, ,草莓/n,鼻/ng,历史/n,遗留/vn,问题/n,没辙/v, ,脸/n,和/c,脖子/n,差不多/l,颜色/n,的/u,皮肤/n,才/d,是/v,健康/a,的/u, ,长期/d,使用/v,安全/an,健康/a,的/u,比/p,同龄人/n,显/v,小/a,五/m,到/v,十岁/mq, ,28岁/mq,的/u,妹子/n,看看/v,你们/r,的/u,鱼尾纹/n

System.out.println(N lpAnalys is.parse(str));

洁/a g,面仪/nw,配合/v,洁面/nw,深层/b,清洁/a,毛孔/n, ,清洁/a,鼻孔/n,面膜/n,碎觉/nw,使劲/v,挤/v,才/d,能/v,出/v,一点点/nw,皱纹/n, ,脸颊/n,毛孔/n,修复/v,的/u,看/v,不/d,见/v,啦/y, ,草莓/n,鼻历史/nw,遗留/vn,问题/n,没辙/v, ,脸/n,和/c,脖子/n,差不多/l,颜色/n,的/u,皮肤/n,才/d,是/v,健康/a,的/u, ,长期/d,使用/v,安全/an,健康/a,的/u,比/p,同龄人/n,显/v,小/a,五/m,到/v,十岁/mq, ,28岁/mq,的/u,妹子/n,看看/v,你们/r,的/u,鱼尾纹/n

停用词过滤

停用词需求是一种及其常见的需求,好处很多很多,令人惊讶的是坏处比好处还多,所以一般情况下不要用这个破玩意.我觉得主要是古时候,计算能力有限,大家不想对于无畏的字符串,计算太多,放给处女座程序员,一般觉得,tmd有个家伙没用一直在耗费我的cpu,删了丫的,好吧,我真不是处女座黑.反正这个功能也得有,并且已经将这个功能移位了.调用如下.

1.实例化一个过滤器

StopReco gnition filter=new S topReco gnition();filter.insertStopNatures("uj"); //过滤词性filter.insertStopNatures("ul");filter.insertStopN atures("nul l");filter.insertStopWord s("我"); //过滤单词

filter.insertStop Re gexes("小.*?"); //支持正则表达式

调用过滤

Result modifResult=ToAnalysis.parse(str).reco gnition(fitler); //过滤分词结果测试例子

欢迎/v,使用/v,ansj/en,_,seg/en,,/w,ansj/en,中文/nz,分词/v,在/p,这里/r,如果/c,遇到/v,什么/r,问题/n,都/d,可以/v,联系/v,./w,一定/d,尽/v,所能/v,./w,帮助/v,大家

/r,./w,ansj/en,_,seg/en,更快/d,,/w,更/d,准/a,,/w,更/d,自由/a, !/w

欢迎/什么/r,问题/n,都/d,可以/v,联系/v,./w,一定/d,尽/v,所能/v,./w,帮助/v,大家

/http://www.sz129.com

VirMach:$27.3/月-E3-1240v1/16GB/1TB/10TB/洛杉矶等多机房

上次部落分享过VirMach提供的End of Life Plans系列的VPS主机,最近他们又发布了DEDICATED MIGRATION SPECIALS产品,并提供6.5-7.5折优惠码,优惠后最低每月27.3美元起。同样的这些机器现在订购,将在2021年9月30日至2022年4月30日之间迁移,目前这些等待迁移机器可以在洛杉矶、达拉斯、亚特兰大、纽约、芝加哥等5个地区机房开设,未来迁移的时...

webhosting24:€28/年,日本NVMe3900X+Webvps

webhosting24决定从7月1日开始对日本机房的VPS进行NVMe和流量大升级,几乎是翻倍了硬盘和流量,当然前提是价格依旧不变。目前来看,国内过去走的是NTT直连,服务器托管机房应该是CDN77*(也就是datapacket.com),加上高性能平台(AMD Ryzen 9 3900X+NVMe),这样的日本VPS还是有相当大的性价比的。官方网站:https://www.webhosting...

Ceranetworks顶级合作伙伴 香港E3 16G 299元 香港E5 32G 650元 美国E3 16G 650元

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

分词工具为你推荐
permissiondeniedpermission denied是什么意思啊?蓝色骨头手机谁有崔健执导的电影《蓝色的骨头》。百度关键词工具常见百度关键词挖掘方法分别是什么请列举?www.javmoo.comjavimdb是什么网站为什么打不开m88.comm88.com现在的官方网址是哪个啊 ?m88.com分析软件?66smsm.comwww.zpwbj.com 这个网址是真的吗?我想知道它的真实性.......谢谢 我就剩50了,都给你了..............www.cn12365.org全国公民身份证号码查询服务中心(http://www.nciic.com.cn/)这个网站怎么查不了啊?蜘蛛机器人红警2里的蜘蛛机器人怎样对负剑影绝杀三国战记武将争霸中鬼剑士,曹操,吕布等人的大绝杀怎么发呀,速求东力奥互联网的创始人是谁?
服务器租用托管 申请免费域名 东莞电信局 adman mediafire 香港主机 permitrootlogin 本网站在美国维护 智能骨干网 国外免费全能空间 网络空间租赁 umax120 metalink 申请免费空间和域名 联通网站 web服务器是什么 帽子云排名 湖南idc 独立主机 中国域名 更多