|
|
1
9
好的 基线 可能是一个不切实际的,因为它的计算成本相对较高,更重要的是它产生了许多假阳性,将是通用的字符串距离算法,如
取决于所需的精度水平(btw,应根据其 recall and precision 也就是说,通常表示遗漏相关性是否比错误识别相关性更重要, 一个基于以下启发式和思想的自主开发的过程可以做到这一点。 :
基于上述考虑,实施
基于规则的评价者
. 暂时,规则可以作为树/数组结构的访问者来实现,在这种结构中,输入最初被解析。(
Visitor design pattern
)
寻找相关性的一个重要考虑因素是
需要
先验的
将每个项目(此处地址)与其他项目进行比较
,因此需要
|
|
|
2
1
我将考虑生成一个相似性比较度量,在给定两个对象(可能是字符串)的情况下,返回它们之间的“距离”。 如果您满足以下标准,那么它将有助于:
如果您的度量符合这些要求,那么您可以将对象安排在度量空间中,这意味着您可以运行以下查询:
有一本关于它的好书 here . 一旦为托管对象和运行查询设置了基础结构,您就可以简单地插入不同的比较算法,比较它们的性能,然后对它们进行优化。 我在大学为地理数据做了这个,尝试调整比较算法是很有趣的。 我相信你可以想出一些更高级的方法,但是你可以从一些简单的方法开始,比如把地址行减少到每个单词的数字和第一个字母,然后用最长的公共子序列算法比较结果。 希望在某种程度上有所帮助。 |
|
|
3
1
你可以用 Levenshtein edit distance 查找只有几个字符不同的字符串。 BK Trees 有助于加快匹配过程。 |
|
|
4
0
免责声明: 我不知道有什么算法能做到这一点,但如果它存在的话,我真的很想知道它。这个答案是一个天真的尝试,试图解决这个问题,没有任何先前的知识。欢迎评论,请不要笑得太好。 如果您尝试手工操作,我建议您对字符串应用某种“规范化”:小写、删除标点符号,或者用完整的单词(dr.=>drive、st=>street等)替换常见的缩写。
然后,您可以尝试比较两个字符串之间的不同对齐方式,并通过平均相应字母之间的绝对差异(例如A=1、B=2等)来计算相关性。和
因此,即使某些字母不同,相关性也会很高。然后,只需保持找到的最大相关性,并确定如果相关性高于给定阈值,它们是相同的。 |
|
|
5
0
早在90年代初,当我不得不修改一个专用程序时,它在多个模块中花费了数千行代码,这些代码是经过多年积累的。现代机器学习技术应该使学习更容易,也许你不需要表现得很好(这是我雇主的面包和黄油)。 所以如果你说的是合并实际邮寄地址的列表,如果可以的话,我会通过外包来实现。 USPS进行了一些测试来衡量地址标准化计划的质量。我不记得这是如何工作的,但是你可以检查他们是否仍然这样做——也许你可以得到一些好的培训数据。 |
|
Ben · 统计向量中的单词在字符串中出现的频率 1 年前 |
|
|
bear_525 · 从列中删除中间名和首字母,并保存在单独的列中 1 年前 |
|
|
asdfadf · 为什么具有相同内存值的字符串和整数打印方式不同? 1 年前 |
|
|
user764754 · 防止多行原始字符串文字中出现新行字符 1 年前 |
|
|
Bogaso · 从列表中返回与模式匹配的元素 1 年前 |
|
|
Jasco · 如何使用VBA提取两个相似字符之间的字符串中的单词? 1 年前 |