2011-08-01 84 views
1

我需要一個可靠和準確的方法來過濾推文作爲主觀或客觀。換句話說,我需要使用訓練集來構建像Weka這樣的過濾器。Twitter主觀訓練集

是否有任何訓練集可用作Twitter消息或其他可能轉移的域的主觀/客觀分類器?

+0

既然沒有這樣的事,作爲一個客觀嘰嘰喳喳的客觀定義,你不會找到一個預先存在的訓練集。 – bmargulies

+1

在twitter上發佈了主觀和客觀的信息......雖然訓練集可能並不完美,但對於所有信息來說,75%以上的準確信息已經足夠了......我不認爲你在這裏理解了目標......例如你可能會有正面,負面和中立的推文。我想確定哪些推文是正面/負面,哪些推薦是中性的... – NightWolf

+0

只是一個簡短的評論:objective!=中性。一個很好的例子是:Delphin是一條魚。這是對Delphin的中性和主觀意見。 – Skarab

回答

2

爲了研究和非營利目的,SentiWordNet爲您提供了您想要的。商業許可證也可用。

SentiWordNet:http://sentiwordnet.isti.cnr.it/

示例Java代碼:http://sentiwordnet.isti.cnr.it/code/SWN3.java

相關論文:http://nmis.isti.cnr.it/sebastiani/Publications/LREC10.pdf


另一種方法我會嘗試:

鳴叫1:@xyz你應該看到黑暗的騎士。它的awesme。

1)首先查找for的含義。

「u」和「awesme」不會返回任何東西。

2)然後去對比已知縮寫/速記和替代匹配與擴展 (有的資源:netlingo http://www.netlingo.com/acronyms.php或smsdictionary http://www.smsdictionary.co.uk/abbreviations

現在原來的鳴叫會看起來像:

分享Tweet 1: @xyz 應該看到黑暗騎士。它的awesme。

3)再喂其餘詞語的拼寫檢查以及與最佳匹配的替代品(始終不理想,而且容易出錯的小詞)

相關鏈接: Looking for Java spell checker library

現在原來的鳴叫會看起來像:

Tweet 1:@xyz你應該看到黑暗的騎士。它的真棒

4)分裂和飼料鳴叫成SWN3,聚集結果

這種方法的問題是,

一個)否定之否定應SWN3外進行處理。

b)表情符號和誇張標點中的信息將丟失或需要單獨處理。

+0

謝謝。看過SentiWordNet這看起來不錯。然而,這裏的問題在於,Twitter消息往往是拼寫錯誤,縮寫等,所以我認爲這可能不是最好的方法。你知道用SWN3實現詞義消歧的任何Java代碼嗎? – NightWolf

+0

對不起,我是一個Python傢伙...... :)一些相關論文可能有所幫助:http://www.hpl.hp.com/techreports/2011/HPL-2011-89.pdf http:// www。 stanford.edu/~richab86/CS224N.Go.Bhayani.pdf – Neodawn

2

CMU在某處有感情訓練數據。我不記得鏈接。CMU做Twitter和情感分析了很多:

寫英語與非英語樸素貝葉斯分類器的Twitter,並提出了〜例如開發/測試組準確率爲98%。如果你只是想了解問題,我認爲這樣的事情總是很好,但像SentiWordNet這樣的軟件包可能會給你一個良好的開端。

問題是定義什麼使推特的主觀或客觀!重要的是要明白,機器學習不是關於算法,而是關於數據的質量。

你提到75%的準確度是你所需要的....關於召回?如果您提供正確的培訓數據,您可能可以獲得這些數據,但需要降低召回成本。

+0

您的英語與非英語樸素貝葉斯分類器的twitter聽起來很有趣。這個人在GitHub上有什麼機會? – NightWolf

+0

不幸的是,它位於2000英里外的舊桌面盒子上!雖然代碼並不複雜,但花費時間的事情是標記所有數據。 – nflacco