首先之前的ansj2.X版本需要导入两个包ansj_seg-2.0.8-min..jar、nlp-lang-0.2.jar。
现在只需要导入一个包就OK了 简单方便了ansj_seg-5.0.1-all-in-one.jar
好了不说了。直接贴与lucene的代码
其实就这么一句话,就OK了。
public static Analyzer analyzer = new AnsjAnalyzer(AnsjAnalyzer.TYPE.index);
public static void main(String[] args) throws IOException {
Set<String> filter = new HashSet<String>() ;
String stopDicStr = "y" ;
BufferedReader br = new BufferedReader(new StringReader(stopDicStr)) ;
String temp = null ;
while((temp=br.readLine())!=null){
filter.add(temp) ;
}
StringReader reader = new StringReader("测试中华人名共和王y健") ;
Tokenizer tokenizer = new AnsjTokenizer(new IndexAnalysis(reader), filter);
while(tokenizer.incrementToken()){
CharTermAttribute attribute = tokenizer.getAttribute(CharTermAttribute.class) ;
System.out.println(attribute);
}
}
5.0.1 使用的jdk1.6.不过这里上传的包我处理过的。需要用jdk1.7的版本
public static void main(String[] args) {
/**
* 这里我还是要说名下AnsjAnalyzer.TYPE里面有6个参数index, query, to, dic, user, search
* 这个6个参数使用的分词调用方式是不同的。具体调用的是什么分词方式。我下面贴ansj的源码
*
*/
Analyzer ca = new AnsjAnalyzer(TYPE.index);
String content = "王占三李四王五,中华人名共和国xx格原信息技术有限公司" ;
try {
TokenStream tokenStream = ca.tokenStream(content, new StringReader(content)) ;
while(tokenStream.incrementToken()){
CharTermAttribute attribute = tokenStream.getAttribute(CharTermAttribute.class) ;
System.out.println(attribute);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ca.close();
}
/**
* 获得一个tokenizer就是这段了
* IndexAnalysis、DicAnalysis、ToAnalysis 三个调用方式
* @param reader
* @param type
* @param filter
* @return
*/
public static Tokenizer getTokenizer(BufferedReader reader, TYPE type, Set<String> filter) {
Tokenizer tokenizer;
switch (type) {
case index:
if (reader == null) {
tokenizer = new AnsjTokenizer(new IndexAnalysis(), filter);
} else {
tokenizer = new AnsjTokenizer(new IndexAnalysis(reader), filter);
}
break;
case dic:
case user:
if (reader == null)
tokenizer = new AnsjTokenizer(new DicAnalysis(), filter);
} else {
tokenizer = new AnsjTokenizer(new DicAnalysis(reader), filter);
}
break;
case to:
case query:
case search:
if (reader == null) {
tokenizer = new AnsjTokenizer(new ToAnalysis(), filter);
} else {
tokenizer = new AnsjTokenizer(new ToAnalysis(reader), filter);
}
break;
default:
if (reader == null) {
tokenizer = new AnsjTokenizer(new ToAnalysis(), filter);
} else {
tokenizer = new AnsjTokenizer(new ToAnalysis(reader), filter);
}
}
return tokenizer;
}
面向索引的分词-IndexAnalysis:
支持:用户自定义分词,数字识别、人名识别功能:
Result term= IndexAnalysis.parse("材米油盐是一个主副食品");
System.out.println(term.toString());
Iterator<Term> it=term.iterator();
while(it.hasNext()){
org.ansj.domain.Term t=it.next();
if(t.getNatureStr() !=null && !(t.getNatureStr().equalsIgnoreCase("null"))&& t.getNatureStr().startsWith("n")){
System.out.println(t.getNatureStr());
System.out.println(t.getName());
}
}
材/ng,米/q,油盐/n,油/n,盐/n,是/v,一个/m,一/m,个/q,主副食品/n,主副食/n,主/ag,副食品/n,副食/n,副/b,食品/n,食/v,品/ng
用户自定义词典优先级升高-DicAnalysis:
如果你有自定义词库用这个很好
精准分词-ToAnalysis。
好吧,最后说下ansj_seg5.X升级的内容:
1、支持自训练CRF模型的加载。目前支持CRF++ 及 Wapiti两种模型。并提供训练语料的生成工具。
2、将默认crfmodel移动到jar包内。并压缩了大小控制在16m。
3、正式发布了DicAnalysis分词策略,使用户自定义词典优先级升高。如果你用户自定义词典足够强建议用这个方式的分词。
4、将分词结果封装为Result对象。这样便于对结果的二次处理。
5、增加Recognition接口,对结果的二次处理。可以通过链式调用的方式增加你的操作。同时6、去掉了FilterModifWord类,用Recognition重新来实现。
7、删除了DownLibrary.java 类的功能。不再提供自动下载模型的方式
原谅我吧。。。jar太大 ,eye不让上传 这里给你们一个百度云的链接地址:
JAR:
http://pan.baidu.com/s/1hspuLM0
分享到:
相关推荐
ansj_seg-3.7.6,由于maven库无法访问下载,只能直接引用jar包了。
使用此版本的jar包,可以方便地将ANSJ分词集成到Java项目中,实现快速的分词功能。 接下来,我们讨论如何结合nlp-lang配置使用。nlp-lang是一个用于自然语言处理的Java库,它包含了丰富的语言处理组件,如词性标注...
博文链接中,作者分享了使用ansj_seg-master的实际经验,包括如何配置环境、如何使用API进行分词操作以及在实际项目中的应用案例,对于初学者来说是一份很好的参考资料。 总结来说,ansj_seg-master作为一款优秀的...
ansj_seg可能使用了这些技术的某种组合,比如基于HMM(隐马尔可夫模型)或CRF(条件随机场)的模型,也可能包括基于字典的分词和未登录词识别。自定义分词逻辑可能通过提供API接口实现,允许用户添加自己的词汇表、...
《ansj_seg-5.1.3:中文分词与自然语言处理的利器》 在中文文本处理领域,分词是至关重要的第一步,因为它直接影响到后续的语义分析、情感分析、关键词抽取等一系列自然语言处理任务的效果。"ansj_seg-5.1.3"是一个...
ansj_seg-3.7.6-on的jar包,有需要的朋友可以自行下载!
ansj_seg-5.1.2.jar分词架包 5.1.2版本,ansj_seg-5.1.2.jar
ansj_seg-5.1.1.jar
ansj_seg-5.1.6.jar
最新的ansj分词工具jar包,用于在ecplise中使用ansj分词。ansj是由孙健开发的一个基于n-Gram+CRF+HMM的中文分词的java实现。分词速度达到每秒钟大约200万字左右(mac air下测试),准确率能达到96%以上。目前实现了...
ansj,做中文分词的好东西,非常的不错。希望对大家有用处
ansj_seg-5.0.0
ansj_seg-3.7.2工具类
在给定的压缩包中,包含两个重要的jar包:`ansj_seg-5.1.6.jar`和`nlp-lang-1.7.7.jar`,它们分别是ANSJ分词库和NLP工具包的不同版本。 **ANSJ分词库**是由易开源社区开发的一款高效的中文分词工具,其全称为...
ansj_seg-2.0.8.jar
java运行依赖jar包
这是目前来说最新的ansj分词jar包,导入即可使用
本jar包是对ansj_seg-master文件中org.ansj.domain中的属性类进行了序列化,以便使属性对象可以在spark中传输。