我正在尝试解决 NLP 多标签分类问题。我有大量的文件,应该分为 29 类。
我解决这个问题的方法是,在清理文本、删除停用词、标记化等之后,执行以下操作:
为了创建特征矩阵,我查看了每个文档术语的频率分布,然后创建了这些术语的表(删除了重复的术语),然后计算了相应文本中每个单词的术语频率(tf
) .所以,最终我在每个文档中得到了大约 1000 个术语和它们受尊重的频率。
然后我使用 selectKbest
将它们缩小到 490 左右。在缩放它们之后,我使用 OneVsRestClassifier( SVC
) 进行分类。
我在 F1 score
附近得到一个 0.58
,但它根本没有改善,我需要得到 0.62
。
我是否正确处理了问题?
我是否需要使用 tfidf vectorizer
而不是 tf
,如何使用?
我对 NLP 很陌生,我完全不确定接下来要做什么以及如何提高分数。
在这个问题上的任何帮助都是无价的。
谢谢
最佳答案
Tf
方法可以更重视常用词而不是使用 Tfidf
该方法重视数据集中特定文档中罕见和独特的单词。
同样在选择 Kbest 之前,宁可对整个特征集进行训练,然后使用特征重要性来获得最佳特征。
您也可以尝试使用 Tree Classifiers
或 XGB
更好的模型,但 SVC
也是很好的分类器。
尝试使用 Naive Bayes
作为f1 score
的最低标准并尝试在 grid search
的帮助下改进其他分类器的结果.
关于python - nlp 多标签分类 tf 与 tfidf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54636433/