1.ansj
ansj是ictclas(中科院分词)的java实现.基本上重写了所有的数据结构和算法.词典是用的开源版的ictclas所提供的.并且进行了部分的人工优化
内存中中文分词每秒钟大约100万字(速度上已经超越ictclas)
文件读取分词每秒钟大约30万字
准确率能达到96%以上
目前实现了: 1.中文分词 2.中文姓名识别 3.用户自定义词典
可以应用到自然语言处理等方面,适用于对分词效果要求高的各种项目.
?
源码下载:
https://github.com/ansjsun/ansj_seg/
文档说明:
http://ansjsun.github.io/ansj_seg/
在线演示:
http://demo.ansj.org/page/index.html
?
入门sample
public static void main(String[] agrs){
?String text = "我要碎觉超级困";
?//未定义词典分词
?System.out.println(ToAnalysis.parse(text));
?//自定义词典 参数依次为:自定义词,词性,词频(值越大,重要度越高)
?UserDefineLibrary.insertWord("碎觉", "n", 1000);
?//定义词典后,分词
?System.out.println(ToAnalysis.parse(text));
}
?
?
2.hanlp
hanlp由一系列模型与算法组成的Java工具包,目标是促进自然语言处理在生产环境中的应用。
HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。
?
和ansj相比,hanlp在功能上的扩展主要体现在以下几个方面:
?关键词提取
?自动摘要
?短语提取
?拼音转换
?简繁转换
?文本推荐
?
项目主页:
https://github.com/hankcs/HanLP
下载地址:
https://github.com/hankcs/HanLP/releases
?
词语推荐部分的sample,支持三种推荐模式:语义推荐 字符推荐 拼音推荐
public static void main(String[] agrs){
??Suggester suggester = new Suggester();
??????? String[] titleArray =
??????? (
??????????????? "威廉王子发表演说 呼吁保护野生动物\n" +
??????????????? "《时代》年度人物最终入围名单出炉 普京马云入选\n" +
??????????????? "“黑格比”横扫菲:菲吸取“海燕”经验及早疏散\n" +
??????????????? "日本保密法将正式生效 日媒指其损害国民知情权\n" +
??????????????? "英报告说空气污染带来“公共健康危机”"
??????? ).split("\\n");
??????? for (String title : titleArray)
??????????? ?suggester.addSentence(title);
??????? //根据语义的推荐?? 通过IdVectorScorer(单词语义向量打分器)实现
??????? System.out.println(suggester.suggest("发言", 1));
??????? //根据字符的推荐?? 通过EditDistanceScorer(编辑距离打分器 )实现
??????? System.out.println(suggester.suggest("危机公共", 1));
??????? //根据拼音的推荐?? 通过PinyinScorer(拼音打分器)实现
??????? System.out.println(suggester.suggest("mayun", 1));
??? }
原文:http://zhao-rock.iteye.com/blog/2297428