数据匹配算法方法

时间:2014-01-09 12:34:39

标签: algorithm matching

我真的不知道从哪个项目开始,所以我希望一个广泛的问题至少可以指出我正确的方向。

我现在有2个数据集,每个约5gb,有2百万个观察值。它们是在特定时间内为给定区域的房产列表收集的评估和历史数据。我需要做的是匹配属性彼此。因此,财产可能会在历史上出现,因为在此期间它被出售了2到3次。在这个历史中,我有卖家信息,贷款信息和销售信息。在评估员数据中,我具有描述所售房产的所有特征。所以为了做任何定价模型,我需要匹配两者。

我有各自相似的变量,但它们会略有不同(拼写错误,缩写等)。有没有人对我有任何关于通过这个的建议?首先,我想要在哪个程序中执行此操作?我有STATA,R和一些SAS和Matlab的经验,但我更喜欢使用前两个。

我读完了这个:

Data matching algorithm

他使用.NET并且一个用户建议采用Levenshtein方法(其中计算字符串之间的距离),因此对于像地址I这样的字段,我可以使用它并加权两个字符串之间的近似精度。然后有人建议使用Soundex可能是卖家/所有者的名字。

但是我真的迷失了如何实现这一点,在我接触到我所在部门的任何人之前,我真的需要对我正在做的事情有所了解!

任何帮助或建议都会非常有帮助。

1 个答案:

答案 0 :(得分:0)

是的,您描述的字符串匹配问题有几种很好的算法,即:

  • jaro-winkler,
  • smith-waterman,
  • 骰子-sorense
  • 同音
  • damerau-levenshtein,
  • 型Monge-埃尔肯 仅举几例。

我建议A Comparison of String Distance Metrics for Name-Matching Tasks, by W. W. Cohen, P. Ravikumar, S. Fienberg概述可能最适合的内容。

SoftTFIDF声称是最好的。它作为Java包提供。字符串匹配和记录链接算法还有其他实现:

库。