hanlp模型Windows系统使用手册

一、模型介绍

面向生产环境的多语种自然语言处理工具包,基于PyTorch和TensorFlow 2.x双引擎,目标是普及落地最前沿的NLP技术。HanLP具备功能完善、精度准确、性能高效、语料时新、架构清晰、可自定义的特点。

借助世界上最大的多语种语料库,HanLP2.1支持包括简繁中英日俄法德在内的130种语言上的10种联合任务以及多种单任务。HanLP预训练了十几种任务上的数十个模型并且正在持续迭代语料库与模型:

功能 模型 标注标准
分词 tok 粗分细分
词性标注 pos CTBPKU863
命名实体识别 ner PKUMSRAOntoNotes
依存句法分析 dep SDUDPMT
成分句法分析 con Chinese Tree Bank
语义依存分析 sdp CSDP
语义角色标注 srl Chinese Proposition Bank
抽象意义表示 amr CAMR
指代消解 暂无 OntoNotes
语义文本相似度 sts 暂无
文本风格转换 暂无 暂无
关键词短语提取 暂无 暂无
抽取式自动摘要 暂无 暂无
生成式自动摘要 暂无 暂无
文本语法纠错 暂无 暂无
文本分类 暂无 暂无
情感分析 暂无 [-1,+1]
语种检测 暂无 ISO 639-1编码

hanlp 开源模型GitHub官方网址:https://github.com/hankcs/HanLP

二、模型下载与安装

基于tensorflow 2.6.0 版本 在pytorch环境下安装此模型 并且版本是hanlp 2.x下

1、模型简易下载

pip install hanlp

建议加上镜像源 建议使用豆瓣源镜像

pip install hanlp -i https://pypi.douban.com/simple/

上述方法是在Anaconda环境 或者python环境中,已存在hanlp模型所有依赖的条件下使用

2、模型完整版下载

pip install hanlp[full] -i https://pypi.douban.com/simple/

注意: 此方法是在环境中不存在tensorflow环境 或者 tensorflow 版本是在2.6.0 版本下进行上述操作,不建议安装更高版本的tensorflow 情况下,再进行安装hanlp模型,否则容易造成环境中的各项依赖出现问题

3、安装结果

三、模型数据下载

官方镜像网站:https://od.hankcs.com/hanlp/data/

完整模型大约为8G,建议从镜像网站中预下载模型,再从本地调用,而不是在线解压

四、解决hanlp.load()方法加载模型,无法直接从本地调用的问题

1、2.x版本下,hanlp.load()函数介绍

从源代码中__init__函数中,读取模型预加载的方法

def load(save_dir: str, verbose=None, **kwargs) -> hanlp.common.component.Component:
    save_dir = hanlp.pretrained.ALL.get(save_dir, save_dir)
        from hanlp.utils.component_util import load_from_meta_file
        if verbose is None:
            from hanlp_common.constant import HANLP_VERBOSE
            verbose = HANLP_VERBOSE
        return load_from_meta_file(save_dir, 'meta.json', verbose=verbose, **kwargs)

  • save_dir ( str ) – 已保存组件的标识符。它可以是远程 URL 或本地路径。
  • verbose-True打印加载进度。
  • **kwargs – 传递给的参数hanlp.common.torch_component.TorchComponent.load(),例如, devices是指定 PyTorch 组件将使用哪些 GPU 设备的有用参数。

2、继续读取pretrained函数中,查看模型默认保存的位置

从官方开发者手册中,可见其介绍

pretrained 函数是 预加载模型的函数,是根据load()函数中定义的位置进行加载数据

该函数定义了有16种,不同类型模型的加载方法

实际上是调用该函数时,会自动在线加载方法中包含的模型位置,并进行下载

我们可以调用一下函数,并打印输出所有模型的加载结果:

import hanlp
print(hanlp.pretrained.ALL)

3、查看hanlp库中,utils工具包中io_util.py 真正解决模型加载问题

4、设置系统环境变量

通过设置系统环境变量,用于加载资源路径

windows powershell 命令 方式
[Environment]::SetEnvironmentVariable("HANLP_HOME", "F:\hanlp_data", "Machine")

其中F:\hanlp_data\model 是我保存模型文件的位置

自行设置系统环境变量 方式
  • 我的电脑→属性→高级系统设置→环境变量→系统环境变量
  • 如果已存在HANLP_HOME,则修改值的位置 如F:\hanlp_data
  • 如果不存在,则新建环境变量名为 HANLP_HOME,变量值为F:\hanlp_data

五、测试修改后的效果

输入以下python命令

import hanlp
# 加载CTB_CONVSEG预训练模型进行分词任务
tokenizer = hanlp.load(hanlp.pretrained.tok.CTB6_CONVSEG)

可以发现,模型的确下载到我们自行定义的位置F:\hanlp_data

尝试对模型进行分词操作

输入以下分词命令

result = tokenizer("工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作")
print(result)

可见,hanlp模型不在需要通过在线加载模型的方式,实现本地加载文件,解决我们c盘空间不足的问题

注:未经作者允许,不得转载此文章

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐