本發(fā)明屬于自然語言處理領域,涉及信息抽取技術,具體是一種基于語義的特定任務文本關鍵詞提取方法。
背景技術:
隨著社會化媒體的飛速發(fā)展,人們每時每刻都接收和處理來自于物理世界和信息世界的大量信息。但是,這些信息數量大、結構復雜以及無意義信息多等特點,導致人們不可能對每一條接收到的信息都進行加工和處理,識別其中有價值的部分。因此,如何從文本中獲取有用的信息是實現快速、準確地處理信息的關鍵。
在現實世界中,關鍵詞是對有用信息最直觀的表示,所以如何從文本中獲取人們關注的關鍵詞成為當前迫切需要解決的問題。從文本中獲取人們關注的關鍵詞,一方面可以幫助人們快速地理解信息的內容,另一方面還可以為文本挖掘、自然語言處理、知識工程等領域提供重要的技術支持,具有非常廣泛的應用。例如,在營銷領域,從顧客對某個產品的評論中提取關鍵詞,可以揭示顧客所關注的方面,為生產更契合顧客需求的產品提供必要的支撐;在輿情監(jiān)控領域,從網上言論中提取關鍵詞,可以掌握輿情發(fā)展的最新態(tài)勢,為政府部門的輿論監(jiān)控與引導提供必要的支持。
技術實現要素:
本發(fā)明針對上述問題,提出了一種基于語義的特定任務文本關鍵詞提取方法;考慮待提取關鍵詞文本與特定任務的語義關系,通過計算語義相似度來衡量候選關鍵詞與特定任務的語義相關度,再考慮待提取關鍵詞文本的結構特征,以詞語網絡圖的形式表示文本的詞語結構,最后利用網絡重要度算法,結合詞語的文本結構特征和與特定任務的語義特征,從詞語網絡圖中提取重要度高的詞語。
具體步驟如下:
步驟一、針對某特定任務,通過網絡爬蟲采集與該任務相關的文本,作為該任務的語料;
步驟二、利用文檔主題生成模型lda,生成語料中每篇文檔的主題以及每個主題下對應的詞語;
步驟三、分別計算每個詞語的權重,按照權重將詞語從高到低排序,選取前k個詞語作為該特定任務相關語料的主題詞;
其中,weightr表示詞語r的權重;wtdr表示通過lda模型計算出的詞語r在文檔d中的代表主題的概率,c表示詞語r出現的文檔數量。
步驟四、將k個主題詞利用word2vector技術,將每個主題詞表示成不同的語義向量;
步驟五、針對待提取關鍵詞的文本,進行分詞和詞語篩選,將每條文本轉化成若干詞語的集合;
分詞的過程中對每一個詞語進行詞性標注;
詞語篩選包括對分詞后的詞語進行詞性篩選和詞頻篩選;
步驟六、針對得到的所有詞語集合,以詞語為節(jié)點,以兩個詞語共同出現的次數作為邊,構建詞語網絡圖;
步驟七、將待提取關鍵詞的文本分詞和篩選后的每個詞語,利用word2vector技術表示成語義向量;
步驟八、針對待提取關鍵詞的文本的每個詞語的語義向量,計算與特定任務的每個主題詞的語義向量之間的語義相似度。
兩個詞語向量di和dj之間的語義相似度計算公式如下:
di是指待提取關鍵詞的文本篩選后的詞語i表達成的詞語語義向量;dj是指特定任務的詞語j表達成的詞語語義向量;wik表示詞語語義向量di中第k個元素的值,wjk表示詞語語義向量dj中第k個元素的值,n代表語義向量的維度,即包含的元素個數。
步驟九、針對待提取關鍵詞文本篩選后的詞語i,分別計算與k個主題詞語義相似度的加權算術平均值,并將該平均值作為詞語i與特定任務的語義相似度;
si-task表示待提取關鍵詞的文本篩選后的詞語i與該特定任務的語義相似度;si-j表示詞語i與k個主題詞中的第j個主題詞的語義相似度;
步驟十、針對詞語網絡圖,利用每個詞語與特定任務的語義相似度,計算該詞語的重要度,并根據重要度將詞語降序排列,從中選取前t個詞語作為待提取文本的關鍵詞。
重要度用每個詞語的權重來體現;計算公式如下:
ws(vi)表示節(jié)點vi的權重,{vm}i表示與節(jié)點vi有邊相連的節(jié)點集合,d表示阻尼系數。fim表示節(jié)點vi和vm之間邊的權重,ws(vm)表示節(jié)點vm的權重。z表示歸一化因子,表示與節(jié)點vi相連的邊的權重之和,計算公式如下所示:
本發(fā)明的優(yōu)點在于:
1)、一種基于語義的特定任務文本關鍵詞提取方法,利用外部語料對特定任務主題詞進行語義擴充,實現對特定任務主題詞語義特征的刻畫,并用語義向量表示詞語的語義特征,再綜合考慮詞語的語義特征和主題特征提取文本關鍵詞。
2)、一種基于語義的特定任務文本關鍵詞提取方法,既考慮了文本關鍵詞與任務的契合關系,又考慮了待提取關鍵詞文本的內部結構。一方面,通過計算候選詞語與特定任務主題詞的語義向量相似度,實現對候選關鍵詞和任務主題詞的語義相似度的刻畫。另一方面,根據詞語間的共現關系,考慮文本內部結構對候選詞語權重的影響,在計算候選詞語權重時加入與該節(jié)點共同出現的詞語的權重。
附圖說明
圖1為本發(fā)明一種基于語義的特定任務文本關鍵詞提取方法的原理圖;
圖2為本發(fā)明一種基于語義的特定任務文本關鍵詞提取方法的流程圖。
具體實施例
下面結合附圖對本發(fā)明的具體實施方法進行詳細說明。
本發(fā)明一種基于語義的特定任務文本關鍵詞提取方法,首先考慮待提取關鍵詞文本的語義特征,計算文本與特定任務主題詞的語義相似度,再考慮待提取關鍵詞文本的結構特征,構建詞語網絡圖,最后利用搜索引擎網頁排序技術計算每一個詞語的重要度,并根據重要度提取網絡圖中重要度較高的詞語。
如圖1所示,具體為:首先,利用搜索引擎搜索某一特定任務相關語料,從與特定任務相關的語料中提取主題詞,并利用語義表示技術,將主題詞轉換成語義向量;其次,利用分詞工具對待提取關鍵詞的文本進行預處理;以詞語為節(jié)點,構建詞語網絡圖,再利用語義表示技術,計算文本與特定任務的主題詞之間的語義相似度。再基于詞語相似度,利用搜索引擎網頁排序技術計算每個詞語的重要度,并根據重要度提取詞語網絡圖中的重要詞語。
如圖2所示,具體實施步驟如下:
步驟一:針對某特定任務,通過網絡爬蟲采集與該任務相關的文本,作為該任務的語料;
特定任務相關的語料是在關鍵詞提取任務開始之前通過網絡爬蟲技術采集到的。例如,對于“提取消費傾向的關鍵詞”的任務,需要從互聯(lián)網或者其他渠道采集與“消費傾向”相關的文本,作為與該任務相關的語料。
步驟二、利用文檔主題生成模型lda,生成語料中每篇文檔的主題以及每個主題下對應的詞語;
針對特定任務相關的語料,利用lda(latentdirichletallocation)文檔主題生成模型,生成每篇文檔的n個主題以及每個主題下對應的m個詞語。
在本發(fā)明中,使用gensim中的lda工具進行主題詞的提取,根據以下網址提取主題詞,http://radimrehurek.com/gensim/models/ldamodel.html;其中,文檔主題數n取10,每個主題下對應的詞語數m取10。每篇文檔都通過lda算法表示成了由n×m個詞語組成的集合。
步驟三、分別計算每個詞語的權重,按照權重將詞語從高到低排序,選取前k個詞語作為該特定任務相關語料的主題詞;
其中,weightr表示詞語r的權重,wtdr表示通過lda模型計算出的詞語r在文檔d中的代表主題的概率,c表示詞語r出現的文檔數量。
本發(fā)明中k取10。
步驟四、將k個主題詞利用word2vector技術,將每個主題詞表示成不同的語義向量;
本步驟使用gensim中的word2vector工具將詞語轉化成語義向量,參考具體網址如下:http://radimrehurek.com/gensim/models/word2vec.html。
步驟五、針對待提取關鍵詞的文本,進行預處理,將每條文本轉化成若干詞語的集合;
預處理包括以下兩個方面的內容
首先,對待提取關鍵詞的文本進行分詞。分詞的目的是為了將待提取關鍵詞的文本轉化成一個個詞語。根據漢語語言的特點,能反映文本語義信息的詞語都是實詞。因此,在分詞的過程中需要對每一個詞語進行詞性標注。
然后,對分詞之后的結果進行兩種特殊處理,一種是詞性篩選,另一種是詞頻篩選。
詞性篩選是指將分詞結果中的名詞、形容詞、動詞保留下來,將其他詞性的詞語去掉。詞頻篩選是指將分詞結果中的低頻詞和高頻詞去掉。
低頻詞很可能是只在少數新聞評論中出現的,不具有代表性。高頻詞有兩種可能:一種是大部分新聞評論都出現的詞語;另一類是錯誤分詞以后產生的分詞碎片。
進行詞性和詞頻篩選之后可以提高本發(fā)明處理數據的精度。
步驟六、針對得到的所有詞語集合,以詞語為節(jié)點,以兩個詞語共同出現的次數作為邊,構建詞語網絡圖;
將待提取關鍵詞的文本轉化成詞語網絡圖,對于待提取關鍵詞的文本,本步驟利用一個長度為l的滑動窗口,從第一個詞語開始,向后滑動?;瑒哟翱诘拈L度是指其覆蓋的詞語的數量,本發(fā)明中l(wèi)取4。若兩個詞語共同出現在一個滑動窗口中,則這兩個詞語共同出現的次數加1。
例如,一個待提取關鍵詞的文本經過預處理后得到的結果為“高速公路,司機,超速,行駛,受到,交警,處罰”,基于上述結果構建詞語網絡圖。對于結果中的每個詞語,在網絡圖中都是一個節(jié)點。利用長度l=4的滑動窗口,從第一個詞語“高速公路”開始,滑動窗口覆蓋“高速公路,司機,超速,行駛”這4個詞語,則這四個詞語中每兩個詞語的共同出現次數加1。然后滑動窗口向后滑動1個詞語,覆蓋“司機,超速,行駛,受到”,則這四個詞語中每兩個詞語的共同出現次數加1。以此類推,直到滑動窗口到達文檔最后一個詞語,則停止計算。
步驟七、將待提取關鍵詞的文本分詞和篩選后的每個詞語,利用word2vector技術表示成語義向量;
本步驟仍然使用gensim中的word2vector工具將詞語轉化成語義向量,參考網址如下:http://radimrehurek.com/gensim/models/word2vec.html。
步驟八、針對待提取關鍵詞的文本的每個詞語的語義向量,計算與特定任務的每類主題詞的語義向量之間的語義相似度。
本發(fā)明考慮提取的關鍵詞與特定任務的語義關系,首先利用語義表示技術將候選關鍵詞和特定任務的主題詞轉化成語義向量,然后計算候選關鍵詞和特定任務主題詞語義向量之間余弦相似度,用余弦相似度作為候選關鍵詞與特定任務的語義相似度,以實現與特定任務相關的關鍵詞提取。
余弦相似度是信息檢索中常用的相似度的計算方式,假如有兩個詞語i和j,詞語i表達成文件向量di=(wi1,wi2,...,win),詞語j表達成dj=(wj1,wj2,...,wjn),則這兩個詞語的余弦相似度計算公式為:
di是指待提取關鍵詞的文本篩選后的詞語i表達成的詞語語義向量;dj是指特定任務的詞語j表達成的詞語語義向量;wik表示詞語語義向量di中第k個元素的值,wjk表示詞語語義向量dj中第k個元素的值,n代表語義向量的維度,即包含的元素個數。
余弦相似度最小值為0,最大值為1,其幾何意義是計算兩文件或詞語向量在高緯度空間中的夾角,夾角越小,余弦相似度越大(角度為0°時,相似度為1);夾角越大,余弦相似度越小(角度為90°時,相似度為0)。
對于待提取關鍵詞的文本預處理后的每個詞語,本步驟利用余弦相似度計算公式計算這個詞語與特定任務的每個主題詞之間的語義相似度。例如,特定任務的10個主題詞,對于待提取關鍵詞的文本預處理后的每個詞語,本步驟需要分別計算該詞語與特定任務的10個主題詞的語義相似度,得到10個余弦相似度的值。
步驟九、針對待提取關鍵詞文本篩選后的詞語i,分別計算與k類主題詞語義相似度的加權算術平均值,并將該平均值作為詞語i與特定任務的語義相似度;
計算公式如下所示:
si-task表示待提取關鍵詞的文本篩選后的詞語i與該特定任務的語義相似度;si-j表示詞語i與k個主題詞中的第j個主題詞的語義相似度;weightj表示第j個主題詞的權重;k表示特定任務的主題詞的數量。
步驟十、針對詞語網絡圖,利用每個詞語與特定任務的語義相似度,計算該詞語的重要度,并根據重要度將詞語降序排列,從中選取前t個詞語作為待提取文本的關鍵詞。
提取構建的詞語網絡圖中的重要詞語,首先計算詞語網絡圖中每個詞語的重要度,并根據重要度對詞語進行降序排列,從中選出重要度較高的t個詞語作為待提取文本的關鍵詞,本發(fā)明中t取10:
本步驟中計算詞語網絡圖中每個詞語的重要度的方法是利用搜索引擎網頁排序算法—pagerank算法基礎上進行了改進,計算網絡圖中詞語的重要度,并根據重要度提取關鍵詞。具體步驟如下:
根據詞語網絡圖,利用如下公式對每個詞語的權重進行迭代計算。
ws(vi)表示節(jié)點vi的權重,{vm}i表示與節(jié)點vi有邊相連的節(jié)點集合,d表示阻尼系數,取值范圍為0到1,代表從圖中某一特定點指向其他任意點的概率,一般取值為0.85。fim表示節(jié)點vi和vm之間邊的權重,ws(vm)表示節(jié)點vm的權重。z表示歸一化因子,表示與節(jié)點vi相連的邊的權重之和,計算公式如下所示:
本發(fā)明使用networkx中的pagerank計算包迭代計算詞語網絡圖中的節(jié)點權重,參考網址如下:http://networkx.github.io/。
本發(fā)明利用語義表示技術和搜索引擎網頁排序技術,綜合考慮詞語在文本中的語義特征和結構特征,適用于面向特定任務的文本關鍵詞提取,實現從文本中獲取重要信息的功能,為文本挖掘、自然語言處理、知識工程等領域提供重要的技術支持。