5

讓我們從一個簡單的問題開始吧。假設我有350個字符的句子,並希望將句子分成「好心情」或「壞心情」。用心情搭起句子

設計算法來挖掘句子的最佳方法是什麼?

回答

5

手勢分類一堆句子的心情。然後將這些喂入樸素貝葉斯分類器。使用類似SpamBayes這樣的起點。

+0

如果貝葉斯工作不好,可以嘗試http://en.wikipedia.org/wiki/C4.5_algorithm – ldog

1

一個簡單/天真的建議可能是首先將每個句子拆分爲單個單詞,或者使用正則表達式並從「正面」列表中掃描特定單詞(例如「like」,「happy」,「can 「,」做「等)和」否定「列表(」不喜歡「,」悲傷「,」不可「,」不「),找出每句話中更普遍的方法, 。

根據您的要求和數據集,這可能已經足夠,或者您可能需要調查Bayesian filtering等更高級的技術。

+1

這個問題是,如果我說了一些像「這不壞」,它會顯示有2個「壞」字,但它確實是一個積極的句子。另外,你不能做偶數=正數,因爲「那可怕的錯誤」是一個錯誤的句子。 – locoboy

+0

我從來沒有說過它會以超級聰明的方式處理所有的案件 - 這實際上取決於他的數據集以及他想花費多少時間。花費時間和精力在「完美」的解決方案上可能不值得。 –

+0

你可以基於這個基本思想,不僅考慮單詞,還考慮單詞對,單詞三元組等等。通過考慮所有n的所有n元組,你可以考慮所有的信息。如果沒有大量的數據,這通常不會爲n的高值(在實踐中超出對或三元組)提供很多信息,因此您需要在低值n處截斷。但這正是貝葉斯分類器所做的,因此可以節省工作量並在現有的基礎上構建。 –

0

你可以玩Weka工具來訓練一些適合你的情況的分類器。我會建議嘗試使用J48算法,我相信這是C4.5算法用於訓練決策樹的一個實現。

0

嘗試從一堆這樣的句子中學習機器。使用一些功能,例如表情符號作爲情緒指標。觀察質量並添加/修改您的功能集。

1

根據句子的領域和所需的準確性,這可能是一個非常困難的問題。關於情感分析有許多學術論文;一個好的開始可能是here--一篇簡短而經典的論文。

我建議採取,將逐漸導致更好的和更好的分類步驟:

  1. 手工分類的一些文件,並用它們來訓練一個現成的算法。我建議使用SVM(例如使用LibSVM in WEKASVMLight),但是如上所述,樸素貝葉斯或決策樹也可能工作。

  2. 手將一些文檔分類,並從基於單字符的模型轉移到更復雜的模型,例如,基於bigram或部分語言。使用TagHelper tools可以很容易地完成此操作,這將使用這些技術將您的文本轉換爲WEKA就緒文件。這將爲每個術語的情緒增加一些背景(例如「不」,「壞」與「不壞」)。

  3. 最後,您可以添加自定義制定的規則和字典,這會將特定於領域的知識添加到您的算法中。它們可能被表示爲相同分類引擎的附加功能,或作爲附加的分類步驟。

1

這就是所謂的Sentiment Analysis,維基百科文章對可用技術有很好的描述。一個簡單的方法就是使用Google Prediction API,並用一組積極的,消極的和中性的情感句子來訓練它。