PAI文本分析實驗:常用文本分析組件及案例實戰
上一篇介紹了PAI以及機器學習相關的一點知識,沒有深入算法原理,只是從使用角度出發熟悉了操作流程,後面隨著學習的深入,我也會對算法原理做一個詳細的闡述。這次我們還是繼續實戰,認識機器學習在文本分析領域是如何工作的。先貼出官方的教程:機器學習PAI眼中的《人民的名義》。
準備開始
還是在阿裏PAI環境下,我們從實驗模板:人民的名義分析進入,然後點擊去PAI平臺創建,這樣就在機器學習頁面創建好了實驗。接下裏設置各個組件的參數,我們先看下模型圖:
你會發現模板創建的結果和教程的模型圖不一樣。這裏我們要自己添加紅色框內的組件,自定義分詞、自定義停用詞、停用詞過濾和詞頻統計。所有組件直接在左側拖到工作區即可。接下來對整個實驗流程進行說明分析。
實驗流程
首先,我們要讀取待分析的文本,這部分是PAI公共庫的數據,創建好模板會自動導入。數據是九段文本,節選自人民的名義,後面的分析都是基於這部分數據做的。我們可以右鍵點擊查看數據:
Split Word
接下來為了分析,我們需要切分文本內容,也就是通過split_word組件,這是基於AliWS詞法分析系統,對指定列文章內容進行分詞,分詞後以空格作為分隔符。但是我們既然要分析人民的名義,那麽必須保證關鍵人物被正確分詞,這個需要我們給split_word組件添加一個詞庫,這樣再遇見我們定義的關鍵詞時就能正確切分了。文件可以在這裏下載:name_ split。
停用詞
接下來還要添加停用詞,那什麽是停用詞呢?停用詞就是句子中的幹擾詞,比如“什麽,這,那,了,的,還有一些符號!,?,:”等,只要不影響我們分析的結果,其實都可以過濾,這是一份中文停用詞表(1208個).txt,不過這裏我們只能傳遞單個停留詞
詞頻統計
當設置好了數據源、分詞、停用詞過濾,就可以做詞頻統計:在對文章進行分詞的基礎上,按行保序輸出對應文章ID列(docId)對應文章的詞,統計指定文章ID列(docId)對應文章內容(docContent)的詞頻。添加詞頻統計組件,設置文檔ID列,和文檔內容列即可。
關鍵詞抽取
關鍵詞抽取是自然語言處理中的重要技術之一,具體是指從文本裏面把跟這篇文章意義最相關的一些詞抽取出來。本算法基於TextRank,它受到網頁之間關系PageRank算法啟發,利用局部詞匯之間關系(共現窗口)構建網絡,計算詞的重要性,選取權重大的做為關鍵詞。
可以看上面這張圖,比如制定一個規則:相鄰3個words之間有關聯,那麽就把它們連起來,這樣整段內容可以形成一個網絡圖,它的邊上與之關聯的詞越多(詞頻高)說明這個詞就是key word。
文本摘要
所謂自動文摘就是利用計算機自動地從原始文獻中提取文摘,文摘是全面準確地反映某一文獻中心內容地簡單連貫的短文。本算法基於TextRank,通過提取文檔中已存在的句子形成摘要。點擊查看數據可以看到根據九段內容提煉的摘要。
運行結果
每一步都可以通過右鍵查看數據,這裏我們取兩個直觀的結果做檢驗。關鍵詞提取組件可以返回每章關鍵詞語以及權重,通過這個結果可以看到每一章的關鍵人物有哪些,以及他們的權重排名情況:
下面是詞頻統計的部分結果,可以看到每一章不同單詞出現的次數統計:
結果基本和官網實驗結果差不錯,有個別差異是因為所選分詞和停用詞不同造成的。最後一個是語義向量距離,反應段落之間的相關性:
我們把結果按distance由近到遠排序,可以看到向量距離最小的A區域語句相關度還是比較高的,理解就是相鄰段落故事相關性較大,而距離比較遠的差異就會比較大,比如紅框中數據。
~ 完 ~
PAI文本分析實驗:常用文本分析組件及案例實戰