我一直在研究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