Jieba分词的准确率提升:使用paddle模式进行分词(使用百度飞桨深度学习模型进行分词)

简介: jieba中的paddle模式是指使用飞桨(PaddlePaddle)深度学习框架加速分词的一种模式。相对于传统的分词算法,paddle模式采用了深度学习模型,可以获得更高的分词准确度和更快的分词速度。

1 Paddle模式简介


jieba中的paddle模式是指使用飞桨(PaddlePaddle)深度学习框架加速分词的一种模式。相对于传统的分词算法,paddle模式采用了深度学习模型,可以获得更高的分词准确度和更快的分词速度。


paddle模式是基于卷积神经网络(Convolutional Neural Network, CNN)实现的。在训练过程中,使用了中文Wikipedia语料库和自动标注语料库,对分词任务进行了有监督的训练。在测试过程中,通过卷积操作将文本转化为特征向量,再经过全连接层和softmax层,最终得到每个字符的概率分布,然后根据概率分布确定分词边界。


77e80dbba7b067592b15fb107467f78f.png



2 Paddle模式的准备


2.1 paddlepaddle库的安装

使用paddle模式分词需要先安装paddlepaddle库:

pip install paddlepaddle

如果安装过慢,可以考虑使用国内的镜像源:

1.  pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple


安装完成后,对安装情况进行检验:

import paddle.fluid
paddle.fluid.install_check.run_check()
1

paddle.fluid.install_check.run_check()是飞桨(PaddlePaddle)框架提供的一个安装检测函数。运行这个函数可以检查当前环境是否满足使用飞桨进行深度学习开发的要求。


2.2 安装完整性检查

run_check()函数会检查当前环境中是否安装了必要的依赖库、是否支持GPU加速、是否能够连接到飞桨的服务器等。如果检测结果为成功,则会输出相应的检测信息;否则会输出具体的错误信息,帮助用户排查问题并解决。

当输出结果为:

Running Verify Fluid Program …
Your Paddle Fluid works well on SINGLE GPU or CPU.
Your Paddle Fluid works well on MUTIPLE GPU or CPU.
Your Paddle Fluid is installed successfully! Let’s start deep Learning with Paddle Fluid now

即代表我们安装成功了。0f3e0b65ff27c536efd0c5c2b6f0146e.png


这段检查可能会遇到使用者警告:

UserWarning: Standalone executor is not used for data parallel
warnings.warn(
W0326 13:38:53.591773 13228 fuse_all_reduce_op_pass.cc:79] Find all_reduce operators: 2. To make the speed faster, some all_reduce ops are fused during training, after fusion, the number of all_reduce ops is 1.

这个警告信息是由飞桨(PaddlePaddle)框架在使用数据并行训练时发出的。数据并行是指将大型神经网络模型划分为多个部分,然后在多个计算节点上同时训练,最后将结果进行汇总。在进行数据并行训练时,需要将不同计算节点上的梯度信息进行同步,以保证训练的正确性和收敛性。cb493ccc4435304fed3e4dc29cf84923.png


这个警告信息实际上包含了两个部分:


UserWarning: Standalone executor is not used for data parallel 表示在进行数据并行训练时,不应该使用独立的执行器(Standalone Executor),而应该使用与数据并行训练相兼容的执行器。如果使用了不兼容的执行器,可能会导致训练结果不正确或者出现异常情况。

Find all_reduce operators: 2. To make the speed faster, some all_reduce ops are fused during training, after fusion, the number of all_reduce ops is 1. 表示在数据并行训练过程中,发现了两个all_reduce算子(用于同步不同计算节点上的梯度信息)。为了提高训练速度,这两个算子会被融合为一个算子,从而减少计算量和通信开销。

在实际的数据并行训练过程中,这个警告信息可以忽略,不会影响训练结果的正确性和收敛性。如果需要进一步了解数据并行训练的细节和优化技巧,可以参考飞桨的相关文档和教程。


3 使用Paddle分词的代码示例


在jieba.cut的分词中,传入use_paddle=True即可开启paddle模式:


import jieba  
import paddle  
paddle.enable_static()  
jieba.enable_paddle()  
text = '动嘴就能写代码,GitHub 将 ChatGPT 引入 IDE,重磅发布 Copilot X'seg_1 = jieba.cut(text, cut_all=False)  
seg_2 = jieba.cut(text, use_paddle=True)  
print('精 确 模 式:', "/".join(seg_1))  
print('paddle模式:', "/".join(seg_2))


其中:paddle.enable_static()用于启用静态图模式,在静态图模式下,程序通过预先构建计算图的方式进行计算,可以提高计算效率。

jieba.enable_paddle()用于启用paddle模式。

这段代码的运行结果为:


e79e5df6430276df05dd06173a18a5e1.png



可以看到对于一些生僻词,如Copilot X,飞桨的深度学习模型可以将其分割出来,大家也可以自行尝试来判断两种模型的好坏。


需要注意的是,启用paddle模式需要满足一定的硬件和软件条件支持,例如需要支持AVX指令集的CPU和安装了CUDNN库的GPU。如果启用paddle模式失败,可以尝试使用其他分词模式。同时,在使用paddle模式时,由于需要加载深度学习模型,可能会增加程序的内存占用量。


相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
11天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品加工优化的深度学习模型
使用Python实现智能食品加工优化的深度学习模型
106 59
|
6天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品市场预测的深度学习模型
使用Python实现智能食品市场预测的深度学习模型
36 5
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的Transformer模型
探索深度学习中的Transformer模型
13 1
|
8天前
|
机器学习/深度学习 算法 开发者
探索深度学习中的优化器选择对模型性能的影响
在深度学习领域,优化器的选择对于模型训练的效果具有决定性作用。本文通过对比分析不同优化器的工作原理及其在实际应用中的表现,探讨了如何根据具体任务选择合适的优化器以提高模型性能。文章首先概述了几种常见的优化算法,包括梯度下降法、随机梯度下降法(SGD)、动量法、AdaGrad、RMSProp和Adam等;然后,通过实验验证了这些优化器在不同数据集上训练神经网络时的效率与准确性差异;最后,提出了一些基于经验的规则帮助开发者更好地做出选择。
|
7天前
|
机器学习/深度学习 算法 数据可视化
使用Python实现深度学习模型:智能食品配送优化
使用Python实现深度学习模型:智能食品配送优化
25 2
|
6天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
22 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
6天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
31 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
12天前
|
机器学习/深度学习 数据采集 数据库
使用Python实现智能食品营养分析的深度学习模型
使用Python实现智能食品营养分析的深度学习模型
39 6
|
9天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品储存管理的深度学习模型
使用Python实现智能食品储存管理的深度学习模型
27 2
|
10天前
|
机器学习/深度学习 算法
深度学习中的模型优化策略
【10月更文挑战第35天】在深度学习的海洋中,模型优化是那把能够引领我们抵达知识彼岸的桨。本文将从梯度下降法出发,逐步深入到动量、自适应学习率等高级技巧,最后通过一个实际代码案例,展示如何应用这些策略以提升模型性能。