文本分类。 TFIDF 和朴素贝叶斯? [已关闭]

问题描述 投票:0回答:1

我正在尝试执行文本分类任务,其中有大约 500 条餐厅评论的训练数据,这些评论被标记为 12 个类别。我花了比我应该花的时间来实现 TF.IDF 和余弦相似度来对测试数据进行分类,但只得到了一些非常差的结果(0.4 F-measure)。由于现在时间不在我这边,我需要实施一些更有效且没有陡峭学习曲线的东西。我正在考虑将 TF.IDF 值与朴素贝叶斯结合使用。这听起来合理吗?我知道如果我能够以正确的格式获取数据,我可以使用 Scikit learn 来做到这一点。您还有其他建议我考虑吗?

python machine-learning scikit-learn nlp
1个回答
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 你的餐厅评论等等等等

© www.soinside.com 2019 - 2024. All rights reserved.