? ? ? ? 目前以深度学习对文本自动添加标点符号研究很少,已知的开源项目并不多,详细的介绍就更少了,但对文本自动添加标点符号又在古文识别语音识别上有重大应用。
? ? ? ? 基于此,本文开始讲解基于PaddleNLP的深度学习对文本自动添加标点符号的应用和研究,本文先讲解下,如何从PaddleSpeech提取通用的添加标点符号模型。
使用方法: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: 今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。
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的依赖包才可实现,代码量虽然很少,但依赖包太大。
如下:
找出下面的代码,并单独建立
根据model_alias.py文件,内置了三个标点符号预测模型:
分别下载该三个模型,后面预测将用到,文章后面有下载链接。
提取之后核心代码就只有3个py文件,还需要对infer.py代码做一部分小小的改动,提取后的代码在文章最新可下载,可以对比PaddleSpeech源码进行查看。
添加测试模型和测试代码,如下:
运行test.py文件,输出结果:
Text Result: 今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。???????
? ? ? ? 本章讲解的已经完毕,主要是从PaddleSpeech中将添加标点符号的模型和代码提取出来,做单独处理,方便集成在其他第三方语言识别或项目中。
自动添加标点符号模型下载:
ernie_linear_p7_wudao-punc-zh???????
ernie_linear_p3_wudao_fast-punc-zh
提取后的代码下载: