我正在尝试解决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
的帮助下改善其他分类器的结果。