php - 需要一种算法来查找几乎重复的文本值

标签 php algorithm duplicates taxonomy custom-taxonomy

我经营一个照片网站,用户可以在其中自由输入他们喜欢的任何标签,甚至是以前未使用过的标签。结果,标签的照片有时可能被标记为“昆虫”,而其他人将其标记为“昆虫”。

我想保留自由标记功能,但也想有办法过滤掉此类近似重复项。目前标签的总数为 1,500。我的想法是将所有这些从数据库读取到内存中,然后在其上运行一个显示“可疑”的算法。

我的想法是怀疑字符串中 x% 的字符是相同的(相同的字符和顺序),其中 x 是可配置的。我可能会编写一种非常低效的方法来执行此操作,但我想知道是否有解决此问题的现有解决方案?

编辑:忘记提及:仅对标签进行排序是不够的,因为这需要我遍历整个集合才能找到重复项。

最佳答案

你的逻辑有问题。例如,当一个对象的复数与单数不同时会发生什么(即人与人,甚至糖果与糖果)。

如果英语是主要语言,请查看 Soundex允许语音匹配。还可以考虑使用众包同义词模型,用户可以在其中创建指向现有标签的链接。

关于php - 需要一种算法来查找几乎重复的文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7490411/

相关文章:

php - 为什么数据不显示 php mysql

php - fatal error : Call to undefined function mysql_connect() cannot solve

php - 属性作为数组

algorithm - 寻找树叶的最佳解决方案

c++ - 从P1到P1'的角旋转后如何得到边界矩形?

C 找出两个堆栈之间的较小差异

Bash 在参数 $@ 的字符串列表中删除重复项

java - 在将重复项添加到数组之前识别重复项

MYSQL Group 通过返回重复值

php - 交响乐 2.8 : Cannot get current user in Service (FosUserBundle)