如何比较两个字符串[已;]、[巳;]并查看它们之间的接近程度?使用PHP

如何比较两个字符串[已;]、[巳;]并查看它们之间的接近程度?使用PHP,php,laravel,Php,Laravel,我尝试了许多不同的方法来完成这项任务: 列文施坦 模糊的 达梅劳·列文施坦 雅罗·温克勒 史密斯·沃特曼·戈托 我的代码: <?php echo levenshtein("ЛИЧНА КАРТАlоемптY CARO Пренные ЂУРЂЕВИЋ Hercinian","Михајло Ђурђевић")."<br>"; ?> 输出: 所有这些都能正确地运用英语。然而,就我而言,我

我尝试了许多不同的方法来完成这项任务:

  • 列文施坦
  • 模糊的
  • 达梅劳·列文施坦
  • 雅罗·温克勒
  • 史密斯·沃特曼·戈托
  • 我的代码:

    <?php
            echo levenshtein("ЛИЧНА КАРТАlоемптY CARO Пренные ЂУРЂЕВИЋ Hercinian","Михајло Ђурђевић")."<br>";
    ?>
    
    
    
    输出:

    所有这些都能正确地运用英语。然而,就我而言,我有许多不同的语言[阿拉伯语、汉语、俄语……等等]。这些语言中的一些字母彼此相似

    例如:

    • 阿拉伯文“ت”和“ث”

    • “中文”已" & "巳"

    • 俄语中的“ћ”和“h”


    如何用多字节语言处理这些字母以获得良好的准确性?

    我只有两条建议

  • 使用将字符转换为其代码点值
  • 大多数情况下,代码点的值都是相同的(请改用Levenshtein)

    这适用于前两个示例


  • 将角色转换为具有 在图像上使用以查看图像中的差异

  • 这适用于您的所有3个示例

    我对这些特定语言的了解不足以说明您是否应该在所有情况下都这样做,但如果您可以确定两个字母基本上可以在某一语言中互换,那么您可以在计算相似性之前,将所有较罕见的字母替换为较常见的字母算术——或者你可以计算有和没有更罕见的字母的相似度。不过我不知道这里是否有一个一刀切的答案。@TKoL非常感谢。我知道了。不过,我希望得到一个更好的解决方案,它可以适用于任何语言。也许有一种方法可以使用(AI或ML)来实现这一点或者类似的东西。哇,非常感谢。我会试试它,如果它对我有效,我会告诉你的。谢谢。