使用Python和NLTK进行多类文本分类



我被赋予了将给定新闻文本数据分类为以下5个类别之一 - 商业,体育,娱乐,技术和政治的任务

关于我正在使用的数据:
由标记为5种新闻说明(BCC新闻数据)之一的文本数据

我目前正在与NLTK模块一起使用NLP来计算培训数据中每个单词相对于每个类别的频率分布(停止字)。

然后,我通过计算相对于这5个类别的每个单词的所有单词的权重总和来对新数据进行分类。重量最大的课程作为输出返回。

这是实际的代码。

该算法确实可以准确地预测新数据,但我很想知道我可以实现的其他一些简单算法以获得更好的结果。我已经使用Naive Bayes算法将数据分类为两个类(垃圾邮件或不垃圾邮件等),并且想知道如何实现多类分类,如果它是可行的解决方案。


谢谢。

在分类中,尤其是在文本分类中,选择正确的机器学习算法通常是在选择正确的功能之后出现的。功能取决于域,需要有关数据的知识,但是高质量的导致系统比调整或选择算法和参数更快。

在您的情况下,您可以按照已经说过的词嵌入词嵌入,但是您还可以设计自己的自定义功能,您认为这些功能将有助于区分课程(无论课程数量如何)。例如,您如何看待垃圾邮件经常出现?许多错误,语法倒置,不良的传统,标点符号,语词……很多可能性!尝试考虑体育,商业,新闻等的情况。

您应该尝试一些创建/组合功能的新方法,然后选择最佳算法。另外,请查看以外的其他加权方法,例如TF-IDF。

,由于您要处理单词嵌入的单词,因此可以更多地了解w.r.t w.r.t的关系/含义,从而更好地分类。

如果您正在寻找其他分类实现,则在此处查看我的示例代码,Scikit-Learn的这些模型可以轻松处理多类,请查看Scikit-Learn的文档。

如果您想要围绕这些易于使用的分类框架,您可以查看我的Rasa-nlu,它使用Spacy_sklearn模型,示例实现代码就在这里。您要做的就是以给定格式准备数据集,然后训练模型。

如果您想要更多的智能,则可以在此处查看我的keras实现,它将使用CNN进行文本分类。

希望这会有所帮助。

相关内容

  • 没有找到相关文章

最新更新