scikit.learn和kmeans的新手,如何使用K方法对文档(来自文件)进行聚类



我正在尝试使用scikit.learn中的Kmeans将纯文本文档聚类为两个类别。

这是一个用例场景。我将收到一些将被标记为"重要"one_answers"不重要"的样本集。

从scikit.learn examples数据集是来自新闻组的预定义格式:

dataset = fetch_20newsgroups(subset='all', categories=categories,
shuffle=True, random_state=42)

我想做的是从文本文件接收数据(20个新闻组似乎根本不是文本文件,我甚至无法解压缩它)

我不清楚的是fetch_20新闻组的数据结构以及它是如何工作的。我应该怎么做才能将文本文件转换成所需的格式(fetch_20newsgroups提供的格式)

感谢

Phyo。

scikit learn附带的20个新闻组数据集加载器获取从原始网站下载的文本文档的存档http://kdd.ics.uci.edu/databases/20newsgroups/20newsgroups.html然后将它们以压缩格式缓存在CCD_ 1文件夹中。查看20个新闻组数据集加载程序的源代码以了解更多详细信息。

要将自己的一组文本文件加载为scikit learn"bunk"对象,可以直接使用sklearn.datasets.load_files函数,方法是将其指向正确的文件夹。

如果您的数据已经分为两类(例如,名为"重要"one_answers"不重要"的两个子文件夹),那么您需要使用的不是无监督的聚类算法,而是像文本分类示例中那样有监督的分类,如MultinomialNB(朴素贝叶斯)、LinearSVC(线性支持向量机)或LogisticRegression。

如果你不知道哪个文档属于哪个类别,但想将你的语料库分为两组相似的文档,那么你可以使用无监督聚类算法,如KMeans,但你得到的两个聚类不太可能与你的想法"重要"one_answers"不重要"相匹配。

相关内容

  • 没有找到相关文章

最新更新