目录*非论文目录*
- 话题分割的作用
- 话题分割的两类任务
- 话题分割的常见方法
- 本文算法
-
- 具体实验方法
- 两个弱结论
- 链接
话题分割的作用
- 将文章分割成具有语义相关性的片段,能够增强文章的可读性
- 同时也促进了文本摘要((Angheluta et al., 2002; Dias et al., 2007)、文章检索(Huang et al., 2003; Dias et al., 2007)、文本索引(text indexing)等相关任务的开展
话题分割的两类任务
- 线性地检测分割点
- 层次化地定义分块之间的子话题结构(更难?)
话题分割的常见方法
-
TextTiling(Hearst (1994))
关键词:非监督、线性分割、基于语义相似的分块间可能具有重复单词的思想、使用段落的稀疏词向量来丈量相似性
-
概率算法(Choi 2000)
基于矩阵排序和聚类(probabilistic algorithm using matrix-based ranking and clustering to determine similarities between segments)(不懂)
-
Content-based information+acoustic cues(Galley et al 2003)
基于上面的方法,来检测 discourse shift
-
动态规划(Utiyama and Isahara (2001) and Fragkou et al. (2004))
使用DP来最小化损失函数
-
pLSA(probabilistic latent semantic analysis )((Brants et al., 2002)
第一个基于topic modelling的算法
-
LDA(latent Dirichlet allocation,中文:隐迪利克雷分配模型(发明者:Blei et al., 2003)(但是使用者是:Misra et al., 2009\Riedl and Biemann, 2012)
compute the latent topics(?)
-
LDA + 动态规划(Misra et al. (2009))
-
TopicTiling(LDA+TEXTTILING)(Riedl and Biemann (2012))
与texttilling不同的是:并没有使用稀疏的词向量,而是dense vector
-
全连接图+cosine计算相似性+bag of words+minimum normalized multiway cut(Malioutov and Barzilay (2006))
-
单词之间的相似图+稀疏的共线向量+shared 最近邻算法->给单词聚类->识别话题(Ferret (2007))
(文中说,topictiling是最快最好的)
本文算法
获取句子的语义相似度
其中有一种做法是:salient greedy lemma alignment feature(Sari ˇ c et al. (2012))
本文的做法是:
- 考虑两个句子,计算两两单词之间的相似度
具体:一个句子的一个单词与另外一个句子的所有单词都有一条有向边(权重由 Mikolov提出的单词之间的word2vec embedding的cosine算出)
- 双向图匹配算法(Hungarian method)(Kuhn, 1955)
三个公式:
- C是什么?——C是一个语料库,文中使用 Google Books Ngrams (Michel et al., 2011)。
- 为什么要计算ic(w)?——出现频率越小的单词之间,相关度所占的权重更大(它们之间的相关度,对于句子之间的相关度的贡献值越大)(-log(减函数)=增函数)
- 最后的rel(s1,s2)是什么意思?——越长的句子对,不归一化的话,相似度肯定会偏高的
基于图的分割
- 构造句子之间的无向图
通过,得到句子间的语义相似度,超过某一阈值,我们给它们之间添加一条边,得到一个无向图
- 计算所有最大团
Bron-Kerbosch algorithm(Bron and Kerbosch, 1973)算法求出所有的最大团(图的最大完全子图(再多一条边就不是完全图了))
- 得到初始划分->SG1
遍历所有最大团,考虑一个最大团:如果sentencei 和 sentencei+1 都属于这个最大团,它们就被归为一个segment,得到segmentj ∈ \in ∈ SG1。(注意句子下标i,i+1,即:每个句子都有自己的上下文序号)。
- 合并划分1->SG2
合并两个segmentj和segmentj+1,只当,至少存在一个最大团,它至少在segj中有一条边,在segj+1中也有一条边-> SG2(注意j和j+1的下标,即:这个划分也是按照 句子的上下文顺序来排序的)
- 合并划分2->SG3
将句子数少于n个segmentj与它临界的segment(segj-1 segj+1)中,相关性更高的去合并,相关性计算公式:
图解上述步骤:
以 9 个句子为例:
具体实验方法
具体实验
Word embedding:
- 使用 在 google news dataset上训练出来的word embedding
- 同时 也 基于corpus训练了word embedding(domain-adapted)(using 466 unlabeled political manifestos)
Baseline model:
- 该基线随机(50%的概率)在相距m个句子处开始一个新片段,m被设置为黄金片段平均长度的一半
Parameter:
- 上述阈值(符号不会打)
- 上述最小分割的size:n
最优化参数的方法:
-
网格搜索(grid search)
-
K折的交叉检验
两个弱结论
- 在choi上,4(DP)、7(LDA+DP)、8(LDA+TEXTTILLING) 的效果更好,原因可能是是: 4使用了"gold standard information"作为输入;7*、8*是domain adapted过的,虽然在测试集上它们使用的是不同文章来建模,但由于choi是人造的文章,有一些在训练集里面也出现过(8的作者也提过这一点)
- 在manifesto上,graphseg表现很好,但有一个奇怪的点:domain adapted过后的效果并不好,原因可能是:如上所述,choi的test与train有重叠,会导致信息泄露(information leakage),而manifesto是真实的语料
链接
论文地址
graph seg tool
妈的,不会写极大团的代码。