当前位置: 首页 > 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博客

http://www.lryc.cn/news/426220.html

相关文章:

  • Python 的进程、线程、协程的区别和联系是什么?
  • 实时数据推送:Spring Boot 中两种 SSE 实战方案
  • 数据守护者:SQL一致性检查的艺术与实践
  • jenkins配置+vue打包多环境切换
  • idea和jdk的安装教程
  • HTML静态网页成品作业(HTML+CSS)——电影网首页网页设计制作(1个页面)
  • 大数据系列之:Flink Doris Connector,实时同步数据到Doris数据库
  • LabVIEW VI 多语言动态加载与运行的实现
  • Unity引擎基础知识
  • 练习题- 探索正则表达式对象和对象匹配
  • Java集合提升
  • uniapp 微信小程序生成水印图片
  • ElasticSearch相关知识点
  • css 文字图片居中及网格布局
  • 解决ImportError: DLL load failed while importing _rust: 找不到指定的程序
  • 集合-List去重
  • ST-LINK USB communication error 非常有效的解决方法
  • 探索CSS的:future-link伪类:选择指向未来文档的链接
  • 【C++】序列与关联容器(三)map与multimap容器
  • ActiveMQ、RabbitMQ、Kafka、RocketMQ在优先级队列、延迟队列、死信队列、重试队列、消费模式、广播模式的区别
  • 首款会员制区块链 Geist 介绍
  • CANoe软件中Trace窗口的筛选栏标题不显示(空白)的解决方法
  • 日期类代码实现-C++
  • 【问题记录+总结】VS Code Tex Live 2024 Latex Workshop Springer模板----更新ing
  • Linux运维_Bash脚本_源码安装Go-1.21.11
  • ShareSDK Twitter
  • word2vec 如何用多个词表示一个句子
  • IDEA中查看接口的所有实现类和具体实现类
  • DLL的导出和调用
  • vscode中调试cuda kernel