我想在一组给定的类别中对推文进行分类,例如{'sports','entertainment','love'}等......
我的想法是采用最常用单词的术语频率来帮助我解决这个问题。例如,“爱”这个词最常出现在 love 类别中,但它也以“我喜欢这个游戏”和“我喜欢这部电影”的形式出现在体育和娱乐中。
为了解决这个问题,我设想了一个3轴图,其中x值是我推文中使用的所有单词,y值是类别,z值是术语频率(或某种类型的得分)尊重这个词和类别。然后我会将推文分解到图表上,然后将每个类别中的z值相加。总z值最高的类别很可能是正确的类别。我知道这很令人困惑,所以让我举一个例子:
“观看”这个词在体育和娱乐中出现很多(“我在看比赛”和“我正在观看我最喜欢的节目”)...因此,我至少将它缩小到这两个类别。但是“游戏”这个词并没有经常出现在娱乐节目中,而且在体育节目中也没有经常出现。 “观看”+“游戏”的Z值将是体育类别中最高的,而“观看”+“节目”将是娱乐中最高的。
现在您已了解我的想法如何运作,我需要帮助组织这些数据,以便机器学习算法可以在我给它一个单词或一组单词时预测类别。我已经阅读了很多关于SVM的内容,我认为它们还有很长的路要走。我试过libsvm,但我似乎无法想出一个好的输入集。此外,libsvm不支持非数字值,这增加了更多的复杂性。
有什么想法吗?我是否需要一个图书馆,或者我应该自己编写决策代码?
谢谢大家,我知道这很长,抱歉。
答案 0 :(得分:2)
您正在尝试将文本分类分为一组类别。 Naive Bayes这样做。事实上,它是您的想法的统计类比。它假定文本中单词的频率是一个类别的独立指标,并根据该假设给出每个类别的概率。它在实践中运作良好;我相信Weka有一个实现。
答案 1 :(得分:0)
你必须根据文件的内容(文字特征)对文件进行分类(这里的推文是你的文件),并将它们放在类别(体育,环境,爱情等)中。
您可以使用Naive Bayes Classifier或Fisher分类器(我更喜欢Fisher)对文档进行分类。你可以在python库中找到它们的实现。
使用词干,下壳,止字(删除,等等)删除和其他预处理技术来提高效率。
您只需要阅读编程集体智能:构建智能Web 2.0应用程序一书的第6章(文档过滤)。它对python中的分类器以及示例和实现都有很好的解释。