Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 比较两种数据结构的相似性_Algorithm_Comparison_Computer Science_Equality_Fuzzy - Fatal编程技术网

Algorithm 比较两种数据结构的相似性

Algorithm 比较两种数据结构的相似性,algorithm,comparison,computer-science,equality,fuzzy,Algorithm,Comparison,Computer Science,Equality,Fuzzy,我试图找到一种算法来检查两个数据项之间的相似性。假设我有两个包含以下数据的数据结构(联系人列表中的字段): // UserA addressbook. name: Frank Sinatra mobile: +44 555 555 555 55 // UserB addressbook. name: Frank Albert Sinatra phone: 004455555555555 我从不同的提供商那里得到了这些条目,UserA同步了他的谷歌账户,UserB同步了他的微软账户,但我希望我

我试图找到一种算法来检查两个数据项之间的相似性。假设我有两个包含以下数据的数据结构(联系人列表中的字段):

// UserA addressbook.
name: Frank Sinatra
mobile: +44 555 555 555 55

// UserB addressbook.
name: Frank Albert Sinatra
phone: 004455555555555
我从不同的提供商那里得到了这些条目,
UserA
同步了他的谷歌账户,
UserB
同步了他的微软账户,但我希望我的算法告诉我,两个用户都认识同一个人(在一定概率内)


有人知道我应该去哪里调查吗?我试图找到创建“不安全”散列的散列算法,即对相似数据使用相似的散列,但该方法没有效果。

您可以进一步研究的一些关键词:数据相似性、距离/相似性度量(度量)、相关性、不精确匹配。

字符串的相似性可以通过。测试前应准备好字符串,如删除特殊字符或拆分字符串。
对于数据结构,首先看一下

,您可以将所有名称(名字、姓氏、中间名)隔离到一个数组中,并从数字中去掉所有“+”符号、空格和前导零。然后检查数字是否匹配,以及其中一个数组是否包含另一个数组的某些元素。数据结构只是一个示例。它可能是自定义字段或消息列表。我需要比较两种数据结构。我认为一般的相似性算法在您的示例中不起作用。两个相似的电话号码本质上是不同的。“Miller R”、“Robert Miller”和“Miller Bob”可能指同一个人,在词汇上有所不同,尽管它们有一个共同的子词。我认为,如果你按照H2CO3的建议对数据进行归一化,然后对每个字段使用自定义比较,告诉你a是否可能是B,例如,“J Rye”<“Jane Rye”<“Jane F E Rye”和“Raye,J”=“J Rye”,那么你会更成功。两个电话号码的Levenshtein距离告诉你什么?两个距离为1的数字甚至可能在另一个国家,这取决于差异所在的位置。