我一直在研究Python編碼的優先級電子郵件收件箱,最終目標是使用機器學習算法來標記(或分類)選定的電子郵件爲重要還是不重要。我將從一些背景資料開始,然後轉入我的問題。機器學習電子郵件優先級 - Python
到目前爲止,我已經開發了代碼來從電子郵件中提取數據並對其進行處理以發現最重要的數據。
- 發件人地址頻率
- 線程活動
- 身體/主題常用詞接收日期(回覆之間的時間)
代碼:這是使用下面的電子郵件功能實現我現在根據其重要性對每封電子郵件應用排名(或權重)(值0.1-1),然後應用「重要」或「不重要」的標籤(在這種情況下,這只是1或0) 。如果等級> 0.5,則優先狀態被授予。這些數據存儲在一個CSV文件中(如下所示)。
From Subject Body Date Rank Priority
[email protected] HelloWorld Body Words 10/10/2012 0.67 1
[email protected] ByeWorld Body Words 10/10/2012 0.21 0
[email protected] SayWorld Body Words 10/10/2012 0.91 1
[email protected] HeyWorld Body Words 10/10/2012 0.48 0
etc …………………………………………………………………………
我有兩套電子郵件數據(One Training,One Testing)。以上內容適用於我的培訓電子郵件數據。我現在試圖訓練一個學習算法,以便我可以預測測試數據的重要性。
爲此,我一直在尋找SCIKIT和NLTK。但是,我無法將我在教程中學到的信息轉移到我的項目中。對於使用哪種學習算法,我沒有特別的要求。這與應用以下內容一樣簡單嗎?如果是的話如何?
X, y = email.data, email.target
from sklearn.svm import LinearSVC
clf = LinearSVC()
clf = clf.fit(X, y)
X_new = [Testing Email Data]
clf.predict(X_new)
我以前從未使用過scikit.learn 常用詞,但它確實可能是「簡單」的使用分類器,一旦你清理你的數據並獲得你的特徵向量。你的例子中的算法似乎是一個SVM分類器。您可能想要檢查scikit.learn SVM期望的特徵矢量格式。 只是一句話:你可能不希望在你的特性中包含「Rank」,因爲它的信息已經在你指定的「Priority」標籤中被編碼(即那是你的目標變量)。 – herrfz
因此,例如,我的特點可能是: 發件人地址頻率 線程活動 接收日期(回覆時間)在身體/主題 和目標類預測 常用詞: \t優先 – ZeeeeeV
是的,這是正確的。還要確保它們都是數字,即由數字(float,int)組成。 – herrfz