HanLPTokenizer HanLP分词器
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));
}
}
文章来源于猴德华的博客
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
通过写Babel插件理解抽象语法树(翻译)
原文:https://www.sitepoint.com/understanding-asts-building-babel-plugin/ 每天很多JavaScript开发者使用了浏览器提供商还没有实现的语言版本。很多语言特性都只是草案,将来并不能保证会被写进标准。因为了有了Bable项目,才成为了可能。 众所周知,Babel可以把ES6代码转换为ES5代码,并且可以安全运行;同时,Bable允许开发者编写插件在编译时更改JavaScript程序的结构。 今天,我们将看下如何写Bable插件为JavaScript添加默认的不可变数据。这个教程的代码可以从GitHub仓库下载。 语言概述 我们希望设计允许我们把普通的对象和数组字面量通过使用Mori转换为不可变的数据结构的插件。 我希望这样写代码: varfoo= { a: 1 }; varb
- 下一篇
书籍:python游戏编码 Coding Games in Python - 2018
简介 初学者和有经验的程序员可以使用Python来构建和玩电脑游戏,从令人惊叹的脑筋急转弯到具有爆炸性声音效果和3D图形的疯狂动作游戏。 Python中Coding Games的每一章都展示了如何用简单的编号步骤构建一个完整的工作游戏。本书讲授如何使用免费的资源,如PyGame Zero和Blender,为游戏添加动画,音乐,滚动背景,3D风景和其他专业魔法。在构建游戏之后,说明显示了如何使用秘籍来适应它。使用zany Minecraft风格的像素艺术说明了说明。 掌握程序员编写代码所需的关键概念 - 不仅仅是Python,而是所有编程语言。找出bug,循环,标志,字符串,元组,toggle和turtle是什么。学习如何规划和设计终极游戏 - 然后在测试和调试时将其用于销毁。 随着编码理论交织在构建每个游戏的指令中,学习编码变得轻松有趣。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题