首页 > 数据库 > mysql教程 > MySQL中如何计算字符串相似度百分比?

MySQL中如何计算字符串相似度百分比?

Mary-Kate Olsen
发布: 2024-12-30 17:59:09
原创
220 人浏览过

How to Calculate String Similarity Percentage in MySQL?

如何在 MySQL 中计算字符串相似度

问题:

MySQL 中有两个字符串,需要确定它们的值相似度百分比。例如,给定字符串“@a = 'Welcome to Stack Overflow'”和“@b = 'Hello to stack Overflow'”,您想要找到它们之间的相似性。

解决方案:

  1. 创建编辑距离函数:

    使用以下函数计算两个字符串之间的编辑距离:

    CREATE FUNCTION `levenshtein`(s1 text, s2 text) RETURNS int(11)
    DETERMINISTIC
    BEGIN 
    ...
    END
    登录后复制

    上述函数改编自提供的函数http://www.artfulsoftware.com/infotree/queries.php#552.

  2. 创建 Levenshtein 相似度函数:

    至将 Levenshtein 距离转换为相似度,使用这个函数:

    CREATE FUNCTION `levenshtein_ratio`( s1 text, s2 text ) RETURNS int(11)
    DETERMINISTIC
    BEGIN 
    ...
    END
    登录后复制

用法:

要计算两个字符串之间的相似度百分比,请使用以下公式:

similarity_percentage = ((1 - LEVENSHTEIN(s1, s2) / MAX_LENGTH) * 100)
登录后复制
  • LEVENSHTEIN(s1, s2):计算两个字符串之间的编辑距离。
  • MAX_LENGTH:两个字符串的最大长度。

示例:

SELECT levenshtein_ratio('Welcome to Stack Overflow', 'Hello to stack overflow') AS similarity;
登录后复制

这个查询将返回两个字符串之间的相似度百分比,在本例中为 66%。

以上是MySQL中如何计算字符串相似度百分比?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板