algorithm - K 均值和文档聚类中的正确顺序输出

标签 algorithm nlp cluster-analysis k-means

我正在使用 K 均值对单个文档进行聚类,我现在正在准备要聚类的数据并在其向量表示中表示 N 个句子。

但是,如果我理解正确的话,KMeans 算法设置为根据到 k 个中心点的欧式距离创建 k 个聚类。无论句子顺序如何。

我的问题是我想保持句子的顺序并在聚类任务中考虑它们。

假设 S = {1...n} 一组表示句子的 n 个向量,S_1 = sentence 1 ,S_2 = sentence 2 .. etc

我希望集群将是 K_1 = S[1..i]、K_2 = S[i..j] 等。

我想也许可以将其转换为一维并将每个句子的索引与转换后的值相加。但不确定是否有帮助。也许还有更聪明的方法。

最佳答案

一种快速而肮脏的方法是将每个词汇项附加到它所在的句子编号。首先 sentence segment ,那么,对于这个文件:

This document's really great. It's got all kinds of words in it. All the words are here.

你会得到这样的东西:

{"0_this": 1, "0_document": 1, "0_be": 1, "0_really": 1,...}

无论您使用什么 k-means,都应该很容易接受。

不过,我会警告不要在一般情况下这样做。您引入了大量数据稀疏性,您的结果将受到 the curse of dimensionality 的更大伤害.仅当您正在查看的类型 (1) 在词汇选择上非常可预测且 (2) 在结构上非常可预测时,您才应该这样做。我想不出一个很好的语言理由来说明句子应该在文本之间精确对齐。

关于algorithm - K 均值和文档聚类中的正确顺序输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28105039/

相关文章:

c# - 从 C# 中的自由流动字符串中提取名词和形容词的算法

cluster-analysis - Gephi 0.8.2 中的集群

algorithm - 概率视角是商业上预测客户偏好趋势的好方法吗?

algorithm - 凸多面体中体积最大的四面体

javascript - 视觉上执行的不同排序算法

python - 聚类二进制数据

python - 如何在 DBSCAN 中使用 knn 距离图估计 eps

algorithm - 具有最大相等和且不使用所有元素的子集和

python - 只训练一些词嵌入(Keras)

python - SGDClassifier 每次为文本分类提供不同的准确度