ik 和hanlp_自然语言处理之分词器ansj和hanlp介绍

1.ansj

ansj是ictclas(中科院分词)的java实现.基本上重写了所有的数据结构和算法.词典是用的开源版的ictclas所提供的.并且进行了部分的人工优化

内存中中文分词每秒钟大约100万字(速度上已经超越ictclas)

文件读取分词每秒钟大约30万字

准确率能达到96%以上

目前实现了: 1.中文分词 2.中文姓名识别 3.用户自定义词典

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

入门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在功能上的扩展主要体现在以下几个方面:

•关键词提取

•自动摘要

•短语提取

•拼音转换

•简繁转换

•文本推荐

词语推荐部分的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));

}


版权声明:本文为weixin_39839478原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。