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的分词统计的更多相关文章

  1. R(八): R分词统计-老九门

    分析文本内容基本的步骤:提取文本中的词语 -> 统计词语频率 -> 词频属性可视化.词频:能反映词语在文本中的重要性,一般越重要的词语,在文本中出现的次数就会越多.词云:让词语的频率属性可 ...

  2. lucene6+HanLP中文分词

    1.前言 前一阵把博客换了个模版,模版提供了一个搜索按钮,这让我想起一直以来都想折腾的全文搜索技术,于是就用lucene6.2.1加上HanLP的分词插件做了这么一个模块CSearch.效果看这里:h ...

  3. 菜鸟如何使用hanlp做分词的过程记录

    菜鸟如何使用hanlp做分词的过程记录 最近在学习hanlp的内容,准备在节后看看有没有时间整理一波hanlp分享下,应该还是会像之前分享DKHadoop一样的方式吧.把整个学习的过程中截图在配文字的 ...

  4. 全文检索Solr集成HanLP中文分词

    以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在 ...

  5. Elasticsearch:hanlp 中文分词器

    HanLP 中文分词器是一个开源的分词器,是专为Elasticsearch而设计的.它是基于HanLP,并提供了HanLP中大部分的分词方式.它的源码位于: https://github.com/Ke ...

  6. 全文检索Solr集成HanLP中文分词【转】

    以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在 ...

  7. HanLP中文分词Lucene插件

    基于HanLP,支持包括Solr(7.x)在内的任何基于Lucene(7.x)的系统. Maven <dependency> <groupId>com.hankcs.nlp&l ...

  8. jieba库分词统计

    代码在github网站,https://github.com/chaigee/chaigee,中的z3.py文件 py.txt为团队中文简介文件 代码运行后词频统计使用xlwt库将数据发送到excel ...

  9. 仿分词统计的MapReduce 程序。

    HDFS 数据格式 :  举例单条数据:02-26 08:01:56 [qtp512249001-42] INFO  async-statistics - class com.spring.aop.S ...

随机推荐

  1. Codeforces Round #668 (Div. 2)A-C题解

    A. Permutation Forgery 题目:http://codeforces.com/contest/1405/problem/A 题解:这道题初看有点吓人,一开始居然想到要用全排序,没错我 ...

  2. Python - 网易邮箱邮件阅读和删除辅助小脚本

    摘要:[原创]转载请注明作者Johnthegreat和本文链接 简介:在Windows下的网易邮箱大师客户端中,阅读邮件时,可以使用快捷键Delete删除邮件,然后自动跳到下一封,如果再按一次Dele ...

  3. 采用GitOps的11大原因

    Kubernetes允许我们单纯地使用声明性的配置文件来管理我们的应用部署和其他基础设施组件(例如,我们现在都是YAML开发者).这使我们能够把所有这些文件放到Git仓库中,然后把它挂到流水线上(Je ...

  4. jenkins安装和邮件配置

    一.jenkins下载 Jenkins的下载地址是https://jenkins.io/download/,下载的时候可以选择各个版本的以及对应操作系统的版本,一般你下载的时候下载通用的.war文件即 ...

  5. Kubernetes的资源控制器和Service(四)

    一.定义和分类 1,定义 k8s 中内建了很多控制器(controller ),这些相当于一个状态机,用来控制 Pod 的具体状态和行为. 2,类型 ReplicationController.Rep ...

  6. jackson序列化与反序列化的应用实践

    jackson序列化与反序列化的应用实践 源码地址: https://github.com/zhouweixin/serializable 1 相关概念 序列化: 把对象转换为字节序列的过程称为对象的 ...

  7. oracle分区怎么使用

    1.什么是分区 分区的实质是把一张大表的数据按照某种规则使用多张子表来存储.然后这多张子表使用统一的表名对外提供服务,子表实际对用户不可见.类似于在多张子表上建立一个视图,然后用户直接使用该视图来访问 ...

  8. js 去掉字符串最后一个逗号:笑死我了

    今天突然遇到js 去掉字符串最后一个逗号的问题,本想偷懒搜个代码吧,没想到看到百度的第一条记录是这么一篇文章. 网易博客: http://blog.163.com/li_crane/blog/stat ...

  9. CEO的行为风格会影响公司业绩吗?

    中国的两大互联网巨头--腾讯和阿里,创始人的风格非常不同.在公众面前,马云的形象是高谈阔论,而马化腾则显得较为低调.在公司管理上,马云不插手具体事务,而是站在高处务虚,抓战略.抓文化,而马化腾则是腾讯 ...

  10. Golang的Context介绍及其源码分析

    简介 在Go服务中,对于每个请求,都会起一个协程去处理.在处理协程中,也会起很多协程去访问资源,比如数据库,比如RPC,这些协程还需要访问请求维度的一些信息比如说请求方的身份,授权信息等等.当一个请求 ...