【问题标题】:Correct order output in K Means and document clusteringK 均值和文档聚类中的正确顺序输出
【发布时间】:2015-03-22 04:55:07
【问题描述】:

我正在使用 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] etc..

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

【问题讨论】:

  • 听起来你想做某种文档分割而不是聚类。也许这一系列研究是相关的:aclweb.org/anthology/W08-1803
  • 不再是 k-means 或聚类。您希望将文档分成 k 段,恕我直言,这就是相似性结束的地方。 (PS 如果您认为这是一个简单的旧优化问题,有一个简单的解决方案)

标签: algorithm nlp cluster-analysis k-means


【解决方案1】:

一种快速而肮脏的方法是在每个词汇项后面加上它所在的句子编号。首先是sentence segment,然后,对于这个文档:

这个文件真的很棒。里面有各种各样的词。所有的话都在这里。

你会得到类似的东西:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-10-20
    • 2012-06-19
    • 2018-12-21
    • 2015-04-12
    • 2020-12-18
    • 2020-11-25
    • 2020-06-15
    • 2012-06-18
    • 2019-10-14
    相关资源
    最近更新 更多