Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
forked from NLPchina/ansj_seg

ansj分词.ict的真正java实现.分词效果速度都超过开源版的ict. 中文分词,人名识别,词性标注,用户自定义词典

License

Notifications You must be signed in to change notification settings

javaver/ansj_seg

Repository files navigation

Ansj中文分词

1.X Build Status Gitter

#####使用帮助 : 3.x版本及之前 , 5.x版本及之后 在线测试地址 : http://demo.nlpcn.org

摘要

这是一个基于n-Gram+CRF+HMM的中文分词的java实现.

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

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

可以应用到自然语言处理等方面,适用于对分词效果要求高的各种项目.

下载jar
  • 访问 http://maven.nlpcn.org/org/ansj/ 最好下载最新版 ansj_seg/
    • 如果你用的是1.x版本需要下载tree_split.jar
    • 如果你用的是2.x版本需要下载nlp-lang.jar
    • 如果你用的是3.x以上版本只需要下载 ansj_seg-[version]-all-in-one.jar 一个jar包就能浪了。
  • 导入到eclipse ,开始你的程序吧
maven
	<!-- 增加新的maven源 -->	
	<repositories>
		<repository>
			<id>mvn-repo</id>
			<url>http://maven.nlpcn.org/</url>
		</repository>
	</repositories>
 <dependencies>
 ....
 
 <dependency>
 <groupId>org.ansj</groupId>
 <artifactId>ansj_seg</artifactId>
 <version>5.0.1</version>
 </dependency>
 ....
 </dependencies>
调用demo

如果你第一次下载只想测试测试效果可以调用这个简易接口


 String str = "欢迎使用ansj_seg,(ansj中文分词)在这里如果你遇到什么问题都可以联系我.我一定尽我所能.帮助大家.ansj_seg更快,更准,更自由!" ;
 System.out.println(ToAnalysis.parse(str));
 
 欢迎/v,使用/v,ansj/en,_,seg/en,,,(,ansj/en,中文/nz,分词/n,),在/p,这里/r,如果/c,你/r,遇到/v,什么/r,问题/n,都/d,可以/v,联系/v,我/r,./m,我/r,一定/d,尽我所能/l,./m,帮助/v,大家/r,./m,ansj/en,_,seg/en,更快/d,,,更/d,准/a,,,更/d,自由/a,!
Join Us

心思了很久,不管有没有人帮忙把。我写上来,如果你有兴趣,有热情可以联系我。

  • 1.补充文档,增加调用实例和说明
  • 2.将项目提交到maven中央仓库
  • 3.增加一些规则性Recognition,举例身份证号码识别,目前未完成的有 时间识别,IP地址识别,邮箱识别,网址识别,词性识别等...
  • 4.提供更加优化的CRF模型。替换ansj的默认模型。
  • 5.补充测试用例,n多地方测试不完全。如果你有兴趣可以帮忙啦!
  • 6.重构人名识别模型。增加机构名识别等模型。
  • 7.增加句法文法分析
  • 8.建立一个http or netty api,提供分词服务,并提供sdk
  • n.拾遗补漏...

##大事记要

#2016年6月05日

蓄谋已久的ansj_seg v5.0正式发布了,也许大家会奇怪为什么没有4.x版本本,额....迷信。本次主要更新内容如下

  • 支持自训练CRF模型的加载。目前支持CRF++ 及 Wapiti两种模型。并提供训练语料的生成工具。
  • 将默认crfmodel移动到jar包内。并压缩了大小控制在16m。
  • 正式发布了DicAnalysis分词策略,使用户自定义词典优先级升高。如果你用户自定义词典足够强建议用这个方式的分词。
  • 将分词结果封装为Result对象。这样便于对结果的二次处理。
  • 增加Recognition接口,对结果的二次处理。可以通过链式调用的方式增加你的操作。同时去掉了FilterModifWord类,用Recognition重新来实现。
  • 删除了DownLibrary.java 类的功能。不再提供自动下载模型的方式
  • 其他有待发现的新功能

#2016年1月14日

经过了很久很久.如大家所看.最后一次事件纪要是一年半以前.没什么好说的了.之前因为我的不负责任让这个项目停滞了好久.这次做了很多改进.断断续续,大致如下

  • 大幅提升了NlpAnalysis的准确性
  • 将crfmodel 从jar包中移除.提供DownLibrary进行下载
  • 增加了用户自定义词典优先的功能.(原谅我曾经的倔强)通过UserDefineAnalysis进行分词
  • 将jar包版本重新改为jdk6
  • 关键词提取增加keyword关键词.可以只是英文了算是
  • 其他种种.....祝愿所有人身体健康万事如意.也祝愿我自己

#2014年6月13日

额,今天是黑色星期五。正在紧张而有序的在做ansj2.0版本的升级。如果你用的版本是2.0x都是预览版。不保证稳定性。所以非版本控。不要跟着更新,这次修改的内容主要有:

  • 修复对reader流偏移量的错误。主要是因为\n\r造成的不可读错误
  • 修复term类的get方法乱用的错误。主要是为了让term对象更好的被json序列号
  • 对核心词典的重构。
  • 放弃tree-split。jar 迁移到nlp-lang.jar中。nlp-lang是我的一个新项目。内容多多大家又兴趣可以到https://github.com/nlpchina/nlp-lang去看看。
  • 重构crf模块。让每个人可以训练自己的crf。补充文档。

#2014年3月10日

此次更新,对tree-split中潜伏了n久的偏移量错误进行了修正。之所以修改这个是要作关键字标红。所以理所当然我把摘要做了,同时对关键词抽取作了一些补充了规则。目前摘要还处于alaph阶段。说白了,光一个摘要都能写一篇博士论文,对于开放场景的摘要其实未必需要高深的算法,这个可以在工程中用,能用,简单,但是无法做到行业顶级,每一个应用如果要做细作精,必须去结合自己的需求,以及业务来作。所以这些基础件理念是用20%的工作完成80%的功能。突然想起一句广告词。好不好看疗效。俄。。。写到这里发现走题了。总结下。这次新增了 。摘要 ,基于query的摘要 ,文章标红,优化了关键词抽取。等功能。很想做一件事情,做一个开源的nlp处理工具包。包括摘要,关键词抽取,倾向性分析,主题发现等功能,不在这里做了另起一个项目。有兴趣的可以联系我。加油

#2014年2月10日

终于把文档补全,因为时间比较仓促。本人比较懒,也不喜欢写字。所以断断续续的,大致也有了个好的结果。比较让人高兴的是我找到了一个写文档的方式。之写markdown文件。然后用ajax调用marked进行渲染最后通过hightlight插件。对code标记。:-)全部js搞定。也得力于上面两个优秀的开源项目,妈妈再也不担心我的文档了。:-)。对了利用过年这几天,分词做了大量的改动。经过多次的内心挣扎,放弃了一些分词结果较好的办法。将分词程序控制到了50m一下。对于不需要新词发现的用户。比如做搜索建议用ansj_min版本。只有4m左右大小。方便移动节能环保。

#2014年1月21日

增加了crf模型的解析。用crf来做未登录词的识别。取得了不错的效果,增加了对长词的进一步解析。将颗粒度防到最低。但是随之而来的影响造成了。分词jar包过大。大约有500多m,无法很顺利发布到git 和 maven库中。试了oschina的maven库也是不可以。如果没有很好的方案。ansj决定放弃maven支持。对于这方面需求的朋友只能说非常抱歉了。我不想因为担心项目的庞大。而畏首畏尾。当然对于jar包的发布可能选择云盘的方案。对于用于搜索的朋友。不建议跟着更新。因为index分词没有作更多的改变。祝好。剩下今年的时间(阴历),有下面几个打算。重构代码。优化里面的关键性算法。完善文档。随缘

#2013年12月12日

把由字构词的方式加到了分词中,对未登录词有了很大的提高。对外国人名的识别做了特定的优化。目前正在测试中。新增了httpserver 的控制台。可以直接方便调用分词结果

#2013年9月26日

我更新完了发表此帖为止的一次更新。在核心辞典上作了一些手脚。这个版本更像以前的版本。在分词的颗粒度上保持了优良的传统。尤其是面向搜索的用户。一定要更新

#2013年08月28日

经过无数网友的抗议。ansj终于支持了maven。在这里感谢帮我把项目转换到maven的那个兄弟。你qq我找不到了。名字我也忘记了。

#改进

断断续续修改了无数个版本。在csdn的搜索系统上。用12年的历史数据.检索分析等.ansj经受住了考验。但是根据网友和自己的发现。找到了项目中的很多不足于是。开工。。。。。 同时在改进的过程中。我认识了更多的朋友。太多了。恩还有在读这篇文章的你。感谢你们对这个小工具的支持。在这里不一一例举了。主要找你们的名字比较麻烦。而我有是个很懒惰的人

#崩溃

如大多数的开源者一样,项目带来了很多负担

比如。在你工作或者思考的时候。别人就会打断你的思路。qq or email 提出了数个问题。或者bug。当然这些中大多都是友善的很有意义的建议。一方面让我更加坚定做好这个开源分词的决心。另一方面也给我的工作生活带来了一些效率上的影响。大多数提问我都是会回答。而且尽可能的保持耐心。但是如果有怠慢的地方。我在这里对大家表示歉意。

#诞生

2012年9月7日 日Ansj中文分词。在我整整一夜的奋斗中终于完成了,真的是一夜的奋斗。写着写着一抬头天亮了。当然中间的快乐与心酸这里就不牢骚了。

通过微薄@了52nlp希望他能帮我推广下。在他的帮助下。ansj结识了很多朋友。@完后我就去睡觉了。辗转的一个夜晚。当下午醒来的时候。很多人微薄@我。我开玩笑的和cq说。我火了。

同时也@了我的启蒙导师张华平老师。他对我表示了支持。在这里感谢他

About

ansj分词.ict的真正java实现.分词效果速度都超过开源版的ict. 中文分词,人名识别,词性标注,用户自定义词典

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.3%
  • HTML 0.7%

AltStyle によって変換されたページ (->オリジナル) /