HanLP的分词统计
HanLP的分词效果
鄙人研究了HanLP,他的分词效果确实还可以,而且速度也比较快,10的数据是9000毫秒
@SneakyThrows
@Override
public LinkedHashMap<String, Integer> hotWordsCount(String text) {
// 存放结果的集合
LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<>();
// 获取停用词词库的路径
String stopWordPath = ClassUtils.getDefaultClassLoader().getResource("static/dictionary/stopwords.txt").getPath();
// 读取停用词表
BufferedReader br = new BufferedReader(new FileReader(stopWordPath));
//调用HanLP.segment()对句子进行分词处理
List<Term> terms = HanLP.segment(text);
// 使用readLine方法,一次读一行,读取待处理文本
ArrayList<String> stopWordList = new ArrayList();
String stopWord;
while ((stopWord = br.readLine()) != null) {
stopWordList.add(stopWord);
}
for (Term term : terms) {
// 判断是否为数字,如果是数字直接选择跳过
if (Pattern.compile("[0-9]*").matcher(term.word).matches()) {
continue;
}
if (term.word.equals("\n")) {
continue;
}
if (term.word.equals("\r")) {
continue;
}
// 如果有停用词
if (stopWordList.contains(term.word.trim())) {
continue;
}
if (stopWordList.contains(term.word.replace(" ", ""))) {
continue;
}
if (term.word.contains("/")) {
continue;
}
// 判断长度
if (term.word.length() >= 2) {
// 说明是第一次
if (linkedHashMap.get(term.word) == null) {
linkedHashMap.put(term.word, 1);
} else {
linkedHashMap.put(term.word, linkedHashMap.get(term.word) + 1);
}
}
}
return linkedHashMap;
}
HanLP的分词统计的更多相关文章
- R(八): R分词统计-老九门
分析文本内容基本的步骤:提取文本中的词语 -> 统计词语频率 -> 词频属性可视化.词频:能反映词语在文本中的重要性,一般越重要的词语,在文本中出现的次数就会越多.词云:让词语的频率属性可 ...
- lucene6+HanLP中文分词
1.前言 前一阵把博客换了个模版,模版提供了一个搜索按钮,这让我想起一直以来都想折腾的全文搜索技术,于是就用lucene6.2.1加上HanLP的分词插件做了这么一个模块CSearch.效果看这里:h ...
- 菜鸟如何使用hanlp做分词的过程记录
菜鸟如何使用hanlp做分词的过程记录 最近在学习hanlp的内容,准备在节后看看有没有时间整理一波hanlp分享下,应该还是会像之前分享DKHadoop一样的方式吧.把整个学习的过程中截图在配文字的 ...
- 全文检索Solr集成HanLP中文分词
以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在 ...
- Elasticsearch:hanlp 中文分词器
HanLP 中文分词器是一个开源的分词器,是专为Elasticsearch而设计的.它是基于HanLP,并提供了HanLP中大部分的分词方式.它的源码位于: https://github.com/Ke ...
- 全文检索Solr集成HanLP中文分词【转】
以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在 ...
- HanLP中文分词Lucene插件
基于HanLP,支持包括Solr(7.x)在内的任何基于Lucene(7.x)的系统. Maven <dependency> <groupId>com.hankcs.nlp&l ...
- jieba库分词统计
代码在github网站,https://github.com/chaigee/chaigee,中的z3.py文件 py.txt为团队中文简介文件 代码运行后词频统计使用xlwt库将数据发送到excel ...
- 仿分词统计的MapReduce 程序。
HDFS 数据格式 : 举例单条数据:02-26 08:01:56 [qtp512249001-42] INFO async-statistics - class com.spring.aop.S ...
随机推荐
- 超详细,Windows系统搭建Flink官方练习环境
如何快速的投入到Flink的学习当中,很多人在搭建环境过程中浪费了太多的时间.一套一劳永逸的本机Flink开发环境可以让我们快速的投入到Flink的学习中去,将精力用在Flink的原理,实战.这也对于 ...
- Linq 下的扩展方法太少了,您期待的 MoreLinq 来啦
一:背景 1. 讲故事 前几天看同事在用 linq 给内存中的两个 model 做左连接,用过的朋友都知道,你一定少不了一个叫做 DefaultIfEmpty 函数,这玩意吧,本来很流畅的 from. ...
- .NET委托,事件和Lambda表达式
委托 委托是什么? 委托是一种引用类型(其实就是一个类,继承MulticastDelegate特殊的类.),表示对具有特定参数列表和返回类型的方法的引用. 每个委托提供Invoke方法, BeginI ...
- Linux curl携带cookie测试接口
问题: 休息在家,被告知要启动测试环境的一个定时任务,但是服务器在内网,连上vpn只能访问内网的开发环境,无法访问测试环境,于是进开发环境服务器,ping测试环境的ip,发现是通的,于是想到通过开发环 ...
- Java并发编程之闭锁与栅栏
一.前言 闭锁与栅栏是在多线程编程中的概念,因为在多线程中,我们不能控制线程的执行状态,所以给线程加锁,让其按照我们的想法有秩序的执行. 闭锁 CountDownLatch,实例化时需要传入一个int ...
- 如何创建本地git分支到远程
创建本地分支到远程: 1.$git init 之后创建的本地仓库默认master分支 如果现在就要$ git branch 查看当前分支,是不显示任何分支的,只有在add,commit文件之后才显示, ...
- Jmeter测试工具
jmeter的简单应用 目录 jmeter的简单应用 1.Jmeter 的基本概念 2.我们 为什么 使用 Jmeter 3.Jmeter的作用 4.Jmeter怎么用 5.安装JAVA环境 6.Jm ...
- 1000000 / 60S 的 RocketMQ 不停机,扩容,平滑升级!
一.背景 1.各业务系统持续迭代过程中,JDK.SpringBoot.RocketMQ Client 等框架也进行了升级,高版本的 RocketMQ Client 发送的消息到低版本中,在控制台中午无 ...
- json与字典的相互转化
json格式初学者如果在编辑器中自己编写一个json格式,可能会出错:虽然json格式本质上也是字符串,但是json格式要求,要使用双引号将key和value括起来: 如果要将上面的字符串格式和jso ...
- pwnable.kr-blackjack-witeup
这是个人对程序逻辑的分析总结. 真的很巧很神奇,理解完程序的逻辑,不知道怎么破解.看了一眼题解,忽然懂了,好神奇哦. 题目说,要获得1000000才能获得flag.经过多次试玩和在分析程序的逻辑,知道 ...