gpt4 book ai didi

nlp - 如何使用 k-means (Flann with python) 对文档进行聚类?

转载 作者:行者123 更新时间:2023-12-04 01:23:55 26 4
gpt4 key购买 nike

我想根据相似性对文档进行聚类。

我已经尝试过 ssdeep (相似性哈希),速度非常快,但我被告知 k-means 更快,而 flann 是所有实现中最快的,而且更准确,所以我正在尝试使用 python 绑定(bind)的 flann,但我找不到任何示例如何在文本上执行(它只支持数字数组)。

我对这个领域非常陌生(k-means,自然语言处理)。我需要的是速度和准确性。

我的问题是:

  • 我们可以使用 KMeans 进行文档相似性分组/聚类吗(Flann 似乎不允许任何文本输入)
  • 弗兰是正确的选择吗?如果不是,请向我推荐支持文本/文档集群的高性能库,它具有 python 包装器/API。
  • k-means是正确的算法吗?
  • 最佳答案

    您需要将文档表示为数字数组(又名向量)。有很多方法可以做到这一点,具体取决于您想要的复杂程度,但最简单的方法就是将其表示为字数的向量。

    所以这就是你要做的:

  • 计算每个单词在文档中出现的次数。
  • 选择一组将包含在向量中的“特征”词。这应该排除非常常见的词(又名“停用词”),如“the”、“a”等。
  • 根据特征词的数量为每个文档制作一个向量。

  • 这是一个例子。

    如果您的“文档”是单个句子,并且它们看起来像(每行一个文档):
    there is a dog who chased a cat
    someone ate pizza for lunch
    the dog and a cat walk down the street toward another dog

    如果我的特征词集是 [dog, cat, street, pizza, lunch] ,然后我可以将每个文档转换为向量:
    [1, 1, 0, 0, 0]  // dog 1 time, cat 1 time
    [0, 0, 0, 1, 1] // pizza 1 time, lunch 1 time
    [2, 1, 1, 0, 0] // dog 2 times, cat 1 time, street 1 time

    您可以在您的 k-means 算法中使用这些向量,它有望将第一句和第三句组合在一起,因为它们是相似的,并且使第二句成为一个单独的集群,因为它非常不同。

    关于nlp - 如何使用 k-means (Flann with python) 对文档进行聚类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12497252/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com