【发布时间】:2015-02-11 07:34:08
【问题描述】:
我想使用 scikit-learn 中的 TfidfVectorizer 和相关函数来执行文档分类,但我对它的使用有点困惑(我搜索的其他问题都没有涉及正确的数据格式)。
目前,我的训练数据按以下方式组织:
- 从语料库中获取单个文本。
- 规范化、标记化(使用 nltk PunktWordTokenizer)、词干(使用 nltk SnowballStemmer)
- 过滤掉剩下的低长度和低出现的单词
- 标记相应的文字
上述完成后,单个文本如下所示(此处的值是随机的,但对应于每个术语的计数/出现次数):
text = ({"has": 5.0, "love": 12.0, ...}, "Relationships")
而完整的语料库最后看起来像这样:
corpus = [({"has": 5.0, "love": 12.0, ...}, "Relationships"),
({"game": 9, "play": 9.0, ...}, "Games"),
...,
]
如何将这些数据输入TfidfVectorizer()?我是否必须只提供上面的内容(作为字典?作为列表?),还是只提供没有计数的内容?我什么时候提供标签?如果需要,我不介意完全重构我的数据。
不幸的是,关于这个特定函数的文档很少有关于格式化的示例。
【问题讨论】:
-
你的数值是多少?
-
我不太确定你的意思是什么,这让我认为我可能对 tfidf 的运作方式存在根本性的误解。你能解释一下吗?
-
你的原文只有单词,你如何得到你在那里显示的数字(你的字典的值)?
-
哦,抱歉。数值是每个单词的计数(基本上是给定文档的词频)。我应该更清楚地说明这一点。
标签: python machine-learning scikit-learn classification tf-idf