基于python实现的大数据中的文本挖掘作业+源代码+文档说明

源码下载地址

点击这里下载源码

项目介绍

Introduction
本次作业的任务是故事生成,即给定一个故事标题,要求输出5个句子的短故事。我们力图复现一下论文(Seq2Seq,静态两步式生成),并尝试加了一些模块(Self-Attention),以期在本任务上达到较好效果。

Related Work
本次作业本质上是文本生成的任务,序列到序列[1]模型是文本生成领域比较常用的一个算法,也是课程提供的参考文献[2]中使用的方法,采取了编码器-解码器的架构,用编码器编码输入,解码器则用来产生输出,两个模块之间采用注意力模块相连。

参考文献[2]中提出了两步式的故事生成方法,即先对给定的标题生成一个简短的storyline,再通过storyline生成具体的故事。文中提出了两种故事生成的模型,即静态生成模型和动态生成模型。前者先使用序列到序列模型根据标题生成完整的storyline,再用storyline生成故事;后者则是交替式地动态生成storyline和故事。在此基础上我们做了一些调研。

Ammanabrolu等人采用了一个级联的模型来完成给定故事开头续写故事的任务[3]。他们使用了Martin等人提出的event抽象结构[4]来表示句子,并将其进一步扩展。他们将故事生成的任务分成了生成event和生成故事两个步骤,与文献[2]采用中间结构storyline的思路相似。Yang等人提出了根据若干个主题生成文章的方法[5]。他们在decode生成文本的时候引入了外部知识,并且借用了seqGAN的训练方法增强模型表现。这些工作和本次作业一样,需要根据比较短的输入生成较长的文本。

本次作业采用的评测指标bleu值,全称bilingual evaluation understudy,由Papineni等人于2002年提出[6],是一种常用于机器翻译等领域的自动评价指标,现也多用于各种文本生成任务的评价。

对于测试集中的每组数据,模型对于输入序列产生一个输出序列,这个输入序列对应一个或多个标准输出(因为机器翻译的任务并不是一对一的,一个句子可以有多种翻译方式,所以可以有多个标准输出)。其基本原则是希望机器翻译得到的译文与人工译文重合度尽可能高。具体评测时,会比较机器译文和参考译文之间的n-gram的重合度,即机器翻译中的n-gram在参考译文中的最大命中次数。n一般取1、2、3、4。但是这样会倾向于给较短的序列更高的分数,因此引入了长度惩罚因数BP。若机器译文长度小于参考译文,则令BP<1,会导致最终bleu评分降低。其余情况BP=1。最终计算公式可以表示为:

b l e u = B P ˙ e x p ( ∑ n = 1 N w n l o g ( p n ) ) bleu = BP\dot{}exp(\sum_{n=1}^N{w_nlog(p_n)}) bleu=BP˙exp(n=1Nwnlog(pn)) 其中w表示各个n-gram的权重,一般都取为1/N,p表示各n-gram的命中率。N一般取为4,即bleu值最多只看机器译文和参考译文4-gram的重合程度。BP可以用以下公式表示: B P = { 1 c > r   e 1 − r / c c ≤ r BP = \begin{cases} 1& {c > r}\ e^{1-r/c}& {c \leq r} \end{cases} BP={1c>r e1r/ccr 其中,c表示机器译文的长度,r表示匹配程度最高的参考译文的长度。

因为n-gram的命中率p可能为0,导致对0取对数,因此在实际中会使用光滑函数[^7]进行特殊处理,保证对数中的自变量大于0。

bleu评分综合权衡了序列间的n-gram重合度和长度等因素,是一个被广泛使用的指标。但是它的一个比较明显的缺点是只会机械地比较模型输出和标准输出之间的n-gram重合度,无法正确比较两者在语义、情感等方面的相似性。不过这也是几乎所有自动评测指标共有的缺点。

Data Analysis
本次作业采用ROCstories数据,共有98161组数据,其中前90000组用于训练,后8161组数据用于测试。我们对训练集中数据进行了分析。

界面预览

在这里插入图片描述
在这里插入图片描述

项目备注

1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。
3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。
下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

毕设定制,咨询

添加作者公众号咨询即可

源码下载地址

点击这里下载源码

  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python自动化办公课程配套软件是一款用Python编写的工具,旨在帮助用户提高办公效率并简化日常办公的重复性工作。该软件提供了丰富的功能和实用的功能模块,以下是它的主要组成部分。 1. 数据处理模块:该模块能够读取和处理各种常见的数据文件,如Excel、CSV等。用户可以方便地进行数据清洗、筛选、排序和计算等操作,大大提高了数据处理的效率。 2. 文件操作模块:该模块包括文件的复制、移动、重命名和删除等功能。用户可以通过简单的命令完成这些操作,节省了繁琐的手动操作时间。 3. 邮件发送模块:该模块能够实现自动化的邮件发送功能。用户可以通过自定义的模板和收件人列表,批量发送邮件,并且可以附件文件和设置发送时间,极大地提高了邮件发送的效率和准确性。 4. 任务调度模块:该模块可以方便地进行任务的定时执行和定时提醒。用户可以根据自己的需求设置任务的执行时间和频率,以及提醒的方式,如邮件、弹窗等。 该软件的源代码文档详细介绍了每个功能模块的实现原理和代码结构,方便用户理解和修改。用户可以根据自己的需求对软件进行二次开发,添加或优化功能,以满足特定的业务需求。 总之,Python自动化办公课程配套软件是一款功能强大且易于使用的工具,帮助用户提高办公效率,简化办公过程,并且提供了源代码文档方便用户进行二次开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机智的程序员zero

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值