邱利茂,劉嘉勇
(1.四川大學電子信息學院,成都610065;2.四川大學網絡空間安全學院,成都610065)
在信息爆炸的時代,為了快速找到人們想要的文檔,先后出現了門戶網站、分類網站、搜索引擎,這三類產品在很大程度上解決了信息過載問題[1]。其中,搜索引擎使用最為便捷高效,在當今被廣泛的使用,國外的搜索引擎如Google、Bing搜索引擎,在國內有百度、搜狗等搜索引擎。人們在搜索引擎當中輸入關鍵詞,搜索引擎在短時間內找到和關鍵詞相關性最強的網頁,往往這就是用戶期待的結果。搜索引擎利用關鍵詞匹配在很大程度上解決了海量數據的查找問題,但是搜索引擎最原始的功能是通過關鍵詞匹配,難以發現用戶潛在的搜索關鍵詞[2-3]。例如某位成都科技大學校友輸入“成都科技大學”進行搜索,但其實成都科技大學是四川大學的前生,因為搜索引擎根據關鍵詞僅僅匹配到和成都科技大學有關的文檔,不能通過“成都科技大學”一詞發現用戶的潛在和關鍵詞“四川大學”相關的文檔。另外一種情況是用戶并不知道自己要找的文檔的關鍵詞,例如用戶很想知道和羅斯福總統在第二屆任期搭班的副總統的資料,但是他又只知道羅斯福總統的名字,如果直接搜索“羅斯福”那么絕大多數文檔都不會包含相應副總統的資料。為了解決這個問題,可以使用關聯關鍵詞推薦技術。關聯關鍵詞推薦技術根據用戶輸入的詞語,推薦與該詞語關系緊密的關鍵詞,這些關鍵詞有很大可能是用戶的潛在興趣點,解決了使用搜索引擎中難以發現用戶潛在興趣點的問題。
崔婉秋[4]等在2016年提出的耦合關系分析下的Top-k關鍵字推薦方法,文章通過分析關系型數據中的詞條與用戶初始化查詢所提供的關鍵詞之間的語義相關性,為用戶提供語義相關關聯關鍵詞推薦。但這種方法嚴重依賴于數據庫中存在的體條,并且更新困難,如果關系型數據中存在的詞條數量不足,或者不是同一個領域的詞條,將很難做到有效的關聯推薦。
溫有奎[5]在2016年針對用戶的搜索詞匹配,以關聯關鍵詞匹配組合的方式進行推薦,解決了信息檢索的透明性問題[5],但是推薦的詞匯是系統詞匯庫中的子集,詞匯需要人工維護,詞匯的質量和數據某種程度上決定了推薦效果的優劣。
依靠用戶提供反饋的方法實現為用戶推薦詞條將增加用戶的使用時間成本,另外所推薦的關鍵詞受到用戶行為記錄影響較大,新加入的推薦語料不容易被系統所使用。另外,以關鍵詞匹配組合方式的推薦方法對原始詞庫的依賴性強,針對不同領域需要建立不同的詞庫。為了解決以上不足,本文提出基于文檔詞典的文本關聯詞條推薦技術,以用戶輸入的關鍵詞在語料庫中根據詞頻向量模型算法檢索出評分最高的N篇文檔,將選出的文檔使用TextRank算法提取出的關鍵詞反饋給用戶,本技術不考慮用戶搜索的歷史記錄,根據語料庫來向用戶推薦關鍵詞,使得推薦結果更為客觀,新加入的預料將有同等被推薦概率,并且更多的語料加入系統將獲得更好的推薦效果。另外本算法對不是針對特定領域的關鍵詞推薦,選擇不同領域的語料,能夠針對不同領域做關鍵詞推薦。
本文所設計的推薦算法步驟如圖1。算法根據用戶指定的關鍵詞做關聯關鍵詞推薦,算法首先使用TF-IDF算法根據關鍵詞在語料庫中選取與關鍵詞相對相關度高的文檔,然后用TextRank關鍵詞提取算法對篩選出的文檔提取關聯關鍵詞,最后選取評分最高的N個關聯關鍵詞推薦給用戶,完成推薦。

圖1 關鍵詞推薦算法流程圖
在一篇文檔中,一個詞語在其中的權重越高,那么可以認為這篇文檔與這個關鍵詞關聯性強,本文采用TF-IDF算法根據關鍵詞篩選與之關聯性強的文檔。TF-IDF的主要思想是在一篇文章中,某個詞語的重要性與該詞語中出現次數成正比,同時與整個語料庫中出現該詞語的文章數成負相關[6]。TF-IDF中,TF表示詞頻(Term Frequency),表示一個詞語在給定文檔集中出現的頻率,IDF表示逆向文檔頻率(Inverse Document Frequency),該指標評判一個詞的普遍重要程度。TFIDF值的計算公式如公式(1):

其中w為待檢索的關鍵詞,d表示一篇文章,tfw,d表示關鍵詞w在文檔d中出現的次數,Nd表示文檔d當中關鍵詞總數,N表示文檔集的數量,dfw表示文檔集中出現過w關鍵詞的文檔數量。
從公式中可以看出,針對某一個文檔集,對于某個關鍵詞,如果該關鍵詞在其中一個文當中出現的次數多(tfw,d較大),但是含有該詞語文檔數目較低(dfw較小),就可以得到一個高TF-IDF值的詞語,因此,TFIDF算法有效地過濾了常用詞,并提升了重要詞語的權重,同時一個關鍵詞在一篇文章當中權重越高,表明該文檔與關鍵詞的關聯性也越強。
本算法中的語料為普通文本文檔,例如新聞文檔。為了根據用戶的輸入關鍵詞推薦詞條,首先要在語料庫當中篩選出與關鍵詞相關的文檔。首先通過TF-IDF算法篩選關聯文檔,步驟如下:
①將語料庫中所有文檔做中文分詞處理,并出去文檔當中的停用詞,例如“的”、“了”以及標點等字符。
②計算各個詞語在每篇文檔出現的次數并統計得出一篇文檔中詞語總個數,記為Nd,對于文檔中出現過的詞語,對其在文檔集中出現的次數增加計數,記為dfw。
③對于一個給定輸入的關鍵詞w0,對每一篇文章采用公式(1)計算改詞在文檔中的TFIDF值,根據推薦精度需求,選取TFIDF值最大的前m篇文檔。
通過計算TFIDF值計算,篩選出和用戶給定關鍵詞相關的文檔,這些從語料庫中篩選出的文檔中很大概率包含了和用戶指定的關鍵詞的關聯詞條。下一步從這些關聯性很強的文檔中提取出與給定關鍵詞關聯性強的詞條。
TextRank算法提取文檔關鍵詞的方法如下:
對于詞語與詞語之間的關聯,本算法基于這樣的假設:如果文檔當中確定了某一主題,那么該文檔當中所出現的關鍵詞與該主題相對關聯度較高。在上一節,已經通過TF-IDF算法獲取到與關鍵詞關聯緊密的文檔,可以認為這些文檔的主題與該關鍵詞貼近。通過提取這些文檔的關鍵詞即可找出對應的關聯關鍵詞。本文采用TextRank算法和下文的關鍵詞提取步驟提取文檔關鍵詞。
TextRank是一種基于圖論的算法,該算法基于谷歌的PageRank算法改造演化而來[7]。PageRank的思想主要是:如果很多網頁同時指向某一個網頁,那么被引用的網頁占據比較重要的位置,如果一個很重要的網頁引用了另外的一個網頁,那么另外一個網頁的權重也應當提升[8-9]。TextRank算法將關鍵詞類比于PageR?ank算法中的網頁,進而計算關鍵詞權重。
對于一篇文檔的一個詞語,定義某個詞語前一個詞為該詞前驅,后一個詞為該詞的后繼。對于一篇文章的詞語來說,TextRank基于兩個假設:
①數量假設:在一篇文檔中,如果一個詞語的前驅越多,那么這個詞語也就越重要。
②質量假設:在一篇文檔中,擁有高權值前驅的詞語將傳遞更多的權值給后繼詞語。如果一個詞語權值越高,則它的后繼詞語的權值也會相應的提高。
其計算公式為公式(2):

其中wi表示待計算的詞語,α表示權值,取經驗值0.85,N表示該文檔中擁有的詞語總數。wj表示后繼為wi的詞語。
關鍵詞提取的目的是在文檔當中自動抽取出若干個能夠表征該文檔的一組關鍵詞。TextRank算法利用詞語之間的局部位置關聯關系,從文本提取關鍵詞。計算一篇文檔的關鍵詞采用以下步驟:
①把文檔進行中文分次,本文采用python開源分詞庫jieba,分詞后,文檔采用向量表示為T=[w1,w2,w3,w4,….,wm]。
②對于每篇文檔中的詞語wi∈T,進行詞性標注處理,并過濾到停用詞,只保留指定詞性的詞向量,例如在推薦單詞中,一般保留名詞。即D=[c1,c2,c3,c4,….cn],其中 ci∈T 且 n<m。
③構建候選關鍵詞圖G=(V,E),其中V為節點集合,由D中的關鍵詞組成。然后根據關鍵詞的位置關系,詞語對應點Vi的入邊節點為該詞的前驅節點,同理對應的出邊出節點為該詞的后記節點。
④根據公式(2)迭代計算節點權重,直到TextRank值收斂。
⑤根據節點值的大小,取前N個關鍵詞即為所推薦。
通過以上5個步驟可以從文檔中提取出關鍵詞。本步驟所使用的文檔為第一節通過用戶關鍵詞預篩選的文檔,從而這個步驟所得到的文本集和用戶所搜索的關鍵詞比較相關。然后將這些文檔合并成為一個文檔,并通過以上TextRank方法步驟提取這個組合文檔的關鍵詞,最終得到給用戶推薦的關鍵詞。
選用用語更加規范的文檔作為語料,可以避免語料當中的簡寫、新詞等干擾,因此實驗分別采用人民日報財經版和人民日報科普版的新聞作為推薦系統的語料。指定200個待測試關鍵詞,讓不同的人閱讀這些新聞,結合自身的知識針對這200個關鍵詞給出對應的關聯關鍵詞,對于人工標記給出的關聯關鍵詞記為T(u)。最后將200個待測試關鍵詞輸入本文的推薦系統,推薦系統計算出的關聯關鍵詞記為R(u),如果推薦系統給出的關鍵詞在人工給出的關聯關鍵詞庫中記為正確,否則記為錯誤。
本文選取張麗穎在2016年提出的基于聚類的關鍵詞推薦研究[13],作為對比試驗,以下稱為參考文獻[13]。張麗穎在實驗中通過與用戶交互,讓用戶對一些文檔做人工打分處理,這樣獲得到高價值的文檔,然后根據這些文檔做分詞處理,形成文檔-詞項矩陣,然后將其聚類,取對應類別的前N個詞作為推薦。
實驗結果本文推薦系統的評價指標主要準確率和召回率,這兩個指標是推薦算法最重要的基礎指標[14]。準確率用于表征系統能夠準確的向用戶推薦相關的關鍵詞的概率,而召回率用于評價用戶期望的關鍵詞能夠得到推薦的概率。其中準確率如公式(3):

其中R(u)為用戶推薦的關鍵詞列表,T(u)為用戶在測試集上預期的關聯關鍵詞列表。
召回率計算公式如公式(4):

其中R(u)為用戶推薦的關鍵詞列表,T(u)為用戶在測試集上預期的關聯關鍵詞列表。最終實驗結果兩項評價指標與參考文獻[13]對比表1:

表1 實驗準確率與召回率
從表1可以看出,關聯關鍵詞準確的準確率相對較低,但是有較高的召回率,這是由于在關聯關鍵詞推薦的場景當中,一個詞語的在不同的場景中關聯關鍵詞有所不同,而在本次實驗中,沒有將近義詞做等同處理,因此準確率低。但算法有較高的召回率,在本場景的推薦中,用戶不過多關心推薦是否每個都是自己想要的,但關心潛在需要找到的關聯關鍵詞能夠被推薦出來。本算法在準確率和召回率兩個指標上都有提高,這是因為相對于文獻[13],本算法不需要人工的對文檔進行評分,推薦的結果更為客觀,而通過用戶評分選出的文檔再做關聯關鍵詞推薦,選出的文檔有限,而且可能用戶評分不客觀,因此準確率和召回率上不如本算法。
對于推薦算法運行速度上,實現分別選取不同數量的文檔集,采用VirtualBox虛擬機將配置調到相同的配置,對比算法運行速度,對比結果如圖2。
從圖2可以得出,本算法的總體運行時間明顯比參考文獻[13]的運行速度要快,而且隨著被推薦的文檔集的數量增長,本算法的運行時間相對于參考文獻[13]更有優勢。這是因為新加入推薦語料,文獻[13]會對所有語料重新做聚類操作,而本算法可以使得在大量的文檔中,只選取與之相關度最高的前N篇文章做后續的推薦,雖然會丟失掉大部分的信息,但是這大部分文檔與要推薦的關鍵詞關聯不大。因此節約了大量運行時間。

圖2 文檔數量-算法運行時間圖
本文提出的基于文檔詞典的新聞關聯關鍵詞推薦能夠針對不同領域為用戶推薦關聯關鍵詞。在語料刪選過程中運用TF-IDF算法從語料庫中過濾出與關鍵詞相關的文檔,有效地去除了大部分噪聲文檔。然后使用TextRank關鍵詞提取算法,提取關鍵詞,即為推薦關鍵詞。與同類關聯關鍵詞推薦算法相比,本算法在準確率有大約提高7%,召回率也有所提升。另外本算法在運行時間上也有比較好的表現。因為本算法在第一階段使用TF-IDF算法預先篩選獲取到關聯文檔,所以算法對語料庫要求不嚴格,不需要人工分類和標記等工作,新加入的語料庫可以立即參與推薦,在適用和實時性方面都有較好的表現。但由于本算法在處理分詞上采用第三方分詞庫,分詞效果對推薦詞有影響,在分詞上,對不同領域需要做額外分詞的處理,才能取得更好的推薦效果。
參考文獻:
[1]Blank I,Rokach L,ShaniG.Leveraging Meta data to Recommend Keywords for Academic Papers[J].Journal of the Association for Information Science&Technology,2016,67(12):n/a-n/a.
[2]ZhangW,Xue GR,XueGR,etal.Advertising Keywords Recommendation for Short-Text Web Pages Using Wikipedia[J].Acm Transactions on Intelligent Systems&Technology,2012,3(2):36.
[3]李歡.個性化搜索引擎中關鍵詞推薦專利技術綜述[J].科技創新與應用,2017(5):95-96.
[4]崔婉秋,李昕,孟祥福,等.耦合關系分析下的Top-k關鍵字推薦方法[J].小型微型計算機系統,2016,37(8):1686-1691.
[5]溫有奎.信息檢索系統的關聯關鍵詞推薦研究[J].數字圖書館論壇,2016(4):11-14.
[6]張瑾.基于改進TF-IDF算法的情報關鍵詞提取方法[J].情報雜志,2014(4):153-155.
[7]張莉婧,李業麗,曾慶濤,等.基于改進Text Rank的關鍵詞抽取算法[J].北京印刷學院學報,2016,24(4):51-55.
[8]Nanos A G,James A E,Iqbal R,et al.Content Summarization of Conversation in the Context of Virtual Meetings:An Enhanced Text-Rank Approach[C].IEEE,International Conference on Computer Supported Cooperative Work in Design.IEEE,2017.
[9]Yu S,Su J,LiP,etal.Towards High Performance Text Mining::A Text Rank-based Method for Automatic Text Summarization[J].International Journal of Grid&High Performance Computing,2016,8(2):58-75.
[10]孫明.基于語義的信息檢索與關聯推薦關鍵技術研究[D].電子科技大學,2015.
[11]謝瑋,沈一,馬永征.基于圖計算的論文審稿自動推薦系統[J].計算機應用研究,2016,33(3):798-801.
[12]王煦祥.面向問答的問句關鍵詞提取技術研究[D].哈爾濱工業大學,2016.
[13]張麗穎.基于聚類的網絡輿情熱點關鍵詞推薦研究[D].華北電力大學(北京),2016.
[14]朱郁筱,呂琳媛.推薦系統評價指標綜述[J].電子科技大學學報,2012,41(2):163-175.