如何进行基于 TF-IDf 的分析?

数据挖掘 scikit-学习 nlp 文本挖掘 tfidf
2022-02-16 01:47:45

问题陈述 :

我们有包含单词列表的文档。总体而言,这些文件分为 2 组(例如,质量好与质量差)

文档 -

doc1 = [w1,w2,w3,w4]
doc2 = [w4,w3,w3,w4]
doc3 = [w2,w4,w8,w1]
doc4 = [w5,w4,w0,w9]

文档组 -

good_grp = [doc2, doc1]
bad_grp = [doc3, doc4]

现在我们必须找出哪些词实际上对使文档好与坏很重要?

想法1: 将属于文档组1的文档中的所有单词合并为单个文档say(good quality doc)和另一个是(bad quality doc),并计算每个doc的tf-idf score;但在这种情况下,我们丢失了文档级单词的信息,现在只看到文档组级单词的重要性。

doc1 = [w1,w2,w3,w4]
doc2 = [w4,w3,w3,w4]
doc3 = [w2,w4,w8,w1]
doc4 = [w5,w4,w0,w9]

good_grp = [w1,w2,w3,w4,w4,w3,w3,w4]
bad_grp = [w2,w4,w8,w1,w5,w4,w0,w9]

有人可以帮助我找到更好的方法 tf-idf 或任何其他技术来解决这个问题吗?

3个回答

我认为在这里您必须维护实际的 tf-idf 并在其上创建语料库。假设您已经有可用文档的标签。你可以对它进行朗姆酒分类。

我期待这个问题的最佳分类将是朴素贝叶斯..

找到最能代表一个类的单词的直接方法是计算给定一个单词的类的概率:

p(c|w)=#{ d | label(d)=c wd}#{ d | wd }

根据单词的概率对单词进行排名给出:p(c|w)

  • 最高值:类中最相关的词
  • 最低值:该类中相关性最低的词

备注:使用这​​种方法过滤掉最不常见的词(例如删除频率低于 3 的词)更安全,因为这些很可能是偶然发生的,因此它们并不真正具有代表性。

更新:

对我的数据最有效的一件事是将单词转换为每个文档的 tf-idf 向量,并在其上应用朴素贝叶斯来预测每个文档或单词的概率。