gpt4 book ai didi

php - 如何找到类似的帖子?

转载 作者:行者123 更新时间:2023-11-29 08:38:27 25 4
gpt4 key购买 nike

所以,我有PHP+MySQL。我正在浏览 title 列以查找最相似的字符串。

如何在数据库中找到最相似的字符串并按相似度对它们进行排序?

最佳答案

您可以使用PHP函数levenshtein获取 Levenshtein distance弦之间。

编辑距离是字符串差异程度(反之亦然,相似程度)的度量。假设您有 3 个字符串:

  • 查看现场运行
  • 观看现场运行
  • 你好,我叫约翰

使用编辑距离,我们得到结果:

See spot run - See spot run: 0
See spot run - Watch spot run: 5
See spot run - Hello my name is John: 17

Watch spot run - See spot run: 5
Watch spot run - Watch spot run: 0
Watch spot run - Hello my name is John: 18

Hello my name is John - See spot run: 17
Hello my name is John - Watch spot run: 18
Hello my name is John - Hello my name is John: 0

如您所见,越相似的字符串具有越小的编辑距离。此解决方案并不总是实用,因为您必须存储要比较的每个字符串之间的结果。因此,如果您已经有 1000 条记录,当您创建新记录时,您必须获取新字符串与其他字符串的比较结果。然后,您可以在 SQL 查询中使用这些分数。

这可能不是您的最佳解决方案,但由于没有人提到它,我想我会的。

您还可以查看其他一些有趣的 PHP 函数来了解字符串相似性:

  • similar_text — 计算两个字符串之间的相似度
  • soundex — 计算字符串的 soundex 键

关于php - 如何找到类似的帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14542528/

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