【機器學習PAI實踐五】機器學習眼中的《人民的名義》

李博Garvin發表於2017-05-04

一、背景


最近熱播的反腐神劇“人民的名義”掀起來一波社會輿論的高潮,這部電視劇之所能得到廣泛的關注,除了老戲骨們精湛的演技,整部劇出色的劇本也起到了關鍵的作用。筆者在平日追劇之餘,也嘗試通過機器學習演算法對人民的名義的部分劇集文字內容進行了文字分析,希望從資料的角度得到一些輸入。

本文使用阿里雲機器學習PAI,主要針對以下幾個方面進行了實驗:

  • 分詞以及詞頻統計
  • 每一章的關鍵詞提取
  • 每一章的文字摘要
  • 每一章文字之間的相似度分析

實驗流程以及資料可以在阿里雲機器學習PAI的社群直接使用,只要點選“去PAI平臺建立”按鈕即可在自己的專案下生成實驗。社群部分截圖:

二、資料集介紹

資料來源:本文資料為人民的名義部分劇集文字,一共分成1-9個章節。
具體欄位如下:

欄位名 含義 型別 描述
id 文章唯一標識 string 文章標識
content 文章內容 string 部分劇集內容

資料截圖:

三、資料探索流程

首先,實驗流程圖:

1.分詞以及停用詞

分詞是文字分析的基礎,但是在“人民的名義”這樣的文字中會有很多特有名詞,是分詞演算法很難區分的。比如“侯亮平”、“沙瑞金”、“大風廠”等,所以我們需要在split word元件中加入一個詞庫,幫助分片語件可以對人名做正確的分詞處理。加入的詞庫fufeitest.splite_w如下圖:

另外,文字中一些“的”、“地”、“得”這樣的助詞以及各種標點符號也需要去掉,這些詞是沒有意義的,對文字分析有干擾,這些詞可以通過“停用詞過濾”元件去除。最終通過分詞以及停用詞過濾元件操作之後,文字內容被整理成了如下圖形態:

2.關鍵詞提取及詞頻統計

通過“詞頻統計”元件可以檢視每一章中各個詞語出現的頻率,如圖所示,id為1的文章中每個詞語出現的次數:

“關鍵詞”提取元件可以返回每個文章中關鍵的詞語以及權重,(如果我們在停用詞過濾那裡處理的更細緻,這部分效果會更好),通過這個結果可以看到每一章的關鍵人物有哪些,以及他們的權重排名:

3.文字摘要

“文字摘要”元件可以幫助您快速的瀏覽每一章節的關鍵內容,返回的是全文最關鍵的句子,我這裡設定的是返回前三關鍵的句子:

擷取的是第9章的摘要內容,如果看過這個劇,通過這個摘要可以大致瞭解到這是在講漢東省委關於幹部任用的會議的那一集。

4.相似文章分析

通過“Doc2Vec”元件可以將文字文章對映成高維向量化,將文字按照語義變成數學向量,結果如下:

然後可以通過”語義向量距離”元件挖掘出不同文章向量的距離,這裡面的隱含關係是文章向量距離越近,那麼語義越相近。我們以第9章為例:

第9章與第8章的向量距離最小,言外之意就是這兩章的語義相近,這一點也比較容易理解,因為相連的兩章在意義上肯定上是有一定的關聯性。

四、總結

本文通過對“人民的名義”部分章節文字的分析,幫助大家瞭解機器學習PAI上面的部分文字演算法的用法。如果向更深入的瞭解相關的內容,歡迎到PAI的社群來討論,我們會定時組織活動。

社群:PAI社群公眾號

產品頁:阿里雲數加機器學習平臺

相關文章