Single Document Keyphrase Extraction Using Neighborhood Knowledge
ExpandRank是出自北京大学2008年的老论文,其实现思想为:现有的单文档关键字短语提取方法通常只使用指定文档中包含的信息。本文提出使用少量的最近邻文档来提供更多的知识,以改进单文档关键字短语提取。通过添加靠近文档的几个相邻文档,将指定文档扩展为小文档集,然后对扩展文档集应用基于图的排序算法,以利用指定文档中的局部信息和相邻文档中的全局信息。
ExpandRank实现
文档的相似度计算TF-IDF算法,
d
i
d_i
di和
d
j
d_j
dj两个文档的相似度计算公式如下式3所示:
s
i
m
d
o
c
(
d
i
,
d
j
)
=
d
⃗
i
⋅
d
⃗
j
∥
d
⃗
i
∥
×
∥
d
⃗
j
∥
sim_{doc}(d_i,d_j)=\frac{\vec d_i \cdot \vec d_j}{\parallel \vec d_i \parallel \times \parallel \vec d_j \parallel}
simdoc(di,dj)=∥di∥×∥dj∥di⋅dj
关键字排名算法,利用PageRank等图迭代算法进行实现,最终每个关键字将会得到一个较为稳定的值。
Neighborhood-Level Word Evaluation
使用类似文档进行关键字排序,一般文本窗口(w)大小设置为2~20。两个节点之间的权重计算如下式4所示:
a
f
f
(
v
i
,
v
j
)
=
∑
d
p
∈
D
s
i
m
d
o
c
(
d
0
,
d
p
)
×
c
o
u
n
t
d
p
(
v
i
,
v
j
)
aff(v_i,v_j)=\sum_{d_p \in D} sim_{doc}(d_0,d_p)\times count_{d_p}(v_i,v_j)
aff(vi,vj)=dp∈D∑simdoc(d0,dp)×countdp(vi,vj)
其中
c
o
u
n
t
d
p
(
v
i
,
v
j
)
count_{d_p}(v_i,v_j)
countdp(vi,vj)用来控制词
v
i
v_i
vi和
v
j
v_j
vj在文档
d
p
d_p
dp中的共现关系;
s
i
m
d
o
c
(
d
0
,
d
p
)
sim_{doc}(d_0,d_p)
simdoc(d0,dp)是用来衡量扩展文档
d
p
(
0
≤
p
≤
k
)
d_p(0 \le p \le k)
dp(0≤p≤k);整个图边权重的计算方式如下式5所示:
M
i
j
=
{
a
f
f
(
v
i
,
v
j
)
,
i
f
v
i
l
i
n
k
s
w
i
t
h
v
j
a
n
d
i
≠
j
0
,
o
t
h
e
r
w
i
s
e
M_{ij}= \left\{ \begin{array}{l} {\rm{aff(v_i,v_j),\ if \ v_i \ links \ with \ v_j \ and \ i \ne j }} \\ {\rm{0, \ otherwise}} \\ \end{array} \right.
Mij={aff(vi,vj), if vi links with vj and i=j0, otherwise
最后矩阵
M
M
M将会被归一化,让矩阵的每一行加起来都为1,便于后续PageRank继续迭代。
M
~
i
j
=
{
M
i
j
/
∑
j
=
1
∣
V
∣
M
i
j
,
i
f
∑
j
=
1
∣
V
∣
M
i
j
≠
0
0
,
o
t
h
e
r
w
i
s
e
\widetilde M_{ij}=\left \{ \begin{array} {l} {\rm{M_{ij} / \sum_{j=1}^{|V|}M_{ij}, \ if \ \sum_{j=1}^{|V|}M_{ij} \ne 0}} \\ {\rm{0, \ otherwise}} \end{array} \right.
M
ij={Mij/∑j=1∣V∣Mij, if ∑j=1∣V∣Mij=00, otherwise
W o r d S c o r e ( v i ) = μ ⋅ ∑ a l l j ≠ i W o r d S c o r e ( v j ) ⋅ M ~ j i + 1 − μ ∣ V ∣ WordScore(v_i)=\mu \cdot \sum_{all \ j\ne i}WordScore(v_j) \cdot \widetilde M_{ji}+\frac{1-\mu}{|V|} WordScore(vi)=μ⋅all j=i∑WordScore(vj)⋅M ji+∣V∣1−μ
等价于
λ
⃗
=
μ
M
~
T
λ
⃗
+
1
−
μ
∣
V
∣
e
⃗
\vec \lambda=\mu \widetilde M^T \vec \lambda +\frac{1-\mu}{|V|} \vec e
λ=μM
Tλ+∣V∣1−μe
其中
λ
⃗
=
[
W
o
r
d
S
c
o
r
e
(
v
i
)
]
∣
V
∣
×
1
\vec \lambda =[WordScore(v_i)]_{|V| \times 1}
λ=[WordScore(vi)]∣V∣×1,一般情况下
e
⃗
\vec e
e为单位向量,
μ
\mu
μ设置为0.85。
Document-Level Keyphrase Extraction
在计算了文档集中所有候选词的分数之后,为指定文档
d
0
d_0
d0选择和评估候选短语(单个词或多个词)。
d
0
d_0
d0的候选词(即名词和形容词)是
V
V
V的子集,在文档
d
0
d_0
d0的文本中标记,相邻候选词的序列被折叠成多词短语。不允许以形容词结尾的短语,只有以名词结尾的短语被收集作为文档的候选短语。
P
h
r
a
s
e
S
c
o
r
e
(
p
i
)
=
∑
v
j
∈
p
i
W
o
r
d
S
c
o
r
e
(
v
j
)
PhraseScore(p_i)=\sum_{v_j \in p_i}WordScore(v_j)
PhraseScore(pi)=vj∈pi∑WordScore(vj)
其中
p
i
p_i
pi为文档
d
0
d_0
d0中候选关键词,
v
j
v_j
vj是
p
i
p_i
pi的邻居节点。
ExpandRank实验
数据集:DUC2001。