【发布时间】:2018-11-22 06:06:43
【问题描述】:
我尝试使用 DBSCAN(来自 scikit-learn)对文本文档进行聚类。我使用 TF-IDF(sklearn 中的 TfidfVectorizer)来创建每个文档的特征。
但是,我还没有找到一种方法来获取(打印)由 DBSCAN 聚类的文档。
sklearn 中的 DBSCAN 提供了一个名为“labels_”的属性,它允许我们获取集群组标签(例如,1、2、3、-1 表示噪声)。但是,我想获取由 DBSCAN 聚类的文档,而不是聚类组标签。
为了强调,我想知道属于每个集群的文档。 您能否提出一些方法来做到这一点?
非常感谢!
【问题讨论】:
-
请提供一个小的可重复样本数据集和您想要的数据集
-
TfidfVectorizer不是根据文本文档创建字典吗? -
文档中的文本值未聚类。文档是聚集在一起的。文档由一个向量表示(其中包含词汇表中单词的多个 tf-idf 值)。这些向量是聚集的。但是这些向量是由 TfidfVectorizer 制成的,而不是 DBSCAN。所以请澄清你想做什么。您想查看哪些文档属于哪个集群吗?或者你想看词汇吗?还是你想看单个聚类中最具代表性的词?
-
大家好!谢谢你的cmets。我已经更新了问题描述。关于示例,我将尝试对其进行处理并再次更新描述。尽管如此,我希望更新后的问题描述已经足以澄清我的问题。
-
为此,您使用
labels_。它与原始文档的顺序相同。所以如果labels = [1, -1, 1, 2, 3, 2],这意味着你的数据中的第一个文档属于cluster1,第二个文档有噪声,第三个文档又属于cluster1,依此类推
标签: machine-learning scikit-learn hierarchical-clustering dbscan