版權聲明:本文由文智原創文章,轉載請註明出處:
文章原文連接:https://www.qcloud.com/community/article/130html
來源:騰雲閣 https://www.qcloud.com/community算法
關鍵詞是指能反映文本主題或者意思的詞語,如論文中的Keyword字段。大多數人寫文章的時候,不會像寫論文的那樣明確的指出文章的關鍵詞是什麼,關鍵詞自動標註任務正是在這種背景下產生的。網絡
目前,關鍵詞自動標註方法分爲兩類:1)關鍵詞分配,預先定義一個關鍵詞詞庫,對於一篇文章,從詞庫中選取若干詞語做爲文章的關鍵詞;2)關鍵詞抽取,從文章的內容中抽取一些詞語做爲關鍵詞。app
在文獻檢索初期,因爲當時還不支持全文搜索,關鍵詞就成爲了搜索文獻的重要途徑。隨着網絡規模的增加,關鍵詞成爲了用戶獲取所需信息的重要工具,從而誕生了如Google、百度等基於關鍵詞的搜索引擎公司。分佈式
關鍵詞自動標註技術在推薦領域也有着普遍的應用。如圖1所示,當用戶閱讀圖中左邊的新聞時,推薦系統能夠給用戶推薦包含關鍵詞」Dropbox」、」雲存儲」的資訊,同時也能夠根據文章關鍵詞給用戶推薦相關的廣告。
圖1基於關鍵詞的資訊推薦系統工具
關鍵詞能夠做爲用戶興趣的特徵,從而知足用戶的長尾閱讀興趣。傳統的信息訂閱系統通常使用類別或者主題做爲訂閱的內容,如圖2所示。若是用戶想訂閱更細粒度的內容,這類系統就無能爲力了。關鍵詞做爲一種對文章更細粒度的描述,恰好能夠知足上述需求。
圖2傳統的訂閱系統測試
除了這些之外,關鍵詞還在文本聚類、分類、摘要等領域中有着重要的做用。好比在聚類時,將關鍵詞類似的幾篇文章當作一個類團能夠大大提升K-means聚類的收斂速度。從某天全部新聞中提取出這些新聞的關鍵詞,就能夠大體知道那天發生了什麼事情。或者將某段時間中幾我的的微博拼成一篇長文本,而後抽取關鍵詞就能夠知道他們主要在討論些什麼話題。優化
文章的關鍵詞一般具備如下三個特色[1]:ui
從上述三個特色,能夠看到關鍵詞標註算法的要求以及面臨的挑戰:a.新詞發現以及短語識別問題,怎樣快速識別出網絡上最新出現的詞彙(人艱不拆、可行可珍惜…)?b.關鍵詞候選集合的問題,並非文章中全部的詞語均可以做爲候選;c.怎麼計算候選詞和文章之間的相關性?d.如何覆蓋文章的各個主題?搜索引擎
關鍵詞分配算法須要預先定義一個關鍵詞詞庫,這就限定了關鍵詞候選範圍,算法的可擴展性較差,且耗時耗力;關鍵詞抽取算法是從文章的內容中抽取一些詞語做爲標籤詞,當文章中沒有質量較高的詞語時,這類方法就無能爲力了。爲了解決上述這些問題和挑戰,咱們設計了層次化關鍵詞自動標註算法.
針對新聞的關鍵詞識別任務,咱們設計了一套層次化的關鍵詞體系,如圖3所示。第一層是新聞頻道(體育、娛樂、科技、etc),第二層是新聞的主題(一篇新聞能夠包含多個主題),第三次是文章中出現的標籤詞。
圖3層次化關鍵詞體系
三層關鍵詞體系有如下幾個優勢:
三層關鍵詞體系從不一樣角度描述文章所表達的內容,從而能讓標註結果能更好地覆蓋文章的各個主題,緩解了關鍵詞覆蓋度不夠的問題。
因爲各層之間有隸屬關係,利用這種關係,能夠抽取出更相關的關鍵詞,如:「非誠勿擾」在娛樂新聞中多是指娛樂節目或者電影,能夠做爲一個關鍵詞;若是是出如今汽車新聞中,則不太多是文章的關鍵詞。
圖4層次化關鍵詞自動標註結果示例
從圖3中能夠看出,主題和標籤詞依賴於新聞頻道,因此在標註一篇新聞的關鍵詞時,首先須要獲取新聞的類別,而後根據新聞的類別選擇不一樣的主題模型預測新聞的主題,最後再抽取新聞中的標籤詞。
在關鍵詞標註方法上,咱們融合了關鍵詞分配和關鍵詞抽取兩類方法。圖5描述了算法處理一篇文章的流程。其中頻道和主題的抽取方法屬於關鍵詞分配這一類算法,標籤詞抽取則屬於關鍵詞抽取這一類算法。除了上一節中所說的層次化關鍵詞的兩個優勢以外,咱們的算法有以下幾點好處:
2.1 文本分類器
文本分類器咱們採用最大熵模型[2],使用業務最近一年帶頻道標籤的新聞做爲訓練集。每一個頻道選取頻道相關度最高的1W個詞語做爲分類特徵。
對於最大熵模型,網上能夠找到不少相關資料,這裏就不做介紹了。
2.2 主題預測
使用LDA[3]做爲主題聚類模型。LDA開源的大部分開源實現都是單進程的,在處理較大規模的語料時,其時間和內存開銷都很是大,沒法知足咱們的要求。所以咱們實現了一套分佈式的LDA平臺,使得可以快速處理大規模的數據。
語料經過LDA平臺處理後,會獲得每一個主題下機率較高的詞語。人工選取質量較高的主題,並使用一個詞語或者短語歸納這個主題。對於一篇文章,LDA的inference結果是一個機率向量,咱們選取機率值大於閾值的主題做爲文章所屬的主題。
圖6高質量的主題
圖7文章的主題關鍵詞
2.3 標籤詞抽取
標籤詞抽取包括:生成候選詞和相關性計算。下面分別介紹這兩部分。
1)生成候選詞
經過分詞獲得的基本詞、短語等,過濾掉基本詞中的停用詞
命名實體(有效解決新詞、熱詞的自動發現)
2)相關性計算
使用線性加權對候選詞打分,其特徵包括:
選取相關性得分大於閾值的候選詞做爲文章的標籤詞。
在騰訊網上隨機抽取的351篇新聞上作測試,各項指標如表格1所示。因爲主題集合的開放性,其召回率很難評價,故只評價其準確率。
表格1 層次化關鍵詞自動標註算法準召率
對抽取錯誤的關鍵詞進行分析,算法還存在一些問題,後續會針對這些問題繼續改進。
目前已經接入的公司業務有:騰訊新聞客戶端、手機Qzone個性化資訊。歡迎有需求的團隊聯繫咱們,使用騰訊文智天然語言處理。
參考文獻 [1] 劉知遠. 基於文檔主題結構的關鍵詞抽取方法研究[D]. 北京: 清華大學, 2011. [2] Berger A L, Pietra VJ D, Pietra S A D. A maximum entropy approach to natural languageprocessing[J]. Computational linguistics, 1996, 22(1): 39-71. [3] Blei D M, Ng A Y,Jordan M I. Latent dirichlet allocation[J]. the Journal of machine Learning research,2003, 3: 993-1022.