1. 程式人生 > >結合Doc2Vec與改進聚類演算法的中文單文件自動摘要方法研究

結合Doc2Vec與改進聚類演算法的中文單文件自動摘要方法研究

                                                                      圖1 本文方法示意圖

一.基於Doc2Vec 的句子向量訓練 

      Doc2Vec 模型能很好地結合上下文語境, 挖掘語義、語法和傳統統計語言模型不能提取的諸多其他特徵。本文引入該方法, 用以生成句子的向量模型。

      Doc2Vec 是 Mikolov 等[8]在 2014 年提出的一種較新穎的可將句子或段落直接轉化為固定維度向量的文件分散式表達的方法。該方法利用無監督的訓練方法獲得任意長度的文字向量, 主要通過兩種模型進行訓練: DM(Distributed Memory Model)和 DBOW(Distributed Bag Of Words), 兩種模型均以神經網路語言模型為基礎, 去掉隱含層, 利用上下文和段落特徵來預測某詞語出現的概率分佈。段落向量與詞向量是其訓練過程的副產物。

       在 Doc2Vec 的兩種模型中, DBOW與DM訓練方法基本一致, 在僅給定段落向量的情況下預測段落中一組隨機單詞出現的概率。但是, 與DM不同的是,DBOW的輸入層僅為一個段落向量, 而輸出層為多個詞向量的概率分佈 , 且 在訓練過程中只需儲存Softmax 引數, 相比DM模型還需要儲存詞向量來說,節省了儲存空間。

二.基於密度最大距離最遠原則優化初始聚類中心的K-means聚類

       選出的初始聚類中心點應具有較高的密度, 即在一定的距離半徑內, 應具有相對較多的鄰居節點; 同時, 選出的初始聚類中心點間應具有相對較遠的距離, 這樣選出的初始聚類中心點能在有效代表類簇的同時, 也能保證類簇與類簇間的獨立性。

1.相關概念

(1)期望密度:E_{\alpha }=N/k \; \;\; \: \alpha =0.6\times E_{\alpha },其中N代表的是單篇文件中句子的總數,k是預先定義的聚類個數。

(2)密度半徑:取句子向量空間中任意一個句子s_{i},以s_{i}為中心,搜尋距離其最近的α個句子,組成語句s_{i}的α領域空間,將與這α個句子之間的距離進行排序,取最大值作為該領域空間的密度半徑,用β表示。

  • β越小說明資料分佈密集,反之說明稀疏,顯然具有較小鄰域密度徑的句子更能夠相對有效地表徵其所屬區域的句子群,也更有希望成為初始聚類中心點。
  • 計算所有語句向量所形成的α鄰域空間的密度半徑β, 並對語句向量按照其鄰域空間的密度半徑由小到大的順序排序, 將密度半徑最小的語句選出作為第一個初始聚類中心。在選取初始聚類中心時, 不僅需要考慮語句所形成的α鄰域空間的密度特性, 還要考慮候選聚類中心與已有聚類中心之間的距離, 選出具有相對較高密度且與已有初始聚類中心具有相對較遠距離的語句,作為下一個初始聚類中心。 

(3)獨立距離:設文件向量集合為D,S為已選初始聚類中心向量集合,s_{j}為集合D-S中的任一句子向量, 則向量s_{j}與已選初始聚類中心向量集合S的獨立距離如公式(1)所示,句子s_{j}與已選聚類中心集合S中所有句子的獨立距離等於與集合S中每一個句子向量s_{i}間距離的最小值。d\left ( s_{i},s_{j} \right )為句子s_{i}與句子s_{j}間的距離, 以歐幾里得距離公式進行計算如公式(2)所示:

  • 獨立距離的概念衡量的是候選句子向量相對於已選聚類中心向量的獨立程度。
  • 獨立距離越大, 候選向量與已選類中心向量劃分到同一簇的可能性越小。

(4)中心度:設文件向量集合為D,S為已選初始聚類中心向量集合,s_{j}為集合D-S中的任一句子向量, 則向量s_{j}與已選初始聚類中心向量集合S的中心度如公式(3)所示,其中\beta _{s_{i}}β_{s_{i}}為句子向量s_{j}的α鄰域空間的密度半徑,為與已選聚類中心向量集合S的獨立距離。

  • 中心度是在已選初始聚類中心向量集合的基礎上, 衡量候選向量是否適合成為下一個聚類中心的程度的概念。候選向量的中心度越大, 該向量越適合作為下一個初始聚類中心點。
  • 中心度將聚類中心點的密度特性及聚類中心點間的距離特性綜合考慮在內, 那些具有較高密度特性(β小), 同時與已有聚類中心點間具有較遠距離(較大的獨立距離 Indepen )的節點將被選出作為下一個初始聚類中心, 由此可以保證選出的初始聚類中心既具有較高的對類簇的代表能力, 同時也具有較高的區分不同類簇的能力。遞迴執行此過程, 直至選出的初始聚類中心達到指定數目為止。 

2.具體實現過程

   輸入: 單篇文件句子向量集合 D , 初始聚類中心集合S (此時為空集), 待生成的摘要句個數 k ;    輸出: k 個句子類簇。 ①根據定義 1 計算句子的期望密度, 根據定義 2 計算文件向量集合中每個句子向量的α鄰域空間的密度半徑\beta _{i}​​​​​​​; ②根據密度半徑\beta _{i}由小到大的順序對所有的句子向量排序; ③將\beta _{i}​​​​​​​最小的句子向量s_{i}作為第一個初始聚類中心向量新增到集合 S 中; ④計算句子向量s_{j}(s_{j} \in D-S)與集合S 中已選取的初始聚類中心向量間的獨立距離Indepen(s_{j},S)=min\left \{ d(s_{i},s_{j}),s_{i}\in S \right \},並選取\left | Centre(s_{j},S) \right |最大的句子向量作為下一個初始聚類中心新增到初始聚類中心集合S中;

⑤更新已經選取的聚類中心向量集合 S 和待篩選的句子向量集合D-S中的句子向量; ⑥重複步驟④和步驟⑤, 直到集合 S 中的句子向量個數達到期望獲得的聚類中心向量數目, 演算法停止; ⑦以集合 S 中的所有句子向量作為初始聚類中心, 執行K-means 演算法, 得到最終的 k 個句子簇類。 

三.基於最大資訊熵的摘要抽取

      傳統的基於 K-means 聚類演算法通常提取距離類中心最近的句子作為最終摘要句輸出。按照 K-means 聚類的思想, 類中心是對應類簇所包含向量的均值, 該中心雖能有效表徵相應類簇, 但是以此為標準提取摘要句, 並不能保證提取的摘要句是該類中所有句子的最佳代表。原因是, 提取的摘要句應與其所在類簇中所有句子具有相對較高的相似度, 但是, 位於聚類中心並不能保證這一點。本文引入資訊熵的思想, 計算類簇內句子向量與其他句子向量間相似性的熵值, 選取熵值最大的句子作為最終的摘要句輸出。通過此原則選取的摘要句, 與同類簇內句子間具有較高的平均相似度, 可以作為該類簇句子的代表句。 資訊熵的計算以每一類簇中句子的相似度矩陣為基礎, 如公式(4)所示: 

     其中,Sim\left ( s_{i}, s_{j}\right )表示同類簇中句子s_{i}s_{j}間的相似度, m 為該簇類中除句子s_{i}以外的句子向量個數,對數裡面用Sim\left ( s_{i}, s_{j}\right )+1代替Sim\left ( s_{i}, s_{j}\right ),是為了避免出現Sim\left ( s_{i}, s_{j}\right )為 0 時沒有意義的情況。Sim\left ( s_{i}, s_{j}\right )的計算如公式(5)所示: 

      計算類簇中句子向量的資訊熵, 在每一類簇中選取具有最大資訊熵的句子, 作為相應類簇的摘要句。由於中文科技論文具有較強的邏輯嚴密性, 論文大多遵循一定的實驗流程, 故將提取出來的摘要句按原文順序輸出組成最終的摘要。