使用 PostgreSQL 实现 k 均值集群的实用方法

And*_*ndy 5 postgresql full-text-search group-by

我正在寻找一种超级简单且非常实用的方法,仅使用 PostgreSQL 数据库来对问题进行 k 均值聚类。

虽然我完全意识到,如果我的假设不成立,这种方法可能不会产生有意义的结果,但这可能是对我的数据进行分类的一次很好的首次尝试。

想象一个小型在线论坛,用户可以自由地提出有关他们想要的任何主题的简短问题,但无需对它们进行分类,并且如果新问题与他们之前感兴趣的主题相匹配,则需要通知其他用户订阅了。

我的计划是首先使用将每个传入的问题分解为词位,to_tsvector但老实说,我对之后要做什么有点迷失。

即使假设我已经正确识别了问题可能匹配的k个类别,我将如何决定问题是否应属于一个(或多个)类别?

小智 2

您可以使用从文本搜索返回的排名作为截止点来确定问题是否与主题匹配。对于每个类别,您可以保存包含相关术语的文档,并根据这些术语搜索查询文本。

顺便说一句,有一个很好的扩展名为 madlib (它更像是一个实用程序包) - 它包含许多有用的功能/算法,包括主题分析和聚类。看一下madlib 文档