博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HanLPTokenizer HanLP分词器
阅读量:6442 次
发布时间:2019-06-23

本文共 2956 字,大约阅读时间需要 9 分钟。

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));
}

}

文章来源于猴德华的博客

转载地址:http://aicwo.baihongyu.com/

你可能感兴趣的文章
[读书笔记]JavaScript 闭包(Closures)
查看>>
Django restfulframework 开发相关知识 整理
查看>>
linux信息查看手记
查看>>
Delphi考虑sql注入 QuotedStr
查看>>
SpringBoot学习四:整合Mybatis分页插件 PageHelper
查看>>
java集成jpush实现客户端推送
查看>>
Swoole WebSocket 的应用
查看>>
219. 单页应用 会话管理(session、cookie、jwt)
查看>>
【比赛】百度之星2017 初赛Round B
查看>>
AFNetworking之AFSecurityPolicy深入学习
查看>>
JavaScript中的“this”
查看>>
Java中abstract class和interface的区别
查看>>
(OkHttp3+Gson)用MVP模式实现天气预报小demo
查看>>
5G时代下,优质内容依然短视频源码的核心竞争力
查看>>
别再写getter,setter方法了,用Lombok来简化你的代码吧
查看>>
依赖注入
查看>>
Anconda 3.7安装以及使用详细教程
查看>>
scala 学习笔记二 方法与函数
查看>>
微软职位内部推荐-SOFTWARE ENGINEER II
查看>>
如何用公式编辑器编辑直角三角形符号
查看>>