使用nltk

时间:2016-11-27 05:48:25

标签: python machine-learning nltk text-classification document-classification

我目前正在开展一个项目,我正在收集电子邮件,使用电子邮件包剥离邮件正文,然后我想使用体育,政治,技术等标签对它们进行分类......

我已经成功地从我的电子邮件中删除了邮件正文,现在我正在寻找开始分类。我使用move_reviews语料库将文档分为正面和负面评论,完成了情感分析分类的经典示例。

我只是想知道如何将这种方法应用到我的项目中?我可以创建多个类,如体育,科技,政治,娱乐等吗?我在这里遇到了一个路障,正在寻找正确的方向。

如果这不是SO的合适问题,我会很高兴删除它。

编辑:大家好,我看到这篇文章已经获得了一些人气,我最终成功完成了这个项目,这里是项目代码GitHub Repo的链接: https://github.com/codyreandeau/Email-Categorizer/blob/master/Email_Categorizer.py

2 个答案:

答案 0 :(得分:3)

文本分类的任务是监督机器学习问题。这意味着您需要标记数据。当您接近movie_review问题时,您使用+ 1 / -1标签来训练您的情绪分析系统。

回到你的问题:

  1. 如果您有数据标签,请以相同方式解决问题。我建议你使用scikit-learn库。你可以从这里得到一些灵感:Scikit-Learn for Text Classification

  2. 如果您没有标签,可以尝试无人监督的学习方法。如果您对有多少类别(称为数字K)有任何线索,可以尝试使用KMeans方法。这意味着,根据K类别的相似程度对电子邮件进行分组。类似的电子邮件最终会出现在类似的存储桶中。然后手动检查簇并拿出标签。将新电子邮件分配给最相似的群集。如果您需要有关KMeans的帮助,请查看此快速食谱:Text Clustering Recipe

  3. 建议:获取电子邮件标签可能比您想象的要容易。例如,Gmail可让您使用文件夹信息导出电子邮件。如果您已对电子邮件进行了分类,则可以利用此功能。

答案 1 :(得分:0)

要创建分类器,您需要一个包含您要查找的类的训练数据集。在您的情况下,您可能需要:

  1. 创建自己的数据集
  2. 使用预先存在的数据集
  3. brown corpus是一个开创性的文字,其中包含许多您正在谈论的类别。这可以作为帮助使用gensim之类的包来帮助对电子邮件进行分类的起点,以找到语义相似的文本。

    对电子邮件进行分类后,您可以训练系统预测每封未看电子邮件的标签。