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

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
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


相关文章
|
缓存 Java 应用服务中间件
一文带你使用xxl-job定时任务
将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。 将任务抽象成分散的JobHandler,交由“执行器”统一管理,“执行器”负责接收调度请求并执行对应的JobHandler中业务逻辑。 因此,“调度”和“任务”两部分可以相互解耦,提高系统整体稳定性和扩展性;
4851 0
一文带你使用xxl-job定时任务
|
机器学习/深度学习 自然语言处理 算法
7.1.3、使用飞桨实现基于LSTM的情感分析模型
该文章介绍了如何使用飞桨(PaddlePaddle)实现基于长短时记忆网络(LSTM)的情感分析模型,包括数据处理、网络定义、模型训练、评估和预测的详细步骤。
|
8月前
|
存储 弹性计算 数据管理
阿里云OSS对象存储收费标准价格表:流量包+存储包2025最新整理
阿里云OSS对象存储2025收费标准及请求费用等,提供按量付费与包年包月两种模式。标准型本地冗余存储按量价为0.09元/GB/月,包年包月如500GB仅118.99元/年。流量费仅收公网出方向,闲时0.25元/GB、忙时0.5元/GB。更多详情见官网。
3422 2
|
SQL Java 关系型数据库
SpringBoot 系列之 MyBatis输出SQL日志
这篇文章介绍了如何在SpringBoot项目中通过MyBatis配置输出SQL日志,具体方法是在`application.yml`或`application.properties`中设置MyBatis的日志实现为`org.apache.ibatis.logging.stdout.StdOutImpl`来直接在控制台打印SQL日志。
SpringBoot 系列之 MyBatis输出SQL日志
|
存储 Android开发
安卓app,MediaPlayer播放本地音频 | 按钮控制播放和停止
在Jetpack Compose中,不直接操作原生Android组件如`Button`和`MediaPlayer`,而是使用Compose UI构建器定义界面并结合ViewModel管理音频播放逻辑。以下示例展示如何播放本地音频并用按钮控制播放/停止:创建一个`AudioPlayerViewModel`管理`MediaPlayer`实例和播放状态,然后在Compose UI中使用`Button`根据`isPlaying`状态控制播放。记得在`MainActivity`设置Compose UI,并处理相关依赖和权限。
|
SQL 关系型数据库 MySQL
MySQL DCL(数据控制语言)详解与实践
MySQL DCL(数据控制语言)详解与实践
|
运维 监控 应用服务中间件
LNMP详解(十四)——Nginx日志详解
LNMP详解(十四)——Nginx日志详解
419 2
|
Java 数据库连接 mybatis
Mybatis之分页插件
【1月更文挑战第5天】 一、分页插件使用步骤 1、添加依赖 2、配置分页插件 二、分页插件的使用 1、开启分页功能 2、分页相关数据 方法一:直接输出 方法二使用PageInfo 常用数据:
244 1
|
存储 缓存 运维
Redis专题(持续更新) 03-VIP-Redis高可用集群之水平扩展
本文介绍了如何通过水平扩展来提升Redis高可用集群的性能和可用性。文章首先展示了如何启动整个集群,并使用客户端连接至特定端口的Redis实例以及查看集群状态。接着详细介绍了增加Redis实例的步骤,包括配置新的主节点和从节点,并使用命令进行节点的添加和删除操作。其中还包括了重新分片操作以及将从节点指定给主节点的过程。最后,文章以删除主节点为结束,展示了如何将数据迁移至其他节点后进行节点的删除操作。整篇文章详细介绍了Redis高可用集群的水平扩展操作,对于需要扩展Redis集群的运维人员具有一定的指导意义。
323 0
|
存储 并行计算 算法
FlashAttention算法详解
这篇文章的目的是详细的解释Flash Attention,为什么要解释FlashAttention呢?因为FlashAttention 是一种重新排序注意力计算的算法,它无需任何近似即可加速注意力计算并减少内存占用。所以作为目前LLM的模型加速它是一个非常好的解决方案,本文介绍经典的V1版本,最新的V2做了其他优化我们这里暂时不介绍。因为V1版的FlashAttention号称可以提速5-10倍,所以我们来研究一下它到底是怎么实现的。
1000 0