如何在PHP中查找“相关项目”

2022-08-31 00:26:02

我们经常看到“相关项目”。例如,在博客中,我们有相关的帖子,在书中我们有相关的书籍,等等。我的问题是我们如何编译这些相关性?如果只是标签,我经常看到没有相同标签的相关项目。例如,当搜索“粉红色”时,相关项目可能具有“紫色”标记。

有人知道吗?


答案 1

有许多方法可以计算两个项目的相似性,但对于一个简单的方法,请查看Jaccard系数。

http://en.wikipedia.org/wiki/Jaccard_index

即:J(a,b) = 交集(a,b)/并集(a,b)

So lets say you want to compute the coefficient of two items:

Item A, which has the tags  "books, school, pencil, textbook, reading"
Item B, which has the tags  "books, reading, autobiography"

intersection(A,B) = books, reading
union(A,B) = books, school, pencil, textbook, reading, autobiography

so J(a,b) = 2/6 = .333

So the most related item to A would be the item which results in the highest Jaccard Coefficient when paired with A.

答案 2

以下是一些方法:

  1. 手动连接它们。放置一个包含字段的表,然后创建一个接口来插入连接。用于关联两个相关但无相似性或不属于同一类别/标记(或未分类条目表中)的项目。示例:浴缸和橡胶鸭item_idrelated_item_id
  2. 提取一些属于同一类别或具有类似标记的项目。这个想法是,这些项目必须有些相关,因为它们属于同一类别。示例:在页面查看LCD显示器中,在“相关项目”部分中有随机LCD显示器(具有相同的价格范围/制造商/分辨率)。
  3. 执行将当前项目的名称(和/或描述)与表中其他项目匹配的文本搜索。你明白了。

推荐