文字分类。 TFIDF和朴素贝叶斯?

时间:2017-04-02 02:21:23

标签: python machine-learning scikit-learn nlp

我正在尝试进行文字分类任务,其中我有大约500个餐厅评论的培训数据,这些评论分为12个类别。我花了比实验TF.IDF和余弦相似性更长的时间用于测试数据的分类,只是为了获得一些非常差的结果(0.4F测量)。现在时间不在我身边,我需要实现一些效率更高,没有陡峭学习曲线的东西。我正在考虑将TF.IDF值与Naive Bayes结合使用。这听起来合情合理吗?我知道如果我能以正确的格式获取数据,我可以用Scikit学习。你还有什么建议我考虑一下吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

您应该尝试使用fasttext:https://pypi.python.org/pypi/fasttext。它可用于对文本进行分类:

(如果不是英语,请不要忘记下载预先训练的模型https://s3-us-west-1.amazonaws.com/fasttext-vectors/wiki.en.zip

import fasttext

model = fasttext.load_model('wiki.en.bin')  # the name of the pretrained model

classifier = fasttext.supervised('train.txt', 'model', label_prefix='__label__')

result = classifier.test('test.txt')
print ('P@1:', result.precision)
print ('R@1:', result.recall)
print ('Number of examples:', result.nexamples)

训练和测试集中的每一行都应该是这样的:

  

__ label__classname您的餐厅评论blah blah blah