0

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

关于我正在使用的数据:
由标记为 5 种新闻声明类型之一的文本数据组成(Bcc 新闻数据)

我目前正在使用带有 nltk 模块的 NLP 来计算训练数据中每个单词相对于每个类别的频率分布(停用词除外)。

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

继承人的实际代码

该算法确实可以准确地预测新数据,但我有兴趣了解我可以实现的其他一些简单算法以获得更好的结果。我已经使用朴素贝叶斯算法将数据分为两类(垃圾邮件或非垃圾邮件等),如果它是一个可行的解决方案,我想知道如何为多类分类实现它。

谢谢你。

4

2 回答 2

0

由于您处理单词,我建议使用单词嵌入,这可以让您更深入地了解单词的关系/含义 WRT 您的数据集,从而更好地进行分类。

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

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

如果你想要更多的智能,那么你可以在这里查看我的 keras 实现,它使用 CNN 进行文本分类。

希望这可以帮助。

于 2017-11-30T05:48:24.923 回答
0

在分类中,尤其是在文本分类中,选择正确的机器学习算法通常是在选择正确的特征之后。特征依赖于领域,需要有关数据的知识,但质量好可以比调整或选择算法和参数更快地带来更好的系统。

在您的情况下,您可以使用已经说过的词嵌入,但您也可以设计自己的自定义功能,您认为这将有助于区分类(无论类的数量是多少)。例如,您认为垃圾邮件通常是如何呈现的?很多错误,句法倒置,糟糕的翻译,标点符号,俚语......很多可能性!试着从体育、商业、新闻等方面考虑你的情况。

您应该尝试一些创建/组合特征的新方法,然后选择最佳算法。另外,请查看词频以外的其他加权方法,例如tf-idf

于 2017-11-30T09:02:11.863 回答