2011-04-21 97 views
3

我有一個關於情感分析的問題,我需要幫助。關於情感分析的問題

現在,我收集了許多通過twitter搜索api收集的推文。因爲我使用了我的搜索條件,所以我知道我想查看哪些主題或實體(人名)。我想知道別人對這些人的感受。

對於初學者來說,我下載的與已知的化合價/情緒分數英語單詞的列表,並計算情緒(+/-)的基礎上在鳴叫這些詞的可用性。問題在於情感以這種方式計算 - 我實際上更多關注推文的語氣,而不是關於這個人。

舉例來說,我有這樣的tweet:

"lol... Person A is a joke. lmao!" 

的消息顯然是一個積極的基調,但一個人應該得到一個負數。

爲了改善我的情緒分析,我可以考慮從我的單詞列表中的否定和修飾語。但是,我如何才能將情緒分析看作是消息主題(可能是諷刺)呢?

這將是巨大的,如果有人能告訴我對某些資源....

+0

「是的,沒錯。」分析這條消息的語氣是一個挑戰。你需要意識到,你的分析總是會有**方式關閉併產生錯誤結果的情況(或者沒有正確結果存在!) – 2011-04-21 08:04:11

+0

由於大多數人無法在書面文本中檢測到諷刺,所以很難一個算法來實現這個目標。 – Simon 2011-04-21 10:35:43

回答

4

在等待從人工智能領域的研究人員,我會給予解答你有些線索可以快速做到。

即使這個話題需要自然語言處理,機器學習甚至心理學方面的知識,除非您絕望或對現場研究質量不信任,否則您不必從頭開始。

情感分析的一種可能方法是將其視爲一個監督學習問題,其中包含一些包含人工註釋的小型訓練語料庫(稍後會對此進行介紹)和一個測試語料庫,您可以在其上測試您的方法/系統正在執行。對於訓練,您需要一些分類器,如SVM,HMM或其他一些分類器,但要保持簡單。我會從二進制分類開始:好,壞。您可以對連續的意見範圍進行相同的處理,從正面到負面,即獲得排名,如谷歌,其中最有價值的結果是最重要的。

一開始檢查libsvm classifier,它能夠進行這兩項分類{好的,壞},並回歸(排名)的。 註釋的質量將對您獲得的結果產生巨大影響,但從何處獲得?

我發現one project about sentiment analysis與餐廳交易。既有數據又有代碼,所以你可以看到他們如何從自然語言中提取特徵,以及哪些特徵在分類或迴歸中得分高。 該語料庫由顧客對他們最近訪問過的餐廳的意見組成,並對食物,服務或氛圍給予了一些反饋。 關於他們的意見和數字世界的聯繫是用他們給餐廳的明星人數來表示的。您在一個網站上擁有自然語言,在另一個網站上擁有餐廳的價格

望着這個例子中,你可以設計你自己的說明這個問題的方法。 請看nltk。使用nltk,你可以做一些詞性標記,並且有一些好運的名字也可以。完成後,您可以爲分類器添加一個功能,如果在n個單詞內(跳過n-gram),會有一個分數給一個名稱,這個單詞有表達意見的單詞(查看餐廳語料庫)或使用您已有的權重,但它是最好依靠一個分級學習權重,這是他的工作。

2

在目前的技術狀態,這是不可能的。

英語(和其他語言)是非常複雜,不能被程序「解析」。爲什麼?因爲一切必須是特殊的。說別人是笑話是一個特殊的笑話,這是你程序中的另一個例外。諸如此類,等等,等等

一個很好的例子(由ScienceFriction張貼在這裏的某個地方SO):

同樣,描述當情緒詞「不可預知」可能是一部驚悚片的背景下積極的,但負面豐田的休息制度。

如果你願意花+/- 40你人生早期階段對這個問題,繼續前進,這將是非常讚賞:)

2

我不完全贊同nightcracker表示同意。我同意這是一個難題,但我們正在朝着解決方案邁進。

例如,「部分的語音」可以幫助你找出主語,動詞和賓語的句子。而'n-grams'可能會幫助你在豐田與驚悚的例子中找出背景。看看TagHelperTools。它建立在weka之上,提供詞性和n-gram標記。

儘管如此,也很難拿到OP想要的結果,但它不會需要40年。