名称比较算法

时间:2010-10-24 11:21:33

标签: php algorithm

检查名称是否在反恐名单中。

除了给定名称外,还要搜索相似的名称(可能的别名)。

实施例
给定名称=>本拉登警惕!
给定名称=> Ben Larden mhm ..可疑名字,与本拉登匹配xx%

我该怎么做?

  • 使用PHP
  • 名称100%正确,因为它们来自官方来源
  • 我是意大利人,但我认为这不会成为问题,因为名字是国际的
  • 名称可以由多个单词组成:Najmiddin Kamolitdinovich JALOLOV
  • 寻找公司和人员

我看了不同的算法:你认为Levenshtein可以做这个工作吗? 提前谢谢你!

ps我在格式化这个文本时遇到了一些问题,对不起: - )

2 个答案:

答案 0 :(得分:7)

我认为最好的办法是让PHP使用本机函数

由于您可能会将名称与数据库(?)进行匹配,因此您可能还需要检查数据库是否提供任何名称匹配功能。

Google还提供了一个PDF,其中详细介绍了名称匹配算法:

答案 1 :(得分:2)

Levenshtein函数(http://php.net/manual/en/function.levenshtein.php)可以做到这一点:

$string1 = 'Bin Laden';
$string2 = 'Ben Larden';
levenshtein($string1, $string2); // result: 2

为此结果设置一个阈值,并确定名称是否相似。