分词Hanlp的介绍和在Java中基本使用
Hanlp
简介:
HanLP 是一系列模型与算法组成的NLP工具包,目标是普及自然语言处理在生产环境中的应用。
功能:
中文分词:
HMM-Bigram(速度与精度最佳平衡;一百兆内存)
最短路分词、N-最短路分词
由字构词(侧重精度,全世界最大语料库,可识别新词;适合NLP任务)
感知机分词、CRF分词
词典分词(侧重速度,每秒数千万字符;省内存)
极速词典分词
所有分词器都支持:
索引全切分模式
用户自定义词典
兼容繁体中文
训练用户自己的领域模型
词性标注:
HMM词性标注(速度快)
感知机词性标注、CRF词性标注(精度高)
命名实体识别:
基于HMM角色标注的命名实体识别 (速度快)
中国人名识别、音译人名识别、日本人名识别、地名识别、实体机构名识别
基于线性模型的命名实体识别(精度高)
感知机命名实体识别、CRF命名实体识别
关键词提取:
TextRank关键词提取
自动摘要:
TextRank自动摘要
短语提取:
基于互信息和左右信息熵的短语提取
拼音转换:
多音字、声母、韵母、声调
简繁转换:
简繁分歧词(简体、繁体、臺灣正體、香港繁體)
文本推荐:
语义推荐、拼音推荐、字词推荐
依存句法分析:
基于神经网络的高性能依存句法分析器
基于ArcEager转移系统的柱搜索依存句法分析器
文本分类:
情感分析
文本聚类:
KMeans、Repeated Bisection、自动推断聚类数目k
word2vec:
词向量训练、加载、词语相似度计算、语义运算、查询、KMeans聚类
使用:
1.导入依赖
com.hankcs hanlp portable-1.8.3
2.全部功能需要下载词典和模型。
需要在配置文件中进行引入。
部分api
1.基本分词
// 创建分词器 Segment segment = HanLP.newSegment(); // 对文本进行分词 List termList = segment.seg("HanLP分词器的使用非常方便"); // 遍历分词结果 for (Term term : termList) { System.out.println(term.word); }
2.词性标注
// 创建分词器 Segment segment = HanLP.newSegment(); // 对文本进行分词并进行词性标注 List termList = segment.seg("HanLP词性标注的例子"); // 遍历分词结果,输出词汇和词性 for (Term term : termList) { System.out.println(term.word + " " + term.nature); }
3.关键词提取
// 对文本进行关键词提取 List keywordList = HanLP.extractKeyword("HanLP关键词提取的例子", 5); // 输出关键词列表 System.out.println(keywordList);
4.自定义词典的使用
1.添加自定义词汇:
使用 CustomDictionary.add(word, nature) 方法向自定义词典中添加词汇。word 参数是要添加的词汇,nature 参数是该词汇的词性。
CustomDictionary.add("自定义词汇", "custom_nature");
这样就向自定义词典中添加了一个词汇 "自定义词汇",并指定了它的词性为 "custom_nature"。
2.删除自定义词汇:
如果需要删除自定义词典中的某个词汇,可以使用 CustomDictionary.remove(word) 方法。
CustomDictionary.remove("自定义词汇");
3.分词时使用自定义词典:
在分词时,可以通过 Segment 对象使用自定义词典。
String sentence = "我喜欢使用自定义词典" Segment segment = HanLP.newSegment(); List termList = segment.seg(sentence); for (Term term : termList) { System.out.println(term.word + " " + term.nature); }
在这个例子中,分词的结果将包含自定义词典中添加的词汇。