Postgres聚合中文本单元之间的聚类/相似性

问题描述

我有一个带有文本列和其他一些识别功能的表。我希望能够按功能之一进行分组,并找出分组中的文本是否相似。我想用它来确定我的数据中是否有多个组或一个组(可能有一些拼写错误),以便我可以提供一个粗略的“信心”值,以显示聚合是否代表一个组。>

CREATE TABLE data_test (
Id serial primary key,Name VARCHAR(70) NOT NULL,Job VARCHAR(100) NOT NULL);

INSERT INTO data_test
    (Name,Job)
VALUES
    ('John','Astronaut'),('John',('Ann','Sales'),('Jon',('Jason',('Pranav',('Todd','Astronaut');

我想运行如下查询:

select 
  Job,count(Name),Similarity_Agg(Name)
from data_test
group by Job;

并接收

Job        count   Similarity 
Sales      4       0.1 
Astronaut  4       0.9

基本上表明宇航员的姓名非常相似(或者,在我的数据中,更有可能的是,所有行都引用了一位宇航员),而销售名称则没有(从事销售工作的人多于从事太空工作的人)。我看到有一个Postgres Module可以处理两个字符串的比较,但是其中似乎没有任何聚合函数。

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)