1

我使用Weka的樸素貝葉斯做文本分類。我有兩個句子,分別是「積極」和「消極」。我收集了大約207個有正面意義的句子和189個負面意思的句子,以創建我的訓練集。良好的性能僅適用於一類樸素貝葉斯

當我用一個含有強烈否定意義的句子(如「仇恨」一詞)的測試集運行樸素貝葉斯時,結果的準確性相當不錯,大約爲88%。但是,當我使用具有積極意義的句子,如「愛」這個詞作爲一個測試集時,準確度要差很多,大約爲56%。

我認爲這種差異可能與我的訓練集,尤其是它的「積極」句子有關。

你能想出任何可以解釋這種差異的原因嗎?或者,也許可以幫助我找出問題的起點?

非常感謝您的時間,

Nantia

+0

你嘗試使用交叉驗證?你的情況似乎只是一個巧合。 – berkay

回答

1

而不是創建只包含正或負的樣本,我只想創建一個測試用混合樣品集試驗檯。您可以查看Weka中導致的混淆矩陣,從而可以查看分類後的正面和負面樣本的效果。此外,我會使用(10倍)交叉驗證來更穩定地衡量性能(一旦你完成了這個工作,你可能想用混淆矩陣交叉驗證結果來編輯你的帖子,我們可能會幫助你更多)。

1

這可能是因爲你的否定句子有更一致的單詞,而你的肯定句子中存在的單詞有更多的變化,或者這些單詞也經常出現在否定句子中。

如果不知道字典的大小(即屬性的數量),測試集的大小等,很難給出具體的建議。由於樸素貝葉斯分類器會計算單詞出現概率的乘積或缺席,我會採取一些錯誤分類的正面例子,並檢查正面和負面分類的條件概率,看看爲什麼這些例子被錯誤分類。

1

爲了更好地理解分類器的工作原理,可以檢查參數以查看分類器認爲哪些詞對句子的正面/負面影響最大。你能打印出正面和負面情況的最佳預測嗎?

例如,

top positive predictors: 
p('love'|positive) = 0.05 
p('like'|positive) = 0.016 
... 

top negative predictors: 
p('hate'|negative) = 0.25 
p('dislike'|negative) = 0.17 
...