我正在使用PHP和MySQL创建价格比较网站。因此,我需要找到类似的产品并映射它们以创建价格比较表。在我的数据库中有10,000多个产品,为了找到相似的产品,我已经在产品名称和描述列中创建了MySQL全文索引,并将产品与其他产品进行比较,但我无法得到期望的结果。例如,如果我搜索“三星Galaxy A7(2017)32GB”,则会获得以下结果:
1. 三星Galaxy A7 32GB(2017) 2. 三星Galaxy A7智能手机 3. 三星Galaxy J7(2017)32GB黑色 4. 三星Galaxy A7 64GB(新款) 5. 三星Galaxy J7 Prime 16GB 6. 三星Galaxy J7(16GB,黑色) 7. 三星Galaxy J2 Pro(16GB) 8. 三星Galaxy A5(32GB) 9. 三星Galaxy S7 Edge 32GB蓝珊瑚
注意:在结果集中,只有前两个和第四个产品是相似的,其他产品不是。
现在,我有一个问题:
如何从搜索查询中找到重要关键字,以便这些关键字至少在其他产品中出现以了解相似性?例如,在上述搜索查询中,“三星Galaxy A7”是重要关键字,应该在结果中的其他产品中出现。我们人类可以知道,“三星Galaxy A7”是从“三星Galaxy A7(2017)32GB”中比较其他产品的重要关键字,但计算机程序如何知道呢?
是否有一种算法可以通过重要关键字比较类似的产品,就像图像比较中的SIFT算法一样?
如果您有任何好的方法来找到相似的产品,请建议我。
1. 三星Galaxy A7 32GB(2017) 2. 三星Galaxy A7智能手机 3. 三星Galaxy J7(2017)32GB黑色 4. 三星Galaxy A7 64GB(新款) 5. 三星Galaxy J7 Prime 16GB 6. 三星Galaxy J7(16GB,黑色) 7. 三星Galaxy J2 Pro(16GB) 8. 三星Galaxy A5(32GB) 9. 三星Galaxy S7 Edge 32GB蓝珊瑚
注意:在结果集中,只有前两个和第四个产品是相似的,其他产品不是。
现在,我有一个问题:
如何从搜索查询中找到重要关键字,以便这些关键字至少在其他产品中出现以了解相似性?例如,在上述搜索查询中,“三星Galaxy A7”是重要关键字,应该在结果中的其他产品中出现。我们人类可以知道,“三星Galaxy A7”是从“三星Galaxy A7(2017)32GB”中比较其他产品的重要关键字,但计算机程序如何知道呢?
是否有一种算法可以通过重要关键字比较类似的产品,就像图像比较中的SIFT算法一样?
如果您有任何好的方法来找到相似的产品,请建议我。