python - nlp 多标签分类 tf 与 tfidf

标签 python nlp tf-idf multilabel-classification tfidfvectorizer

我正在尝试解决 NLP 多标签分类问题。我有大量的文件,应该分为 29 类。

我解决这个问题的方法是,在清理文本、删除停用词、标记化等之后,执行以下操作:

为了创建特征矩阵,我查看了每个文档术语的频率分布,然后创建了这些术语的表(删除了重复的术语),然后计算了相应文本中每个单词的术语频率(tf) .所以,最终我在每个文档中得到了大约 1000 个术语和它们受尊重的频率。

然后我使用 selectKbest 将它们缩小到 490 左右。在缩放它们之后,我使用 OneVsRestClassifier( SVC ) 进行分类。

我在 F1 score 附近得到一个 0.58 ,但它根本没有改善,我需要得到 0.62

我是否正确处理了问题?

我是否需要使用 tfidf vectorizer 而不是 tf ,如何使用?

我对 NLP 很陌生,我完全不确定接下来要做什么以及如何提高分数。

在这个问题上的任何帮助都是无价的。

谢谢

最佳答案

Tf方法可以更重视常用词而不是使用 Tfidf该方法重视数据集中特定文档中罕见和独特的单词。

同样在选择 Kbest 之前,宁可对整个特征集进行训练,然后使用特征重要性来获得最佳特征。

您也可以尝试使用 Tree ClassifiersXGB更好的模型,但 SVC也是很好的分类器。

尝试使用 Naive Bayes作为f1 score的最低标准并尝试在 grid search 的帮助下改进其他分类器的结果.

关于python - nlp 多标签分类 tf 与 tfidf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54636433/

相关文章:

python - 使用 Paramiko 在 SFTP 中“放入”

python - NLP - 查找相似/语音单词并计算段落中的分数

python - (文本分类)处理来自不同文档的相同单词 [TFIDF]

python - 哪个更好-execute(INSERT) 或executemany(INSERT)

python - 未调用 Pytest 模拟补丁函数

java - 如果配置文件不在当前目录中,MaltParser 无法找到配置文件

python - scikit-learn TfidfVectorizer 忽略某些单词

python - 查找文档中句子之间的语义相似性

python - 使用 Homebrew 为 mayavi 安装 VTK 5

python - 我已经在我的 google colab 中下载了一个已解压的手套文件,但我仍然无法访问它