php - 如何比较两个字符串 [已] , [已] 并查看彼此有多接近?使用 PHP

标签 php laravel

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

  1. 编辑
  2. 模糊
  3. Damerau Levenshtein
  4. 杰罗·温克勒
  5. Smith Waterman Gotoh

我的代码:

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

输出:

enter image description here

所有这些都适用于英语。然而,就我而言,我有许多不同的语言[阿拉伯语、中文、俄语...等]。这些语言中的一些字母彼此相似。

例子:

  • 阿拉伯语中的“Ê”和“ث”

  • 汉语"已"& "已"

  • 俄语“ћ”和“h”

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

最佳答案

我只有 2 个建议。

  1. 使用 IntlChar::ord 将字符转换为其代码点值.

大多数时候代码点值是should also be close to the other character . (改用 Levenshtein)。

这适用于您的前 2 个示例。


  1. 使用 imagestring 将字符转换为图像 使用 pHash在图像上查看图像的差异。

PHP implementation

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

关于php - 如何比较两个字符串 [已] , [已] 并查看彼此有多接近?使用 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62873237/

相关文章:

php - wordpress查询所有以数字开头的帖子

php - Htaccess 重写删除尾部斜杠

php - WordPress:如何将_filter添加到the_content的特殊div

laravel - 如何使用 VS Code 在浏览器中运行 Laravel 项目

javascript - v-model 不使用 switch 更改数据并在 vuejs 中选择下拉列表

jquery - 我如何将这个 Bootstrap 包正确地放置到我的 Laravel 元素中?

Laravel Livewire 一页多页

php - 在不同的页面中存储和回显 session 数据

php - Symfony2 中的设计模式 : is EventDispatcher a Mediator or Event Aggregator?

php - Laravel - Mail::send 不是异步的