超簡單!文本機器分類入門 / Text Classification with Weka
這篇「超簡單!文本機器分類入門」是我在2017年3月於政大圖檔所資料探勘課程中的演講內容,之後演化成後來我在巨量資料探勘與統計應用課程中「非結構化資料分析:文本分類」單元的內容。如果想要看比較完整的文本分類介紹,請看「非結構化資料分析:文本分類」這篇。不過想要看獨立的文本分類課程的話,那也可以從這篇開始看起喔。
大綱 / Outline
- 從資料談起:非結構資料到結構資料
- 文本語義分析
- 機器學習:文本分類
- 找出分類關鍵字:特徵篩選
- 進階文本分類:如何讓分類更精準
- 結論
投影片 / Slide
- 投影片:Google Presentation
- 其他格式:
- SlideShare 、 GitHub 、 OneDrive 、 Box 、 Mega 、 MediaFire 、 Google Drive
我以Google簡報的檔案匯出成PPTX,再備份到以下位置:
工具程式 / Tools
- 本機安裝工具:Weka 3.8.1 下載 (Windows / Mac OS / Linux)
- 資料處理工具:Google雲端硬碟:需有Google帳號 (因為Excel處理中文會變成亂碼,在此不建議使用Excel)
網頁工具:
文本資料 / Text data set
小結 / In closing
本單元的靈感跟部分內容來自於「王者歸來: WEKA機器學習與大數據聖經」一書。但是書中在介紹「文字分類」一節時,必須要先對文本進行大量的前處理,而最後的輸出也不容易閱讀。因此這讓我開始了後面一連串用自行製作的網頁來輔助Weka分析的開發。到目前為止,有好好整理的Weka工具包括了「Jieba-JS與文字探勘」、「分群結果分析器」跟「貝氏網路工具」三個專案。其中,中文斷詞工具Jieba-JS我在演講前事先專文撰寫,但實際上那篇Jieba-JS的功能是為了這次的演講,而這次的演講則是為了我在巨量資料探勘與統計應用課程中最後一個單元「非結構化資料分析:文本分類」而準備。
(圖片來源:賭神2 - 宅熊看國片)
雖然不到一年,但這個演講可說是準備整個巨量資料探勘與統計應用課程的開始,也花了3個月之久。當時做完演講之後就忙著繼續準備課程的備課,所以並沒有及時寫成blog。過了半年之後,這份演講終於重見天日,有機會跟大家見個面,想來真是感嘅。
這篇對於文本分類的一些想法,我都已經寫在「非結構化資料分析:文本分類」中了。這篇就算是為我在三月的演講作一個記錄吧。
有位網友來信詢問問題。問題本身不涉及隱私資料,我把問題和回答放在這裡,供後面其他人參考。
回覆刪除1. 我有試著用自己的dataset丟進去跑,但到select attributes階段時,infoGainAttributeEval是反白的,無法執行,這邊您會知道是甚麼問題嗎?
https://lh3.googleusercontent.com/-lJNq1kfzMdw/YJ0grgMFs9I/AAAAAAAE9r8/QJJe6FSH29ofC0R44Iw_j6GngKNuQqgBACLcBGAsYHQ/s1600/2021-05-13_205020.png
infoGainAttributeEval的可接受資料類型(Capabilities)如下:
Class -- Binary class, Missing class values, Nominal class
https://lh3.googleusercontent.com/-nDY8tYxCst4/YJ0grqdBsxI/AAAAAAAE9sA/CH8LfjXdUvg_ixOPRzi9QoycEQmhI6sCQCLcBGAsYHQ/s1600/2021-05-13_204738.png
因此當class是連續數值型(numeric)的時候,就不能使用infoGainAttributeEval
2. 假設attributes的ranking出來了,我想排除ranking比較後面的attributes,再重新跑一次classify,這邊該如何操作比較適合?
https://lh3.googleusercontent.com/-XNU5HkMspwU/YJ0hbB0f9jI/AAAAAAAE9sM/hRKosT-LQ1clC2-9UTSw4q2aoAlA87YRACLcBGAsYHQ/s1600/2021-05-13_205335.png
請搭配AttributeSelectedClassifier使用
weka.classifiers.meta.AttributeSelectedClassifier