我想將文本集合分爲兩類,比方說我想做一個情感分類。我有兩個預先製作的情感詞典,一個只包含正面的詞,另一個只包含負面的詞。我想將這些字典合併到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中的單詞代表負面的類別。我希望使用這種信息來改進分類器,而不僅僅是使用袋裝詞功能。
根據我的理解,根據你的回答,如果我按照上面提到的條件實施分類,我需要將正面和負面的詞典合併爲一個。之後,如果在這個組合字典中存在一個單詞,給它一個高值,否則低值,並讓分類器決定其餘的。是對的嗎? – tomgun
您應該簡單地創建一個字典,並在頂部使用SVM。它會自行分配正確的權重,不要試圖對它進行過度設計,但這絕非一個好主意。爲了達到你描述的目標(這又不是一個好主意),你將不得不改變優化過程,在特定的權重上添加符號約束,這可能會限制雙優化技術的應用(不確定它將需要檢查幾個條件),並在原始中爲您留下漸變優化(對於線性情況而言,這是很好的)。 – lejlot