pytorch-textsummary,中文文本摘要实践

这篇具有很好参考价值的文章主要介绍了pytorch-textsummary,中文文本摘要实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pytorch-textsummary,中文文本摘要实践

pytorch-textsummary是一个以pytorch和transformers为基础,专注于中文文本摘要的轻量级自然语言处理工具,支持抽取式摘要等。

目录

  • 数据
  • 使用方式
  • paper
  • 参考

项目地址

  • pytorch-textsummary: https://github.com/yongzhuo/Pytorch-NLU/pytorch_textsummary

数据

数据来源

免责声明:以下数据集由公开渠道收集而成, 只做汇总说明; 科学研究、商用请联系原作者; 如有侵权, 请及时联系删除。

  • chinese_abstractive_corpus, 教育培训行业抽象式自动摘要中文语料:语料库收集了教育培训行业主流垂直媒体的历史文章(截止到2018年6月5日)大约24500条数据集。主要是为训练抽象式模型而整理,每条数据有summary(摘要)和text(正文),两个字段,Summary字段均为作者标注。
  • NLPCC2017-task3-Single Document Summarization, NLPCC 2017 task3 单文档摘要;
  • A Large-Scale Chinese Long-text Extractive Summarization Corpus, 哈工大长文本摘要数据;
  • LCSTS: A Large-Scale Chinese Short Text Summarization Dataset, 哈工大LCSTS短文本摘要数据;
  • 生成式文本摘要可以用一些带标题的文章来训练;

数据格式

1. 文本摘要  (txt格式, 每行为一个json):

1.1 抽取式文本摘要格式:
{"label": [0, 1, 0, 0, 1, 0, 0, 0, 0, 0], "text": ["针对现有法向量估值算法都只能适用于某一类特定形状模型的问题。", "提出三维点云模糊分类的法向量估值算法。", "利用模糊推理系统对模型的点云数据分类。", "根据点云在不同形状区域的分布情况和曲率变化给出模糊规则。", "将点云分成属于平滑形状区域、薄片形状区域和尖锐形状区域三类。", "每类点云对应给出特定的法向量估值算法。", "由于任意模型形状分布的差别。", "其点云数据经过模糊分类后调用相应的估值算法次数会有差别。", "因此采用牙齿模型点云数据验证了算法的可行性。", "经过与三种典型算法比较可以看出本算法估算准确、简单可行。"]}
{"label": [0, 0, 1, 1, 0, 0], "text": ["医院物联网是物联网技术在医疗行业应用的集中体现。", "在简单介绍医院物联网基本概念的基础上。", "结合物联网机制和医院的实际特点。", "探讨了适用于医院物联网的体系结构。", "并分析了构建中的关键技术。", "包括医院物联网的标准建设、中间件技术及嵌入式电子病历的研究与设计等。"]}

使用方式

更多样例sample详情见test/ts

    1. 需要配置好预训练模型目录, 即变量 pretrained_model_dir、pretrained_model_name_or_path、idx等;
    1. 需要配置好自己的语料地址, 即字典 model_config[“path_train”]、model_config[“path_dev”]
    1. cd到该脚本目录下运行普通的命令行即可, 例如: python3 tet_ts_base_train.py , python3 tet_ts_base_pred.py

文本摘要(TS), Text-Summary

# !/usr/bin/python
# -*- coding: utf-8 -*-
# @time    : 2021/2/23 21:34
# @author  : Mo
# @function: 文本摘要, text-summary


# 适配linux
import platform
import json
import sys
import os
path_root = os.path.abspath(os.path.join(os.path.dirname(__file__), "../.."))
path_sys = os.path.join(path_root, "pytorch_nlu", "pytorch_textsummary")
sys.path.append(path_sys)
print(path_root)
print(path_sys)

from tsTools import get_current_time
from tsConfig import model_config
from tsRun import TextSummary


# 预训练模型地址, 本地win10默认只跑2步就评估保存模型
if platform.system().lower() == 'windows':
    # pretrained_model_dir = "D:/pretrain_models/pytorch"
    pretrained_model_dir = "E:/DATA/bert-model/00_pytorch"
    evaluate_steps = 32  # 评估步数
    save_steps = 32  # 存储步数
else:
    pretrained_model_dir = "/pretrain_models/pytorch"
    evaluate_steps = 320  # 评估步数
    save_steps = 320  # 存储步数
    ee = 0


if __name__ == "__main__":

    # 训练-验证语料地址, 可以只输入训练地址
    path_corpus = os.path.join(path_root, "pytorch_nlu", "corpus", "text_summary", "maths_toy")
    path_train = os.path.join(path_corpus, "train.json")
    path_dev = os.path.join(path_corpus, "dev.json")

    model_config["evaluate_steps"] = evaluate_steps  # 评估步数
    model_config["save_steps"] = save_steps  # 存储步数
    model_config["path_train"] = path_train
    model_config["path_dev"] = path_dev
    model_config["lr"] = 1e-5  # 测试语料, 可为None
    model_config["max_len"] = 256  # 测试语料, 可为None
    model_config["batch_size"] = 32  # 测试语料, 可为None
    model_config["loss_type"] = "SOFT_MARGIN_LOSS"  # 测试语料, 可为None
    model_config["is_dropout"] = True  #
    model_config["is_adv"] = False  # 测试语料, 可为None


    # 预训练模型适配的class
    model_type = ["BERT", "ERNIE", "BERT_WWM", "ALBERT", "ROBERTA", "XLNET", "ELECTRA"]
    pretrained_model_name_or_path = {
        "BERT_WWM": pretrained_model_dir + "/chinese_wwm_pytorch",
        "ROBERTA": pretrained_model_dir + "/chinese_roberta_wwm_ext_pytorch",
        "ALBERT": pretrained_model_dir + "/albert_base_v1",
        "XLNET": pretrained_model_dir + "/chinese_xlnet_mid_pytorch",
        # "ERNIE": pretrained_model_dir + "/ERNIE_stable-1.0.1-pytorch",
        "ERNIE": pretrained_model_dir + "/ernie-tiny",
        "BERT": pretrained_model_dir + "/bert-base-chinese",
        # "BERT": pretrained_model_dir + "/mengzi-bert-base/",
    }
    idx = 0  # 选择的预训练模型类型---model_type
    model_config["pretrained_model_name_or_path"] = pretrained_model_name_or_path[model_type[idx]]
    model_config["model_save_path"] = "../output/text_summary/model_{}".format(model_type[idx])
    model_config["model_type"] = model_type[idx]
    # main
    lc = TextSummary(model_config)
    lc.process()
    lc.train()


# shell
# nohup python  tcRun.py > tc.log 2>&1 &
# tail -n 1000  -f tc.log
# |myz|

paper

文本摘要(TS), Text-Summary

  • BertSum: Fine-tune BERT for Extractive Summarization

参考

This library is inspired by and references following frameworks and papers.

  • GPT2-NewsTitle: https://github.com/liucongg/GPT2-NewsTitle
  • BertSum: https://github.com/nlpyang/BertSum

Reference

For citing this work, you can refer to the present GitHub project. For example, with BibTeX:

@software{Pytorch-NLU,
    url = {https://github.com/yongzhuo/Pytorch-NLU},
    author = {Yongzhuo Mo},
    title = {Pytorch-NLU},
    year = {2021}
    

*希望对你有所帮助!文章来源地址https://www.toymoban.com/news/detail-832599.html

到了这里,关于pytorch-textsummary,中文文本摘要实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 大数据深度解析NLP文本摘要技术:定义、应用与PyTorch实战

    大数据深度解析NLP文本摘要技术:定义、应用与PyTorch实战

    在本文中,我们深入探讨了自然语言处理中的文本摘要技术,从其定义、发展历程,到其主要任务和各种类型的技术方法。文章详细解析了抽取式、生成式摘要,并为每种方法提供了PyTorch实现代码。最后,文章总结了摘要技术的意义和未来的挑战,强调了其在信息过载时代的

    2024年02月03日
    浏览(11)
  • 【相关问题解答1】bert中文文本摘要代码:import时无法找到包时,几个潜在的原因和解决方法

    【相关问题解答1】bert中文文本摘要代码:import时无法找到包时,几个潜在的原因和解决方法

    🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长! 前些天发现了一个人工智能学习网站,内容深入浅出、易于理解。如果对人工智能感兴趣,不妨点击查看。 感谢大家的支持和关注。 最近好多人

    2024年03月14日
    浏览(12)
  • 如何用pytorch做文本摘要生成任务(加载数据集、T5 模型参数、微调、保存和测试模型,以及ROUGE分数计算)

    如何用pytorch做文本摘要生成任务(加载数据集、T5 模型参数、微调、保存和测试模型,以及ROUGE分数计算)

    摘要 :如何使用 Pytorch(或Pytorchlightning) 和 huggingface Transformers 做文本摘要生成任务,包括数据集的加载、模型的加载、模型的微调、模型的验证、模型的保存、ROUGE指标分数的计算、loss的可视化。 ✅ NLP 研 0 选手的学习笔记 ● python 需要 3.8+ ● 文件相对地址 : mian.py 和 tra

    2024年02月05日
    浏览(44)
  • 第N2周:中文文本分类-Pytorch实现

    第N2周:中文文本分类-Pytorch实现

    🍨 本文为🔗365天深度学习训练营 中的学习记录博客 🍖 原作者:K同学啊|接辅导、项目定制 环境搭建 Python 3.8 pytorch == 1.8.1 torchtext == 0.9.1

    2024年02月01日
    浏览(13)
  • Whisper对于中文语音识别与转写中文文本优化的实践(Python3.10)

    Whisper对于中文语音识别与转写中文文本优化的实践(Python3.10)

    阿里的FunAsr对Whisper中文领域的转写能力造成了一定的挑战,但实际上,Whisper的使用者完全可以针对中文的语音做一些优化的措施,换句话说,Whisper的“默认”形态可能在中文领域斗不过FunAsr,但是经过中文特殊优化的Whisper就未必了。 Whisper经常被人诟病的一点是对中文语音

    2024年01月25日
    浏览(10)
  • 使用 NLP 进行文本摘要

            文本摘要是为较长的文本文档生成简短、流畅且最重要的是准确摘要的过程。自动文本摘要背后的主要思想是能够从整个集合中找到最重要信息的一小部分,并以人类可读的格式呈现。随着在线文本数据的增长,自动文本摘要方法可能会非常有用,因为可以在短时

    2024年02月12日
    浏览(12)
  • Elasticsearch的文本摘要与提取

    文本摘要与提取是一种自然语言处理技术,用于从长篇文本中提取出关键信息,以便快速了解文本的主要内容。在大数据时代,文本摘要与提取技术在各种应用场景中发挥着越来越重要的作用。Elasticsearch是一个强大的搜索引擎,具有强大的文本处理和分析能力。本文将从以下

    2024年02月20日
    浏览(10)
  • 【NLP】小项目:基于transformer的文本摘要

            本博客的主要焦点是使用“变压器”的非常高级的接口,即拥抱面管道。使用此界面,您将看到我们只需 1 或 2 行代码即可总结文本。 回顾什么是文本摘要以及我们在哪里使用它。 如何使用拥抱面转换器执行文本摘要(只需几行代码)         文本摘要是将

    2024年02月16日
    浏览(10)
  • 【GPT】文本生成任务(生成摘要、文本纠错、机器翻译等的模型微调)

    【GPT】文本生成任务(生成摘要、文本纠错、机器翻译等的模型微调)

    NLG:自然语言生成任务,很多NLP任务可以被描述为NLG任务,如经典的T5模型(text to text transfer transformer模型)就是NLG模型,如文本纠错任务,输出正确的文本描述、智能问答根据一定背景进行推理,然后回答。 主要分为三种: 抽取式摘要:从原文档中提取现成的句子作为摘要

    2023年04月26日
    浏览(11)
  • 如何利用Python实现文本的自动摘要,代码全程示例

    摘要:文本自动摘要是一个重要的自然语言处理任务,可以用于许多应用场景,例如新闻摘要、文档分类和搜索引擎优化。在本文中,我们将介绍如何利用Python实现文本的自动摘要,包括文本预处理、摘要生成算法和结果评估。 :自然语言处理、文本摘要、Python 一、

    2024年02月06日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包