近段時間,騰訊和阿裡在技術公開這件事情上隐隐有較勁的趨勢,這邊公開一個Tinker熱補丁技術,那邊就公開一個雙11背後的技術,似乎都在通過秀技術來争奪開發者的眼球,當然,這也是廣大開發者非常樂意看到的。下面這篇關于阿裡輿情熱詞分析的文章,稍作删減,難度很合适,值得一讀。
背景
阿裡雲公衆趨勢分析産品通過雲服務的方式,将阿裡巴巴成熟的輿情分析技術共享給廣大開發者。熱詞分析是公衆趨勢分析最近剛剛上線的功能,這個功能聽起來很簡單,不就是對數據源進行分詞,然後再統計一下熱度麼?No!它可沒那麼簡單。
分詞和實體識别
良好的分詞是熱詞分析的基礎。對于絕大部分分詞工具來說,最大的挑戰在于識别從未見過的網絡熱門詞、各種奇葩的品牌、産品詞等。舉個例子,“安利的空氣淨化器跟霍尼韋爾還有米家比怎麼樣”這個句子,我們随意在網上找到了某款開源的分詞工具,分詞的結果如下:
安利/的/空氣/淨化器/跟/霍尼/韋爾/還有/米/家/比/怎麼樣
分詞工具能識别一般的詞語,但是對于品牌詞、産品詞等專有的實體詞,在沒有知識庫的輔助下很難識别。而阿裡在互聯網尤其是電商領域耕耘多年,積累了豐富的詞庫,并始終在不斷更新,譬如上述句子,我們可以将其斷成如下形式:
安利:brd/的/空氣淨化器:prd/跟/霍尼韋爾:brd/還有/米家:brd/比/怎麼樣
不僅能正确地分詞,而且還能識别出其中的實體,如霍尼韋爾和米家是品牌詞(brd),空氣淨化器是産品詞(prd)。目前,公衆趨勢分析背後有百萬級的人名、品牌、地址、組織機構名、商品、品牌詞庫等做支撐。
關鍵詞提取
海量的文章帶來了巨大數量的詞,對于每篇文章,真正需要被關注的隻是少數關鍵詞,那麼如何在一篇長文本中挑出關鍵詞呢?熱詞分析使用TextRank算法為文本生成關鍵詞。
TextRank的算法思想來源于PageRank,旨在通過文本中句子、詞之間的相互投票,為句子、詞進行權重的排序。PageRank假設一個網頁的入鍊越多,則其權重越高。随機地為每個網頁分配一個初始權重,在每一輪投票中,每個網頁将其權重均勻地分配給其出鍊,收斂後(平穩馬爾科夫過程)每個網頁得到的權重值反映了其重要性。
PageRank通過頁面之間的鍊接關系建立投票機制,TextRank以此為啟發,通過詞之間的鄰近關系建立詞權重投票機制,即假如兩個詞出現在同一個窗口中,則它們之間産生一次權重投票,這樣可以通過PageRank的求解方法,計算每個詞在文本中的權重。得到權重的排序之後,就可以挑選topN詞作為關鍵詞了。
詞關聯計算
對于每個熱詞,我們提供了與其強關聯的詞,那麼,這些關聯關系如何計算呢?
詞關聯使用點互信息PMI(pointwise mutual information)來表示,用信息論的語言來表述,點互信息衡量的是“給定一個随機變量後,另一個随機變量不确定性的減少程度”。假設有兩個詞x和y,則x和y之間的點互信息由下述公式表示:
其中p(x,y)表示x和y同時出現的概率,p(x)和p(y)分别表示x和y單獨出現的概率。簡單粗暴地理解,就是說相對于單獨出現,某兩個詞更喜歡一起出現,則它們之間的關聯程度越高。
熱度計算
好了,現在我們已經能得到每篇文章的關鍵詞,而且也能計算跟這些關鍵詞有關聯關系的詞了,那麼詞的熱度如何衡量呢?詞的熱度計算不能僅僅統計這個詞在所有文章中的出現次數,因為每篇文章的熱門程度不一樣,汪峰上了頭條時的報道,對于熱度的計算不能跟一般的小道消息同日而語。熱詞分析在計算熱度時,會用文章的熱度對詞進行加權,而文章的熱度會綜合考慮以下因素:
- 文章的轉發量
- 浏覽量
- 評論量
- 文章發布的時間,如果發布時間越長,則熱度衰減地越高
這裡作者隻是對熱詞分析提供了一些分析思路,真正實踐起來還是需要算法的支持和反複調整各種影響因子。
最後,感謝原作者。
#專欄作家#
給産品經理講技術,微信公衆号(pm_teacher),人人都是産品經理專欄作家。資深程序猿,專注客戶端開發若幹年,對前端、後台技術略懂,熱衷于對新的科技領域的探索。
本文原創發布于人人都是産品經理。未經許可,禁止轉載。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!