hanlp加载预训练模型

hanlp 预训练模型的文档可以参考:https://hanlp.hankcs.com/docs/api/hanlp/pretrained/index.html

得到全部的预训练模型可以使用python代码:

import hanlp

print(hanlp.pretrained.ALL)

在线加载模型

import hanlp

lp_model = hanlp.load(hanlp.pretrained.mtl.CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_SMALL_ZH)

预下载模型

文档中有每个模型的下载链接,可以预先下载,例:

  1. 下载:https://file.hankcs.com/hanlp/transformers/electra_zh_small_20210706_125427.zip模型,

  2. 创建目录结构:

    mkdir ~/.hanlp
    cd .hanlp
    mkdir mtl
    cd mtl
    
  3. 将下载好的模型解压后放到~/.hanlp/mtl/目录下

  4. 然后就使用在线加载的模型即可:

    import hanlp
    
    lp_model = hanlp.load(hanlp.pretrained.mtl.CLOSE_TOK_POS_NER_SRL_DEP_SDP_CON_ELECTRA_SMALL_ZH)
    
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
Hanlp是一款基于Python的自然语言处理工具包,其中包含了许多训练好的模型,同时也支持用户自己训练模型。下面是一个简单的示例,演示如何使用Hanlp训练命名实体识别模型。 首先,需要准备好训练数据。假设我们的训练数据存储在文件`train.txt`中,每行包含一个句子及其对应的命名实体标注,例如: ``` 华为是一家伟大的公司 B-ORG O O O O O 小明在上海工作 B-PER O O B-LOC O ``` 其中,`B-ORG`表示一个实体的开始,`I-ORG`表示实体的中间部分,`O`表示非实体。在本示例中,我们只考虑三种实体类型:人名(`PER`)、地名(`LOC`)和组织机构名(`ORG`)。 接下来,使用Hanlp提供的工具类来读取训练数据,并将其转换为模型需要的格式: ```python from hanlp.datasets.ner.conll03 import CONLL03EnglishDataset from hanlp.pretrained.word2vec import CONLL03_ENGLISH_GLOVE_6B_100D trainset = CONLL03EnglishDataset() trainset.load('train.txt') # 训练的词向量,用于提取句子中的词特征 word2vec = CONLL03_ENGLISH_GLOVE_6B_100D ``` 接下来,定义模型的结构和训练参数: ```python from hanlp.components.ner import TransformerNamedEntityRecognizer model = TransformerNamedEntityRecognizer(word2vec, max_seq_length=128, num_labels=3, hidden_size=128, num_hidden_layers=2, num_attention_heads=2, intermediate_size=512, batch_size=32, lr=5e-5, num_train_epochs=5) ``` 其中,`max_seq_length`表示输入句子的最大长度,`num_labels`表示命名实体的类别数,`hidden_size`表示Transformer模型中隐藏层的大小,`num_hidden_layers`表示隐藏层的数量,`num_attention_heads`表示注意力头的数量,`intermediate_size`表示Transformer中间层的大小,`batch_size`表示每个batch中的样本数量,`lr`表示学习率,`num_train_epochs`表示训练的轮数。 最后,开始训练模型: ```python model.fit(trainset, save_dir='model', pretrained_embeddings_trainable=True) ``` 其中,`save_dir`表示训练好的模型将会保存在哪个文件夹中,`pretrained_embeddings_trainable`表示是否训练训练的词向量。 训练完成后,我们就可以使用训练好的模型来进行命名实体识别了: ```python text = '小明在上海工作' model.predict(text) ``` 上述代码将输出: ``

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆萌的代Ma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值