在K均值和文档聚类中更正订单输出

时间:2015-01-23 07:33:46

标签: algorithm nlp cluster-analysis k-means

我正在使用K Means进行单个文档聚类,我现在正在准备要聚类的数据并在其向量表示中表示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] etc..

我认为可能将其转换为1D并将每个句子的索引与转换后的值相加。但不确定它是否会有所帮助。也许有更聪明的方式。

1 个答案:

答案 0 :(得分:0)

执行此操作的快速而肮脏的方法是将每个词汇项附加其所在的句号。首先sentence segment,然后,对于此文档:

  

这份文件非常棒。它里面有各种各样的词。所有的话都在这里。

你会得到类似的东西:

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

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

但是,我总是警告不要这样做。您引入了大量数据稀疏性,the curse of dimensionality会对您的结果造成更大的伤害。你应该只在你所看到的类型是(1)在词汇选择中非常可预测和(2)在结构上非常可预测时才这样做。我无法想到句子应该在文本中准确对齐的良好语言原因。