gpt4 book ai didi

php - 从输入/选择的文本中查找相似内容

转载 作者:行者123 更新时间:2023-11-29 14:33:15 25 4
gpt4 key购买 nike

我有一个用户,他的购物篮中有一件元素,例如:《 war 机器 2》限量版 - 我希望能够显示其他元素,但不相似,更像是不同版本,例如 war 机器 2 年度游戏版

因此,如果可能的话,我基本上想做的是,如果没有出现任何结果,则少用一个单词进行搜索,然后再重复一次,直到获得所需数量的结果,或者最终没有单词。

因此,如果用户只有“ war 机器”,那么这很容易,因为有很多匹配项,例如 war 机器 2、 war 机器 3 等,当它是一个大而独特的游戏时。

这可行吗?这是最好的方法吗?

最佳答案

实现此目的的一种方法是首先选择名称与当前产品使用相同单词的产品,然后按匹配的单词数对它们进行排序

我做了一个测试并使用了一个使用以下结构/内容的表格:http://i.imgur.com/bwnNd.png

假设当前产品是id为1、标题为“Lorem ipsum dolor sat amet”的产品,我将标题拆分成单词,选择标题中至少有一个单词的产品,对列表进行排序通过匹配的单词数并仅获取前几个(示例中为 4)

在此之后,为了确保获得更好的结果,而不仅仅是匹配最大单词数的结果,您可以使用字符串比较算法,例如编辑距离。我使用这个算法是因为 php 核心中有一个函数 http://php.net/manual/en/function.levenshtein.php

基本上,这个函数告诉您需要对一个字符串应用多少转换才能到达另一个字符串(通过转换可以理解:删除一个字符,添加一个字符,或更改一个字符的值)

因此,通过获取初始标题和每个结果的标题之间的编辑距离,您将知道更接近的标题

执行此操作时,您可以找到最小值(最好,因为它告诉您需要最少的转换次数)并显示您找到此距离的产品

我在这里添加了一个执行此操作的示例脚本:http://codepad.org/FKDgo7ph

作为免责声明:您需要注意此脚本的安全性,这只是一个示例,并将其集成到您的系统中(此处当前产品的product_id和product_name是静态变量)

此外:您可以通过添加一些改进来获得更好的结果,例如:

  • 实现要从初始标题中删除的停用词列表(以确保您不会因为“and”、“or”等词而获得“分数”
  • 在获得分数之前反转单词,并为每个匹配的单词分配不断增长的性能,这样可以确保标题开头的单词比结尾的单词更重要

关于php - 从输入/选择的文本中查找相似内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9619660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com