Delete, Retrieve, Generate: A Simple Approach to Sentiment and Style Transfer 阅读

原论文

这篇论文发表在2018年的 NAACL 上

在做文本风格迁移时,要使转换后的句子尽可能做到这三个方面

  • Attribute Transfer
  • Content Preservation
  • Grammaticality

Motivation

作者通过观察语料库中的句子,发现文本的属性一般是由句子中特定的情感词所决定

并基于此提出了本文的方法,文中将文本情感转换任务定义为:只将句子的情感改变,而不改变与情感无关的部分

如: the chicken was delicious ---------> the chicken was bland

文中的训练集是被标注了情感(positive or negative)的句子,但是是非平行的语料

Approach

  1. Delete

    即要找出句子中的情感词,并将其去掉,定位情感词方法如下:

    s(u,v)=count(u,Dv)+λv1V,v1vcount(u,Dv1)+λ

    count用来计算词 u 在情感集中出现的次数,λ 为用来平滑的参数,当 s(u,v)超过阈值 γ 时,就认为 u 是与情感相关的部分

  2. Retrieve (计算两个句子之间的相似度)

    在删除源句子的情感词后,为了确定将什么词插入到 c (删除后所剩的内容)中,可以在包含目标情感的句子集中去找与原句子相似的句子,然后提取出情感词

  3. Generate

    作者采用了四种策略来生成新句子(前两种策略作为 baseline)

    • RETRIEVEONLY

      即直接讲 retrieve 的那一步中找到的相似句子作为结果输出

      优点:一定能生成一个语法上非常通顺的且包含目标情感的句子

      缺点:可能生成的句子在内容上差别很大

    • TEMPLATEBASED

      将 retrieve 中找到的相似句子的情感词提取出来,替代原句子的情感词

      优缺点:一般需要原句子和目标句的上下文语境相似,在大多数情况可行,但有时会导致输出的句子在语法上不通顺

    • DELETEONLY

      将删除情感词后得到内容 c 进行embedding之后送人一个 RNN,将隐藏层最后一层的输出与学习得到的 目标情感词进行拼接,再送入 RNN 解码器,产生新的句子

    • DELETEANDRETRIEVE

      与 deleteonly 相似,先将 c 进行 embedding 送入一个 RNN, 然后将 retrieve 后提取的目标情感词 embedding 送入另一个 RNN, 再进行拼接,送入 RNN decoder,产生新句子

    整个过程如下:

posted @   -费费  阅读(525)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示