自然语言处理hanlp------4词典

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
简介: 自然语言处理hanlp------4词典

前言

我们学习只考虑hanlp词典(其他词典:互联网词库和清华大学开放中文词库等)

一、词库的格式了解

image.png


第一列是词典的单词本身,第二列和第三列是词性与词频,当然一个词可能有很多词性,之后就会有第四列和第五列的词性和词频


例如下图的

20201222105250622.png


二、词典的加载


1.引入数据

去GitHub下载对应使用的版本的资源包

2020122210543941.png


将其复制后放置在idea如下结构位置:

image.png


至于model,下载的文件里面目前只有一个说明文档,先不管,之后如有需要了,我们再去下载模型包


2.开始使用

创建demo,类名随便起,根据你自己的喜好

代码如下(示例):

public class NaiveDictionaryBasedSegmentation
{
    public static void main(String[] args) throws IOException {
        // 加载词典
        TreeMap<String, CoreDictionary.Attribute> dictionary =
                IOUtil.loadDictionary("此处填写你自己的文件的路径,下面附上我的截图");
        System.out.printf("词典大小:%d个词条\n", dictionary.size());
        System.out.println(dictionary.keySet().iterator().next());
    }
}

image.png

路径可以直接右键点击txt文件后copy path即可


执行代码

得到结果:

image.png

第一行显示的词条总数

第二行显示的是词典中第一个单词是什么在这里插入代码片


词典大小:85584个词条
±
Process finished with exit code 0


最后

Python版同理

此处附上代码及演示截图:

# -*- coding:utf-8 -*-
from pyhanlp import *
def load_dictionary():
    """
    加载HanLP中的mini词库
    :return: 一个set形式的词库
    """
    IOUtil = JClass('com.hankcs.hanlp.corpus.io.IOUtil')
    path = HanLP.Config.CoreDictionaryPath.replace('.txt', '.mini.txt')
    dic = IOUtil.loadDictionary([path])
    return set(dic.keySet())
if __name__ == '__main__':
    dic = load_dictionary()
    print(len(dic))
    print(list(dic)[0])


稍作解释:

JClass来根据java包名获取Python类

HanLP.Config.CoreDictionaryPath根据之前的配置文件来获取词典位置

为了方便加载更快,换用mini.txt,故使用replace来替换路径中的后缀


但是,此处我有点迷,最终结果的第二行输出并不是词典第一个单词,我对代码进行了稍微修改,输出了文件的路径,并打开文件对照,仍然不对,此处问题等待我之后明白之后再回改此博客,暂时不做处理。

20201222111858326.png


相关文章
|
监控 NoSQL Redis
MetricBeat监控Redis
MetricBeat监控Redis
|
机器学习/深度学习 自然语言处理 算法
7.1.3、使用飞桨实现基于LSTM的情感分析模型
该文章介绍了如何使用飞桨(PaddlePaddle)实现基于长短时记忆网络(LSTM)的情感分析模型,包括数据处理、网络定义、模型训练、评估和预测的详细步骤。
|
6月前
|
存储 弹性计算 数据管理
阿里云OSS对象存储收费标准价格表:流量包+存储包2025最新整理
阿里云OSS对象存储2025收费标准及请求费用等,提供按量付费与包年包月两种模式。标准型本地冗余存储按量价为0.09元/GB/月,包年包月如500GB仅118.99元/年。流量费仅收公网出方向,闲时0.25元/GB、忙时0.5元/GB。更多详情见官网。
2488 2
|
存储 Android开发
安卓app,MediaPlayer播放本地音频 | 按钮控制播放和停止
在Jetpack Compose中,不直接操作原生Android组件如`Button`和`MediaPlayer`,而是使用Compose UI构建器定义界面并结合ViewModel管理音频播放逻辑。以下示例展示如何播放本地音频并用按钮控制播放/停止:创建一个`AudioPlayerViewModel`管理`MediaPlayer`实例和播放状态,然后在Compose UI中使用`Button`根据`isPlaying`状态控制播放。记得在`MainActivity`设置Compose UI,并处理相关依赖和权限。
|
人工智能 搜索推荐 vr&ar
从一键部署热门游戏幻兽帕鲁到探索未来个人元宇宙
用游戏的方式探索兴趣爱好并与前沿技术相结合的方式,驱动我们自我学习提升,从而升值加薪,走向自由,朝着构建我们个人的元宇宙世界而努力,更重要的是让我们更快乐的生活。
109172 55
|
JavaScript
Node.js GET/POST请求
Node.js GET/POST请求
57 1
|
SQL 关系型数据库 MySQL
MySQL DCL(数据控制语言)详解与实践
MySQL DCL(数据控制语言)详解与实践
|
运维 监控 应用服务中间件
LNMP详解(十四)——Nginx日志详解
LNMP详解(十四)——Nginx日志详解
356 2
|
Java 数据库连接 mybatis
Mybatis之分页插件
【1月更文挑战第5天】 一、分页插件使用步骤 1、添加依赖 2、配置分页插件 二、分页插件的使用 1、开启分页功能 2、分页相关数据 方法一:直接输出 方法二使用PageInfo 常用数据:
204 1
|
存储 缓存 运维
Redis专题(持续更新) 03-VIP-Redis高可用集群之水平扩展
本文介绍了如何通过水平扩展来提升Redis高可用集群的性能和可用性。文章首先展示了如何启动整个集群,并使用客户端连接至特定端口的Redis实例以及查看集群状态。接着详细介绍了增加Redis实例的步骤,包括配置新的主节点和从节点,并使用命令进行节点的添加和删除操作。其中还包括了重新分片操作以及将从节点指定给主节点的过程。最后,文章以删除主节点为结束,展示了如何将数据迁移至其他节点后进行节点的删除操作。整篇文章详细介绍了Redis高可用集群的水平扩展操作,对于需要扩展Redis集群的运维人员具有一定的指导意义。
294 0