我正在尝试解决NLP多标签分类问题。我有大量的文档,应该分为29类。
我解决该问题的方法是,在清理文本之后,停止单词删除,标记化等操作,
要创建特征矩阵,我查看了每个文档术语的频率分布,然后创建了这些术语的表格(删除了重复的术语),然后计算了其对应文本中每个单词的术语频率(tf
)。因此,最终我得到了大约1000个术语以及每个文档中它们受尊敬的频率。
然后我使用selectKbest
将它们缩小到490左右。缩放它们后,我使用OneVsRestClassifier(SVC
)进行分类。
我在F1 score
周围得到0.58
,但一点都没有改善,我需要得到0.62
。
我可以正确处理问题吗?
我需要使用tfidf vectorizer
而不是tf
,怎么办?
我是NLP的新手,我不确定下一步该怎么做以及如何提高分数。
任何有关此主题的帮助都是无价的。
谢谢
答案 0 :(得分:0)
Tf
方法可以使普通单词的重要性超过必要,而使用Tfidf
方法则可以使在数据集中特定文档中稀有且唯一的单词更为重要。
在选择Kbest之前,还要先对整个功能集进行训练,然后使用功能重要性来获得最佳功能。
您也可以尝试使用Tree Classifiers
或XGB
来更好地建模,但是SVC
也是很好的分类器。
尝试使用Naive Bayes
作为f1 score
的最低标准,并在grid search
的帮助下尝试改善其他分类器的结果。