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)=\frac{count(u,D_v)+\lambda}{\sum_{v_1∈V,v_1≠v}^{}{count(u,D_{v_1})+\lambda}} \]
    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,产生新句子

猜你喜欢

转载自www.cnblogs.com/alivinfer/p/12392655.html