我正在将几个大型ETL进程从SSIS转换到Rhino-Etl。我受够了SSIS的“文法编程”本质。在数百个对话框中搜寻以找出ETL进程正在做什么,很快就会变得陈旧。
有几个SSIS包使用模糊匹配组件根据名字、姓氏和道布加入用户帐户。模糊匹配是必要的,因为名称在两个系统中的拼写并不总是相同的。其中一个可能是合法姓名,另一个可能是昵称,可能是打字错误、婚姻名称更改等。
它并不完美,但它仍然极大地减少了需要人工帮助的记录数量。
.Net和Rhino-Etl都没有类似的东西,所以我正在寻求建议。
我尝试过使用SoundEx t-sql函数,但效果不是很好。
有人对这两个问题有什么建议吗?请随时提出一些完全不同的建议。
发布于 2010-07-19 07:17:04
看看开源项目Sam的String Metrics http://www.dcs.shef.ac.uk/~sam/stringmetrics.html。
我在这里回答了一个类似的问题:Are there any Fuzzy Search or String Similarity Functions libraries written for C#?
我也会做一些关于双变音位http://en.wikipedia.org/wiki/Double_Metaphone的研究
发布于 2010-02-25 18:47:33
我们使用Levenshtein在应用程序代码中查找相似的字符串(实际上是一个包含所有字符串的数据库)。它工作得很好,只要你玩一点距离,例如,允许更长的字符串有更多的差异。
Levenshtein不做的是处理同义词,比如“孩子”和“孩子”,或者“汽车”和“旅行车”。在您的示例中,您可能还希望处理"Bill“和"William”等同义词,因此您可能需要自己添加此代码。
https://stackoverflow.com/questions/2328357
复制相似问题