分词基于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

妮妮云(119元/季)日本CN2 2核2G 30M 119元/季

妮妮云的知名度应该也不用多介绍了,妮妮云旗下的云产品提供商,相比起他家其他的产品,云产品还是非常良心的,经常出了一些优惠活动,前段时间的八折活动推出了很多优质产品,近期商家秒杀活动又上线了,秒杀产品比较全面,除了ECS和轻量云,还有一些免费空间、增值代购、云数据库等,如果你是刚入行安稳做站的朋友,可以先入手一个119/元季付的ECS来起步,非常稳定。官网地址:www.niniyun.com活动专区...

韩国服务器租用优惠点评大全

韩国服务器怎么样?韩国云服务器租用推荐?韩国服务器距离中国近,有天然的地域优势,韩国服务器速度快而且非常稳定!有不少有亚洲市场的外贸公司选择韩国服务器开拓业务,韩国服务器因自身的优势也受到不少用户的青睐。目前的IDC市场上,韩国、香港、美国三个地方的服务器几乎占据了海外服务器的百分之九十以上。韩国服务器相比美国服务器来说速度更快,而相比香港机房来说则带宽更充足,占用市场份额非常大。那么,韩国服务器...

NameCheap 2021年新年首次活动 域名 域名邮局 SSL证书等

NameCheap商家如今发布促销活动也是有不小套路的,比如会在提前一周+的时间告诉你他们未来的活,比如这次2021年的首次活动就有在一周之前看到,但是这不等到他们中午一点左右的时候才有正式开始,而且我确实是有需要注册域名,等着看看是否有真的折扣,但是实际上.COM域名力度也就一般需要51元左右,其他地方也就55元左右。当然,这次新年的首次活动不管如何肯定是比平时便宜一点点的。有新注册域名、企业域...

分词工具为你推荐
蓝色骨头手机宠物的一个蓝色骨头代表多少级,灰色又代表多少级,另外假如有骨头又代表多少级长尾关键词挖掘工具外贸长尾关键词挖掘工具哪个好用sss17.comwww.com17com.com是什么啊?haokandianyingwang有什么好看的电影网站www.03024.comwww.sohu.com是什么www.36ybyb.com有什么网址有很多动漫可以看的啊?我知道的有www.hnnn.net.很多好看的!但是...都看了!我想看些别人哦!还有优酷网也不错...www.idanmu.com万通奇迹,www.wcm77.HK 是传销么?baqizi.cc誰知道,最近有什麼好看的電視劇66smsm.comwww.zpwbj.com 这个网址是真的吗?我想知道它的真实性.......谢谢 我就剩50了,都给你了..............www4399com4399小游戏 请记住本站网站 4399.url
免费域名空间 网站域名备案查询 中文域名申请 阿里云os 安云加速器 网通服务器ip 租空间 howfile 日本bb瘦 lol台服官网 国外代理服务器地址 tna官网 网络空间租赁 cdn加速是什么 微软服务器操作系统 网通服务器 dnspod 我的世界服务器ip lamp兄弟连 国内空间 更多