And*_*tad 6 string algorithm text nlp
假设我想将地址记录(或人名或其他)相互匹配,以合并最有可能引用相同地址的记录.基本上,我想我想计算文本值之间的某种相关性,并在该值超过某个阈值时合并记录.
示例:"West Lawnmower Drive 54 A"可能与"W. Lawn Mower Dr. 54A"相同,但与"East Lawnmower Drive 54 A"不同.
你会如何解决这个问题?是否有必要使用某种基于上下文的字典,在地址的情况下,知道"W","W".和"西"是一样的吗?拼写错误("搬运工"而不是"割草机"等)怎么样?
我认为这是一个棘手的问题 - 也许有一些众所周知的算法?
一个好的基线,可能是一个不切实际的基准,就其相对较高的计算成本而言更重要的是它产生许多误报,将是通用的字符串距离算法,如
取决于所需的准确度水平(BTW,应该在其召回和精确度方面指定,即通常表示错过相关性是否比错误地识别相关性更重要),基于本地生成的过程基于[以下]一些启发式和想法可以解决这个问题:
考虑到上述情况,实现基于规则的评估程序.暂时,规则可以作为树/类数组结构的访问者实现,其中输入最初被解析(访问者设计模式).
基于规则的框架的优点在于,每个启发式算法都有自己的功能,规则可以优先排序,即在链的早期放置一些规则,允许提前中止评估,具有一些强大的启发式(例如:不同的城市= >相关= 0,置信水平= 95%等......).
搜索相关性的一个重要考虑因素是需要先验地将每个项目(此处为地址)与每个其他项目进行比较,因此需要与1/2 n^2项目级别比较一样多.因此,以预处理(解析,规范化...)的方式存储引用项并且可能具有可用作[非常粗略] 的排序的摘要/键可能是有用的.可能相关性的指示符(例如,由5位ZIP-Code组成的密钥,后跟"主要"名称的SOUNDEX值).
| 归档时间: |
|
| 查看次数: |
3583 次 |
| 最近记录: |