前言
目前以深度学习对文本自动添加标点符号研究很少,已知的开源项目并不多,详细的介绍就更少了,但对文本自动添加标点符号又在古文识别语音识别上有重大应用。
基于此,本文开始讲解基于PaddleNLP的深度学习对文本自动添加标点符号的应用和研究,本文先讲解下,如何从PaddleSpeech提取通用的添加标点符号模型。
开始
一、PaddleSpeech的添加标点符号使用介绍
-
1、命令行 (推荐使用)
-
paddlespeech text --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭
-
paddlespeech text --help
input
(必须输入):原始文本。task
:子任务,默认值:punc
。model
:文本模型类型,默认值:ernie_linear_p7_wudao
。lang
:模型语言, 默认值:zh
。config
:文本任务的配置文件,若不设置则使用预训练模型中的默认配置,默认值:None
。ckpt_path
:模型参数文件, 若不设置则下载预训练模型使用,默认值:None
。punc_vocab
:标点恢复任务的标点词表文件,默认值:None
。device
:执行预测的设备,默认值:当前系统下 paddlepaddle 的默认 device。
输出:
-
[2021-12-14 19:50:22,200] [ INFO] [log.py] [L57] - Text Result: 今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。
-
2、Python API
import paddle from paddlespeech.cli.text import TextExecutor text_executor = TextExecutor() result = text_executor( text='今天的天气真不错啊你下午有空吗我想约你一起去吃饭', task='punc', model='ernie_linear_p7_wudao', lang='zh', config=None, ckpt_path=None, punc_vocab=None, device=paddle.get_device()) print('Text Result: \n{}'.format(result))
输出:
-
Text Result: 今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。
根据上面介绍,必须要安装PaddleSpeech的依赖包才可实现,代码量虽然很少,但依赖包太大。
二、标点符号预测核心代码提取
1、核心代码位置
如下:
2、代码提取
找出下面的代码,并单独建立
3、模型文件
根据model_alias.py文件,内置了三个标点符号预测模型:
分别下载该三个模型,后面预测将用到,文章后面有下载链接。
4、提取后代码结构
提取之后核心代码就只有3个py文件,还需要对infer.py代码做一部分小小的改动,提取后的代码在文章最新可下载,可以对比PaddleSpeech源码进行查看。
5、测试提取后的代码
添加测试模型和测试代码,如下:
运行test.py文件,输出结果:
Text Result: 今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。
完毕!!!
本章讲解的已经完毕,主要是从PaddleSpeech中将添加标点符号的模型和代码提取出来,做单独处理,方便集成在其他第三方语言识别或项目中。
自动添加标点符号模型下载:
ernie_linear_p7_wudao-punc-zh
ernie_linear_p3_wudao-punc-zh
ernie_linear_p3_wudao_fast-punc-zh
提取后的代码下载:
下载地址