当前位置:   article > 正文

自然语言处理:关键词提取(TF-IDF、Textrank)_自然语言处理需要提取该新闻文本的关键词。在提取关键词之前,需要对csgnews.txt中

自然语言处理需要提取该新闻文本的关键词。在提取关键词之前,需要对csgnews.txt中

TF-IDF

词频-逆文档频率(Term Frequency-Inverse Document Frequency, TF-IDF),基于词在当前文档和全文档出现的频率,度量词的重要性. 基本思想是,词的重要性正比于在当前文档中出现的频率,反比于在全文档中出现的频率(词的主体预测能力).


Model

TF ( w ) \text{TF}(w) TF(w)表示词 w w w的当前文档频率, IDF ( w ) \text{IDF}(w) IDF(w)表示词 w w w的逆文档频率, D \text D D表示全文档数, DF ( w ) \text{DF}(w) DF(w)表示包含词 w w w的文档数,则
TF-IDF(w) = T F ( w ) ⋅ IDF ( w ) = TF ( w ) log ⁡ D DF ( w ) \text{TF-IDF(w)}={\text TF}(w)\cdot \text{IDF}(w)=\text{TF}(w)\log\frac{\text D}{\text{DF}(w)} TF-IDF(w)=TF(w)IDF(w)=TF(w)logDF(w)D


Smoothing

IDF ( w ) = log ⁡ D + 1 DF ( w ) + 1 + 1 \text{IDF}(w)=\log\frac{\text{D}+1}{\text{DF}(w)+1}+1 IDF(w)=logDF(w)+1D+1+1

  • log项中分子项和分母项均加1,表示增加一篇包含任意词的文档,避免分母项为0;
  • 最终值加1,避免某单词在所有文档中出现时,IDF的值为0,即不忽略出现在所有文档中的词;

Regularization

不难发现,若w在不同文档中的频率相同,则w的TF-IDF值相同. 可见,TF-IDF值的计算未考虑文档自身词的分布. 直观想法是,w在总词数(词集合)较少的文档中TF-IDF值较大.

假设文档的TF-IDF特征向量为 v = ( TF-IDF ( w 1 ) , ⋯   , TF-IDF ( w n ) ) \pmb v=(\text{TF-IDF}(w_1), \cdots,\text{TF-IDF}(w_n)) vvv=(TF-IDF(w1),,TF-IDF(wn)) ,对 v \pmb v vvv做L2正则化得
v l 2 = v ∣ ∣ v ∣ ∣ 2 = v v 1 2 + v 2 2 + ⋯ + v n 2 \pmb v_{l2}=\frac{v}{||v||_2}=\frac{v}{\sqrt{v_1^2+v_2^2+\cdots + v_n^2}} vvvl2=v2v=v12+v22++vn2 v

A = { w 1 . w 2 , w 2 } A=\{w_1.w_2,w_2\} A={w1.w2,w2} B = ( w 1 , w 2 , w 3 ) B=(w_1,w_2,w_3) B=(w1,w2,w3),则
TF-IDF ( A ) = { ( 0.333 , 0.666 , 0 ) ⊙ IDF ( w A ) , 未 正 则 化 ( 0.447 , 0.894 , 0 ) , L 2 正 则 化 TF-IDF ( B ) = { ( 0.333 , 0.333 , 0.333 ) ⊙ IDF ( w B ) , 未 正 则 化 ( 0.556 , 0.557 , 0.557 ) , L 2 正 则 化

TF-IDF(A)={(0.333,0.666,0)IDF(wwA),(0.447,0.894,0),L2TF-IDF(B)={(0.333,0.333,0.333)IDF(wwB),(0.556,0.557,0.557),L2
TF-IDF(A)={(0.333,0.666,0)IDF(wwwA),(0.447,0.894,0),L2TF-IDF(B)={(0.333,0.333,0.333)IDF(wwwB),(0.556,0.557,0.557),L2
可见,正则化前 TF-IDF A ( w 1 ) = TF-IDF B ( w 1 ) \text{TF-IDF}_A(w_1)=\text{TF-IDF}_B(w_1) TF-IDFA(w1)=TF-IDFB(w1),正则化后 TF-IDF A ( w 1 ) < TF-IDF B ( w 1 ) \text{TF-IDF}_A(w_1) <\text{TF-IDF}_B(w_1) TF-IDFA(w1)<TF-IDFB(w1).


Implemetation

参考sklearn.feature_extraction.text中的CountVectorizerTfidfVectorizer类.


PageRank

Algrithm source

斯坦福大学研究生佩Larry Page和Sergey Brin借鉴学术论文排序方法,即论文被引用次数,提出评价网页质量的方法:

  • 若一个网页被其他网页链接,说明该网页重要性较高;
  • 被高质量网页链接的网页,其重要性相应提高;

Model

如图所示A、B、C和D网页之间的链接图:

有向图的概率转移矩阵又称Markov矩阵,如下:
T = ( 0 1 / 2 1 0 1 / 3 0 0 1 / 2 1 / 3 0 0 1 / 2 1 / 3 1 / 2 0 0 ) T = \left(

01/2101/3001/21/3001/21/31/200
\right) T=01/31/31/31/2001/2100001/21/20
T i j T_{ij} Tij表示结点 j j j跳转至结点 i i i的概率,列向量元素之和为1. 初始各具有相同PR值,经 n n n次转移后:
V 0 = [ 1 / 4 1 / 4 1 / 4 1 / 4 ] T , V n = T ⋅ V n − 1 = T n ⋅ V 0 V_0=[1/4\quad 1/4 \quad 1/4 \quad 1/4]^T,\quad V_n = T\cdot V_{n-1} = T^n \cdot V_0 V0=[1/41/41/41/4]T,Vn=TVn1=TnV0
n → + ∞ n\rightarrow +\infty n+时,若概率转移矩阵 T T T满足以下条件,则 V n V_n Vn收敛:

  • 概率转移矩阵是随机矩阵,即 T i j ≥ 0 T_{ij} \geq 0 Tij0,且 ∑ i T i j = 1 \sum_{i}T_{ij}=1 iTij=1
  • 概率转移矩阵是不可约的,即图中任何节点都可以到达其他节点,即 T T T中不存在终止节点(全0列)、陷阱节点(对角线元素为1);
  • 概率转移矩阵是非周期的,即 T T T为素矩阵,自身的某次幂为正矩阵;

上例得最终PR向量为
lim ⁡ n → + ∞ V n = lim ⁡ n → + ∞ T n ⋅ V 0 = [ 3 / 9 2 / 9 2 / 9 2 / 9 ] T \lim_{n\rightarrow+\infty}V_n=\lim_{n\rightarrow+\infty}T^n\cdot V_0=[3/9 \quad 2/9\quad 2/9\quad 2/9]^T n+limVn=n+limTnV0=[3/92/92/92/9]T
经过 n n n次跳转后,用户停留在 A A A网页的概率为 3 / 9 3/9 3/9,高于其他网页。


Terminal node

终止节点是指没有任何出链的节点,如C节点:

概率转移矩阵中终止节点对应列的元素全为0,如C节点:
T = ( 0 1 / 2 0 0 1 / 3 0 0 1 / 2 1 / 3 0 0 1 / 2 1 / 3 1 / 2 0 0 ) T = \left(

\begin{array}{rrrr} 0 & 1/2 & \color{red}\pmb 0 &0\\[1ex] 1/3 & 0 & \color{red}\pmb 0 & 1/2\\[1ex] 1/3 & 0 & \color{red}\pmb 0 & 1/2\\[1ex] 1/3 & 1/2 & \color{red}\pmb 0 & 0 \end{array}
\right) T=01/31/31/31/2001/200000000000001/21/20
容易验证,执行第 n n n次转移后,PR向量的元素和不断减小,即
∑ i V n [ i ] = ∑ i V n − 1 [ i ] − V n − 1 [ 3 ] \sum_{i} V_n[i]=\sum_{i} V_{n-1}[i]-V_{n-1}[3] iVn[i]=iVn1[i]Vn1[3]
最终得到的PR向量为
lim ⁡ n → + ∞ V n = [ 0 0 0 0 ] T \lim\limits_{n\rightarrow+\infty}V_n=[0 \quad 0 \quad 0 \quad 0]^T n+limVn=[0000]T


Trap Node

陷阱节点是指只有跳转至自身链接的节点,如C节点:

陷阱节点在概率转移矩阵中,对应的对角线元素为1,如下:
T = ( 0 1 / 2 0 0 1 / 3 0 0 1 / 2 1 / 3 0 1 1 / 2 1 / 3 1 / 2 0 0 ) T = \left(

\begin{matrix} 0 & 1/2 & 0 & 0\\[1ex] 1/3 & 0 & 0 & 1/2\\[1ex] 1/3 & 0 & \color{red}\pmb 1 & 1/2\\[1ex] 1/3 & 1/2 & 0 & 0 \end{matrix}
\right) T=01/31/31/31/2001/200111001/21/20
容易验证,执行第n次后,陷阱节点对应的PR值不断增大,即
V n [ 3 ] = V n − 1 [ 3 ] + ∑ j ≠ 3 T [ 3 ] [ j ] ⋅ V n − 1 [ j ] V_n[3]=V_{n-1}[3]+\sum_{j\neq 3} T[3][j]\cdot V_{n-1}[j] Vn[3]=Vn1[3]+j=3T[3][j]Vn1[j]
最终得到PR向量为
lim ⁡ n → + ∞ V n = [ 0 0 1 0 ] T \lim\limits_{n\rightarrow+\infty}V_n=[0 \quad 0 \quad 1 \quad 0]^T n+limVn=[0010]T


Solving Idea

当用户遇到终止节点网页或陷阱节点网页,用户可通过在浏览器重新输入新的地址,以逃离这个网页。因此,对转移公式进行如下修正:
V n = α T ⋅ V n − 1 + ( 1 − α ) V 0 V_n = \alpha T\cdot V_{n-1} + (1-\alpha)V_0 Vn=αTVn1+(1α)V0
可见,用户以 1 − α 1-\alpha 1α的概率通过地址栏跳至其它网页, α \alpha α值反比于算法收敛速度,一般为0.85。


Deficiency

第一,未区分站内导航链接。与站内导航链接相比,外链更能体现PR值的传递关系.

第二,未过滤广告链接和功能链接。如没有实际价值的广告链接,以及“分享到微博”等功能链接.

第三,对新网页不友好。新网页的入链较少,即使其内容质量很高,要获得高PR值仍需要很长时间.


TextRank

基于PageRank思想判断词的权重,指定窗口大小构建无向图(字典存储),具体步骤如下:

  • 文本分词,根据需要剔除停词等,从前向后遍历词表,并从当前位置向后扫描d个单词加入无向图,无向图边的权重为两节点出现的次数;
  • 计算各结点的转移概率,根据初始PR向量,迭代求解最终PR向量,其中
    V n + 1 [ w ] = α ∑ w ∼ w i V n [ w i ] T [ w ] [ w i ] + ( 1 − α ) V 0 [ w ] V_{n+1}[w]=\alpha\sum_{w\sim w_i}V_n[w_i]T[w][w_i] + (1-\alpha)V_0[w] Vn+1[w]=αwwiVn[wi]T[w][wi]+(1α)V0[w]
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/342892
推荐阅读
相关标签
  

闽ICP备14008679号