0

我想對客戶的電子郵件做一些分類。簡單的nltk情感分析代碼使用python3

  1. 是電子郵件快樂或悲傷(情緒分析)
  2. 是與計費或不電子郵件。

我使用Python3,並認爲我必須使用NLTK和scikit NLTK - 將有助於理解和閱讀文字我beleive scikit - 會做分類(快樂,悲傷和計費或不)

訓練數據集1:幾個短語......從一個單詞到5到6個單詞的句子。 (1快樂和0是不快樂)...的幾個例子如下

  • Apprecaite的help..1
  • 偉大job..1
  • Awesome..1
  • 可怕。 0.0
  • 彆扭...... 0
  • 放緩... 0

訓練數據集2:幾句INDI cating結算相關的問題..(以下幾個例子)在我的賬單

  • 問題
  • 結算費
  • 我的賬單過高
  • 付款拒絕

現在,這似乎是從概念立場上直接前進 哪裏可以找到一些基本代碼,這將告訴我

  1. 我如何使用我自己的訓練數據
  2. 如何將電子郵件文本作爲輸入加載並吐出令人高興或悲傷的答案......並計費與否。

回答

2

關於您的數據集,您的方法幾乎是基於詞典的,因爲這些項目包含的詞很少。

對於計費,基於詞典的方法應該是一個好主意。你應該重視電子郵件的主題。

對於情感分析你有兩種選擇:

  • 機器學習:在這種情況下,你應該使用一個更大的數據集(在我看來,每個項目應該是一個完整的電子郵件)。您可以在this tutorial之後實施樸素貝葉斯分類器。

  • 基於詞典的方法:有幾種用於情感分析的詞典例如SentiWordNet(可從nltk.download()下載),MPQA, SentiStrength,WordNet-Affect via WNAffect,...預處理:標記(nltk.word_tokenize())和POS標記(nltk.pos_tag(text))。你還應該考慮否定(極性轉移是否定管理的好方法)。

機器學習提供最好的結果,所以如果你有足夠的帶註釋的電子郵件,這是一個不錯的選擇。

+0

thx Clemtoy ..!進一步的問題,以後續的基於詞彙的方法(計費)。我將要使用NLTK從我的文本中獲取完整數據的意義(刪除停用詞..等等)...然後我只是比較單詞與我自己訓練數據? (帳單短語?)#1。在我的訓練數據中比較單個單詞和單個單詞......#2比較雙數字與我的數據中的兩個單詞短語...#3在訓練數據中比較n(3個單詞)克與n個(4個單詞)..然後4個單詞,直到我想起來,也許7個單詞短語是我現在擁有的最大..ex。 「我的賬單有一個問題」,所以我想看看並比較一下ngrams? – Kumar

+0

你可以嘗試這樣做是的! – clemtoy

+0

順便說一句...除了電子郵件...這將是我的數據的一小部分...多數將是電話轉錄爲文本...將保持我的手指交叉! – Kumar