使用nltk对文本文档进行分类

问题描述 投票:2回答:2

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

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

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

如果这不是一个适合SO的问题,我会很乐意删除它。

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

python machine-learning nltk text-classification document-classification
2个回答
0
投票

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

  1. 创建自己的数据集
  2. 使用预先存在的数据集

brown corpus是一个开创性的文本,其中包含许多类别。这可能是一个起点,帮助您使用像gensim这样的包来分类您的电子邮件,以找到语义相似的文本。

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


3
投票

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

回到你的问题:

  1. 如果您有数据标签,请以相同方式处理问题。我建议你使用scikit-learn库。你可以从这里得到一些灵感:Scikit-Learn for Text Classification
  2. 如果您没有标签,可以尝试无监督的学习方法。如果您对有多少类别(称为数字K)有任何线索,可以尝试使用KMeans方法。这意味着,根据K类别的相似程度对电子邮件进行分组。类似的电子邮件最终会出现在类似的存储桶中。然后手动检查簇并拿出标签。将新电子邮件分配给最相似的群集。如果您需要KMeans的帮助,请查看这个快速食谱:Text Clustering Recipe

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

© www.soinside.com 2019 - 2024. All rights reserved.