一尘不染

计算上下文相关的文本相关性

algorithm

假设我想使地址记录(或人名或其他名称)相互匹配,以合并最有可能引用同一地址的记录。基本上,我想我想计算文本值之间的某种相关性,如果该值超过某个阈值,则合并记录。

示例:“西割草机驱动器54 A”可能与“ W.割草机Dr. 54A”相同,但与“东割草机驱动器54 A”不同。

您将如何解决这个问题?在地址情况下,是否需要某种基于上下文的字典来知道“ W”,“
W”。和“西部”是一样的吗?拼写错误(用“移动器”代替“割草机”等)怎么办?

我认为这是一个棘手的问题-也许那里有一些著名的算法?


阅读 347

收藏
2020-07-28

共1个答案

一尘不染

良好的 基线 ,就其较高的计算成本而言,可能是不切实际的 基线 ,更重要的是,它会产生许多误报,这是通用的字符串距离算法,例如

根据所需的准确度级别(应在查全
精确度

两方面指定BTW,即通常表示错过相关性比错误识别一个关系更重要),这 是基于以下[某些启发式方法和想法]可以解决问题

  • 标记输入,即将输入视为单词数组而不是字符串
  • 标记化还应保留行号信息
  • 使用简短的常用替换字典对输入进行归一化(例如,在行的末尾添加“ dr” =“ drive”,“ Jack” =“ John”,“ Bill” =“ William” …,“ “。”开头的是“西”等。
  • 识别(类似于POS标记中的标记)某些实体的性质(例如邮政编码和扩展邮政编码,以及城市
  • 识别(查找)其中一些实体(例如,相对简短的数据库表可以包括目标区域中的所有城市/城镇
  • 识别(查找)一些与域相关的实体(如果所有/很多地址都涉及法律专业人士,则查找律师事务所名称或联邦建筑物可能会有所帮助。
  • 通常,将更多的权重放在来自地址最后一行的令牌上
  • 对具有特定实体类型(例如:“ Drive”,“ Street”,“ Court”)的令牌赋予更多(或更少)的权重,应比其之前的令牌少得多。
  • 考虑一种改进的 SOUNDEX 算法,以帮助标准化

考虑到上述内容,请实施 基于规则的评估程序
。暂时地,可以将规则实现为对树/数组状结构的访问者,在该访问中最初解析输入(访问者设计模式)。
基于规则的框架的优势在于,每种启发式方法都有其自身的功能,并且可以对规则进行优先级排序,即在链中尽早放置一些规则,并通过一些强有力的启发式方法(如:不同的City
= >相关性= 0,置信度= 95%等)。

搜索相关性的一个重要考虑因素是 需要 先验 比较每个单个项目(此处为地址)与其他每个项目,因此需要多达1/2 n^2项目级的比较。因此,以参考项的预处理(解析,规范化…)的方式存储参考项,并可能具有可用作[非常粗糙] 的 摘要/键
可能很有用。可能的相关性指示符(例如,由5位邮政编码组成的键,后跟“主要”名称的SOUNDEX值)。

2020-07-28