基于PaddleNLP的深度学习对文本自动添加标点符号(一)

发布时间:2023年12月17日

前言

? ? ? ? 目前以深度学习对文本自动添加标点符号研究很少,已知的开源项目并不多,详细的介绍就更少了,但对文本自动添加标点符号又在古文识别语音识别上有重大应用。

? ? ? ? 基于此,本文开始讲解基于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

提取后的代码下载:

下载地址

文章来源:https://blog.csdn.net/YY007H/article/details/134745807
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。