Lucene.Net 使用於情緒分析 ( Opinion Mining )

摘要:Lucene.Net 使用於語意分析 ( Opinion Mining )

在這裡我們假設要把線上的各種評論分成是正面或者是負面的言論分類 , 

 

最簡單的方式是使用貝氏過濾法 , 其過程就類似分類垃圾郵件那樣 , 

 

我們得訓練兩個詞庫 , 一個是負面詞庫 , 一個是正面詞庫 ,

 

再來訓練詞庫 , 依此來判斷是正面或負面意見  , 關於詞庫的建立

 

可參閱 O'Reilly 的 Bad Data 一書 , 其中提到可依照型態來區隔 , 

 

例如電影評論可能跟其他地方的評論是不同的 

 

可參考先前發表的文章 : 

 

Lucene.Net Spam Filter 

 

 

建立詞庫 : 

 

建立詞庫的語法可參閱   Lucene.Net 建立索引

 

  1. 足夠的評論數量
  2. 分 類的平衡 , 評論通常會呈現極端化 , 如5顆星的評論通常遠多於一顆星的評價 , 因此必須限制 pos  評論的數量來平衡 pos 和 neg 分類

 

選擇適當的分類演算法 : 

 

  1. 貝氏過濾
  2. Maximum Entropy
     

在 Bad Data 技術手冊中 , 作者認為 Maximum Entropy 處理得比貝氏過濾法好

 

訓練分類器 : 

 

可參閱 NLTK - trainer

 

 

各種提供自然語言分析的函數庫例如 Python 的 NLTK ,  Net 平台的使用者也許

 

可以選擇 SharpNLP 開始 , 其他還有 Stanford Parser

 

 

資料來源 : 

利用文字探勘分析大眾觀感

Opinion Mining 解釋

Bad Data 技術手冊

最大熵學習法