3

我想在给定的一组类别中对推文进行分类,例如 {'sports'、'entertainment'、'love'} 等...

我的想法是用最常用词的词频来帮助我解决这个问题。例如,“爱”这个词出现在爱情类别中的频率最高,但它也以“我喜欢这个游戏”和“我喜欢这部电影”的形式出现在体育和娱乐中。

为了解决这个问题,我设想了一个 3 轴图表,其中 x 值是我的推文中使用的所有单词,y 值是类别,z 值是术语频率(或某种类型的分数)词和类别。然后我会将推文分解到图表上,然后将每个类别中的 z 值相加。具有最高总 z 值的类别很可能是正确的类别。我知道这很令人困惑,所以让我举个例子:

“看”这个词在体育和娱乐中出现了很多(“我在看比赛”和“我在看我最喜欢的节目”)……因此,我至少将其缩小到这两个类别。但是“游戏”这个词在娱乐中并不经常出现,而在体育运动中也并不经常出现。'watch' + 'game' 的 Z 值将在体育类别中最高,而 'watch' + 'show' 将在娱乐类别中最高。

现在您了解了我的想法是如何运作的,我需要帮助组织这些数据,以便机器学习算法可以在我给它一个词或一组词时预测类别。我读过很多关于 SVM 的文章,我认为它们是正确的选择。我尝试了 libsvm,但我似乎无法想出一个好的输入集。此外,libsvm 不支持非数字值,这增加了复杂性。

有任何想法吗?我什至需要一个库,还是应该自己编写决策代码?

谢谢大家,我知道这很长,对不起。

4

2 回答 2

2

好吧,您正在尝试将文本分类为一组类别。朴素贝叶斯就是这样做的。实际上,它是您的想法的统计类似物。它假设文本中单词的频率是一个类别的独立指标,并基于此假设给出每个类别的概率。它在实践中运行良好;我相信Weka有一个实现。

于 2011-01-07T18:26:34.200 回答
0

您必须根据内容(单词特征)对文档(这里的推文是您的文档)进行分类,并将它们归入类别(运动、环境、爱情等)。

您可以使用朴素贝叶斯分类器或 Fisher 分类器(我更喜欢 Fisher)对文档进行分类。您可以在 python 库中找到两者的实现。

使用词干、小写、停用词(the、is、at 等)去除和其他预处理技术来提高效率。

您只需阅读《编程集体智能:构建智能 Web 2.0 应用程序》一书的第 6 章(文档过滤)。它对分类器以及 python 中的示例和实现都有很好的解释。

于 2015-11-24T23:53:47.750 回答