如何根据“标题”和“描述”列在 MySQL 表中查找“相似”记录?

Cli*_*ote 5 php mysql nlp artificial-intelligence text-analysis

我有一个 MySQL 表存储一些用户生成的内容。对于每段内容,我都有一个标题 (VARCHAR 255) 和一个描述 (TEXT) 列。

当用户查看记录时,我想根据标题/描述的相似性来查找与其“相似”的其他记录。

执行此操作的最佳方法是什么?我正在使用 PHP 和 MySQL。

我最初的想法是:

1)要么从标题和描述中剔除常见单词,留下“唯一”关键字,然后查找共享这些关键字的其他记录。

例如,在句子中:“鲍勃早上 5 点醒来并去上学”,关键字将是:“鲍勃,醒来,5,去,学校”。那么,如果有另一张唱片的标题提到“鲍勃”和“学校”,它们将被视为“相似”。

2)或者使用MySQL的全文搜索,虽然我不知道这对这样的事情是否有好处?

这两种方法中哪种方法更好,或者是否有另一种方法更好?

dat*_*age 1

您首先要定义相似对您意味着什么以及您希望如何对两个不同文档之间的相似性进行评分。

使用该算法,您可以处理所有文档并构建相似度分数表。

根据评分算法的复杂性和数据集的大小,这可能不会实时运行,而是通过 Hadoop 之类的工具进行批处理。