HanLPTokenizer HanLP分词器

简介: anlp在功能上的扩展主要体现在以下几个方面:•关键词提取 •自动摘要•短语提取 •拼音转换•简繁转换•文本推荐下面是 hanLP分词器的代码注:使用maven依赖      com.hankcs     hanlp     portable-1.

anlp在功能上的扩展主要体现在以下几个方面:
•关键词提取 
•自动摘要
•短语提取 
•拼音转换
•简繁转换
•文本推荐

下面是 hanLP分词器的代码

注:使用maven依赖 

 
   com.hankcs  
   hanlp  
   portable-1.3.4  
 

使用了java8进行处理

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

import org.apache.commons.lang3.StringUtils;

import com.hankcs.hanlp.seg.Segment;
import com.hankcs.hanlp.seg.Dijkstra.DijkstraSegment;
import com.hankcs.hanlp.seg.NShort.NShortSegment;
import com.hankcs.hanlp.tokenizer.IndexTokenizer;
import com.hankcs.hanlp.tokenizer.NLPTokenizer;
import com.hankcs.hanlp.tokenizer.SpeedTokenizer;
import com.hankcs.hanlp.tokenizer.StandardTokenizer;
public class HanLPTokenizer {

private static final Segment N_SHORT_SEGMENT = new NShortSegment().enableCustomDictionary(false)
.enablePlaceRecognize(true).enableOrganizationRecognize(true);
private static final Segment DIJKSTRA_SEGMENT = new DijkstraSegment().enableCustomDictionary(false)
.enablePlaceRecognize(true).enableOrganizationRecognize(true);

/**

  • 标准分词
  • @param text
  • @return
    */

public static List standard(String text) {
List list = new ArrayList();
StandardTokenizer.segment(text).forEach(term -> {
if (StringUtils.isNotBlank(term.word)) {
list.add(term.word);
}
});

return list.stream().distinct().collect(Collectors.toList());
}

/**

  • NLP分词
  • @param text
  • @return
    */

public static List nlp(String text) {
List list = new ArrayList();
NLPTokenizer.segment(text).forEach(term -> {
if (StringUtils.isNotBlank(term.word)) {
list.add(term.word);
}
});

return list.stream().distinct().collect(Collectors.toList());
}

/**

  • 索引分词
  • @param text
  • @return
    */

public static List index(String text) {
List list = new ArrayList();
IndexTokenizer.segment(text).forEach(term -> {
if (StringUtils.isNotBlank(term.word)) {
list.add(term.word);
}
});

return list.stream().distinct().collect(Collectors.toList());
}

/**

  • 极速词典分词
  • @param text
  • @return
    */

public static List speed(String text) {
List list = new ArrayList();
SpeedTokenizer.segment(text).forEach(term -> {
if (StringUtils.isNotBlank(term.word)) {
list.add(term.word);
}
});

return list;
}

/**

  • N-最短路径分词
  • @param text
  • @return
    */

public static List nShort(String text) {
List list = new ArrayList();
N_SHORT_SEGMENT.seg(text).forEach(term -> {
if (StringUtils.isNotBlank(term.word)) {
list.add(term.word);
}
});

return list.stream().distinct().collect(Collectors.toList());
}

/**

  • 最短路径分词
  • @param text
  • @return
    */

public static List shortest(String text) {
List list = new ArrayList();
DIJKSTRA_SEGMENT.seg(text).forEach(term -> {
if (StringUtils.isNotBlank(term.word)) {
list.add(term.word);
}
});

return list.stream().distinct().collect(Collectors.toList());
}

public static void main(String[] args) {

String text = "测试勿动12";
System.out.println("标准分词:" + standard(text));
System.out.println("NLP分词:" + nlp(text));
System.out.println("索引分词:" + index(text));
System.out.println("N-最短路径分词:" + nShort(text));
System.out.println("最短路径分词分词:" + shortest(text));
System.out.println("极速词典分词:" + speed(text));
}

}

文章来源于猴德华的博客

相关文章
|
7月前
|
自然语言处理 Java Maven
IK分词器安装
IK分词器安装
151 0
|
28天前
|
JSON 自然语言处理 数据格式
ElasticSearchIK分词器的安装与使用IK分词器
ElasticSearchIK分词器的安装与使用IK分词器
41 0
|
9月前
|
自然语言处理 BI
|
11月前
|
自然语言处理 索引
白话Elasticsearch29-IK中文分词之IK分词器配置文件+自定义词库
白话Elasticsearch29-IK中文分词之IK分词器配置文件+自定义词库
238 0
|
11月前
|
自然语言处理 Java
中文分词之Java实现使用IK Analyzer实现
中文分词之Java实现使用IK Analyzer实现
551 0
|
人工智能 自然语言处理 算法
es实战-使用IK分词器进行词频统计
通过IK分词器分词并生成词云
1173 0
es实战-使用IK分词器进行词频统计
|
自然语言处理 搜索推荐 索引
基于hanlp的es分词插件
摘要:elasticsearch是使用比较广泛的分布式搜索引擎,es提供了一个的单字分词工具,还有一个分词插件ik使用比较广泛,hanlp是一个自然语言处理包,能更好的根据上下文的语义,人名,地名,组织机构名等来切分词Elasticsearch默认分词 输出: IK分词 输出: hanlp...
1475 0
|
自然语言处理
Ansj与hanlp分词工具对比
一、Ansj1、利用DicAnalysis可以自定义词库: 2、但是自定义词库存在局限性,导致有些情况无效:比如:“不好用“的正常分词结果:“不好,用”。 (1)当自定义词库”好用“时,词库无效,分词结果不变。
1059 0
HanLP-分类模块的分词器介绍
最近发现一个很勤快的大神在分享他的一些实操经验,看了一些他自己关于hanlp方面的文章,写的挺好的!转载过来分享给大家!以下为分享原文(无意义的内容已经做了删除)如下图所示,HanLP的分类模块中单独封装了适用分类的分词器,当然这些分词器都是对HanLP提供的分词器的封装。
5951 0
|
自然语言处理
HanLP-实词分词器详解
在进行文本分类(非情感分类)时,我们经常只保留实词(名、动、形)等词,为了文本分类的分词方便,HanLP专门提供了实词分词器类NotionalTokenizer,同时在分类数据集加载处理时,默认使用了NotionalTokenizer分词器。
1642 0

热门文章

最新文章