当前位置: 首页 > news >正文

HanLP分词的使用与注意事项

1 概述

HanLP是一个自然语言处理工具包,它提供的主要功能如下:

  • 分词
  • 转化为拼音
  • 繁转简、简转繁
  • 提取关键词
  • 提取短语
  • 提取词语
  • 自动摘要
  • 依存文法分析

下面将介绍其分词功能的使用。

2 依赖

下面是依赖的jar包。

<dependency><groupId>com.hankcs</groupId><artifactId>hanlp</artifactId><version>portable-1.7.8</version>
</dependency>

3 使用

下面demo是往HanLP词典中加入自定义的词和词性。将“国家森林公园”的词性定义为“myCustomWord”。

public static void main(String[] args) {// 往HanLP词典中加入自定义的词和词性CustomDictionary.insert("国家森林公园", "myCustomWord 1");List<Term> termList = HanLP.segment("你好,欢迎来到美丽的大兴安岭国家森林公园");System.out.println(JSON.toJSONString(termList));
}

分词结果如下:

4 注意事项

  • 通过api接口自定义hanlp词典或者自定义词典文件,可以对同一个词设置多个词性
  • 但即使对同一个词设置了多个词性,根据HanLP的模型特征,分词时也只会返回其中一个词性,不会返回多个词性。
  • 另外即使hanlp词典中有多个类似词,分词时也只会返回文本相近词中的一个词

4.1 一个词只会返回一个词性

举例如下,给“国家森林公园” 定义两个词性,分别为:“myCustomWord”,“myCustomWord_new”。但是切词后,对于“国家森林公园”,只返回了一个词性“myCustomWord_new”。

public static void main(String[] args) {// 往HanLP词典中加入自定义的词和词性,一个词设置多个词性CustomDictionary.insert("国家森林公园", "myCustomWord_new 1 myCustomWord 1");List<Term> termList = HanLP.segment("你好,欢迎来到美丽的大兴安岭国家森林公园");System.out.println(JSON.toJSONString(termList));
}

切词后结果如下所示:

4.2 只返回文本相近词中的一个词

案例如下,分词后,只会获取到“国家森林公园”,而没有“森林公园”。

    public static void main(String[] args) {test1();}private static void test1() {// 往HanLP词典中加入自定义的词和词性CustomDictionary.insert("国家森林公园", "myCustomWord 1");CustomDictionary.insert("森林公园", "myCustomWord_common 1");List<Term> termList = HanLP.segment("你好,欢迎来到美丽的大兴安岭国家森林公园");System.out.println(JSON.toJSONString(termList));}

分词后的结果如下所示:

5 参考文献

(1)Hanlp基本使用-CSDN博客

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 代码随想录算法训练营 | 动态规划 part02
  • 通过Fiddler抓包保存网页上的视频(包括Bilibili、B站和其他视频站)亲测可用
  • 学习node.js 二 path模块,os模块,process
  • 增材制造正在加速赋能模具产业转型升级
  • 探究 Element Plus Menu 横向多层级展开组件的 Bug 及解决方案
  • JUC3-共享模型之管程
  • [Linux CMD] 目录与文件相关的命令
  • 6数字基石:掌握计算机语言、多媒体与系统工程
  • C++ | Leetcode C++题解之第341题扁平化嵌套列表迭代器
  • python日志、异常和装饰器的结合
  • LeetCode.676.实现一个魔法字典
  • scoket通信 -- 网络字节序
  • QT:QTableWidget 设置单元格边距
  • 【gitlab】gitlab-ce:17.3.0-ce.0 1:使用docker engine安装
  • 选择排序(C语言)以及选择排序优化
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 30秒的PHP代码片段(1)数组 - Array
  • AngularJS指令开发(1)——参数详解
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Less 日常用法
  • mysql常用命令汇总
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • PaddlePaddle-GitHub的正确打开姿势
  • PHP CLI应用的调试原理
  • Puppeteer:浏览器控制器
  • Solarized Scheme
  • springMvc学习笔记(2)
  • Sublime Text 2/3 绑定Eclipse快捷键
  • ViewService——一种保证客户端与服务端同步的方法
  • vue脚手架vue-cli
  • Yii源码解读-服务定位器(Service Locator)
  • 飞驰在Mesos的涡轮引擎上
  • 复杂数据处理
  • 给初学者:JavaScript 中数组操作注意点
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 深度学习中的信息论知识详解
  • 时间复杂度与空间复杂度分析
  • 实习面试笔记
  • 学习笔记TF060:图像语音结合,看图说话
  •  一套莫尔斯电报听写、翻译系统
  • 用mpvue开发微信小程序
  • - 转 Ext2.0 form使用实例
  • No resource identifier found for attribute,RxJava之zip操作符
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • # .NET Framework中使用命名管道进行进程间通信
  • #HarmonyOS:Web组件的使用
  • #VERDI# 关于如何查看FSM状态机的方法
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (¥1011)-(一千零一拾一元整)输出
  • (纯JS)图片裁剪
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (转) Android中ViewStub组件使用
  • (转)负载均衡,回话保持,cookie