此課程是coursera 華盛頓大學開設的machine learning 專項的第一部分內容,僅做筆記、學習使用。
通過使用者對amazon 產品的評價,通過對評價文字進行分詞,建立分類器分辨使用者評價屬於好評還是差評(不涉及中評)。使用第三方庫為graphlab create。
對於句子進行分詞,將帶有情感傾向的詞語拿出來進行權重(weight), e.g.,計算乙個句子中出現的這些詞語的個數乘以權重,最後得分大於0,則此句話為積極評價,否則為消極評價,這是乙個非常簡單的線性分類器。其實,權重如何來?人為設定麼?什麼又是積極的詞?消極的詞?由於其是乙個概論,並未詳細**演算法。其實流行的還是樸素貝葉斯按照每個詞出現的頻率算概率。
乙個概念:majority class classifier(多數類分類器),就是說假設分類標籤有0和1,共有1500個樣本,標籤1佔1000個樣本,則標籤1就為majority class classifier,它的準確率為1000/1500=0.666,而你所建立的分類器**為1的準確率必須要大於0.666,這樣才有意義,說白了就是分類器**準確率要大於隨便猜的準確率。
* 準確率不能說明一切 *
如果資料出現不平衡,或者說我們希望某一類盡可能多的出現,則就需要關注混淆矩陣(confusion matrices)。精確度、查全率(召回率)的問題,
總的來說,訓練資料量越大,準確度越高。涉及到偏差和方差的問題,模型越複雜(特徵值種類越多),偏差越小,方差大,在訓練模型上準確率越高,過度關注與訓練資料,泛化能力差,容易出現過擬合現象。
products=graphlab.sframe('amazon_baby.gl/') #匯入結構為sframe的amazon資料
#將rating>4 分類為1,<4 分類為0。
有了features,labels可以進行分類器訓練
train_data,test_data=products.random_split(0.8,seed=0)
sentiment_model=graphlab.logistic_classifier.create(train_data,target='sentiment',features=['count_words'],validation_set=test_data)
sentiment_model.evaluate(test_data,metric='roc_curve') #評價模型
具體**見github: 基於LSTM分類文字情感分析
文字情感分析作為nlp的常見任務,具有很高的實際應用價值。本文將採用lstm模型,訓練乙個能夠識別文字postive,neutral,negative三種情感的分類器。本文的目的是快速熟悉lstm做情感分析任務,所以本文提到的只是乙個baseline,並在最後分析了其優劣。對於真正的文字情感分析,在...
情感分類 example
title 情感分類 example tags nltk 最近在讀 natural language processing with python 重點是學習如何進行文字的情感分類。在學習了一些簡單的python和nltk後,實踐第六章中的文件分類。由於自己用的是python3.5,而書中 是pyt...
情感分類 中文語料
title 情感分類 中文語料 data 2017 03 04 tags nltk 折騰了幾天終於上午用nltk實現了中文語料的分類。把整個流程記錄一下。用的是譚松波老師的酒店分類的語料庫,有四個版本 2000 balanced 4000 balanced 6000 balanced 10000 u...