1

我想將文本集合分爲兩類,比方說我想做一個情感分類。我有兩個預先製作的情感詞典,一個只包含正面的詞,另一個只包含負面的詞。我想將這些字典合併到SVM分類器的特徵向量中。我的問題是,是否有可能區分正面和負面的單詞詞典以表示爲SVM特徵向量,特別是當我爲測試集合生成特徵向量時?使用預製字典進行文本分類的SVM特徵向量表示

如果我的解釋不夠清楚,讓我舉個例子。比方說,我有這兩個句子作爲訓練數據:

Pos: The book is good 
Neg: The book is bad 

字「好」的存在正字典和「壞」存在於負的字典,而在沒有詞典中不存在等字樣。我希望匹配詞典中存在的詞與句子的類別具有很大的權重值,而其他詞則具有較小的價值。因此,特徵向量將是這樣的:

+1 1:0.1 2:0.1 3:0.1 4:0.9 
-1 1:0.1 2:0.1 3:0.1 5:0.9 

如果我想測試一句分類「的食物是壞」,我應該如何生成依賴於測試與權重集的特徵向量現有的字典,當我無法匹配測試句子的類與每個字典?我能想到的是,對於測試集,只要這個詞在這兩個詞典中都存在,我會給這個詞賦予一個高權重值。

0 1:0.1 3:0.1 5:0.9 

我不知道這是否是創建訓練集和測試集的矢量表示的正確方法。

- 編輯 - 我忘了提及這些預製的字典是使用某種主題模型提取的。例如,來自主題1的前100個單詞有點代表積極的類別,而主題2中的單詞代表負面的類別。我希望使用這種信息來改進分類器,而不僅僅是使用袋裝詞功能。

回答

1

總之 - 這不是它的工作方式

整點學習是給分類器賦予它們自己權重的能力。你不能「強迫它」爲一個特定的特性獲得每個類的高價值(我的意思是,你可以在優化級別上,但這需要改變整個svm結構)。

所以正確的方法是簡單地創建一個「正常」的表示。沒有任何額外的規範。讓模型決定,他們在統計分析方面比人類直覺更好,真的。

+0

根據我的理解,根據你的回答,如果我按照上面提到的條件實施分類,我需要將正面和負面的詞典合併爲一個。之後,如果在這個組合字典中存在一個單詞,給它一個高值,否則低值,並讓分類器決定其餘的。是對的嗎? – tomgun

+0

您應該簡單地創建一個字典,並在頂部使用SVM。它會自行分配正確的權重,不要試圖對它進行過度設計,但這絕非一個好主意。爲了達到你描述的目標(這又不是一個好主意),你將不得不改變優化過程,在特定的權重上添加符號約束,這可能會限制雙優化技術的應用(不確定它將需要檢查幾個條件),並在原始中爲您留下漸變優化(對於線性情況而言,這是很好的)。 – lejlot