比较两个非标准格式的地址

Raj*_*j A 5 sql database plsql oracle11g

我必须比较两个表中的地址,并在地址匹配时获取Id.每个表都有三列Houseno,street,state在任一表中,地址都不是标准格式.有约.50,000行,我需要扫描

在一些地方它的大道.大道大道.Str街,ST.Lane Ln.放置PL Cir CIRCLE.任何与点或逗号或空格的组合,泛滥.我正在考虑将所有三个结合起来在SQL或PLSQL中可以做到最好的方法

表格1

     HNO         STR          State
     -----       -----         ----- 
      12        6th Ave         NY
      10        3rd Aven        SD
      12-11     Fouth St        NJ                         
      11        sixth Lane      NY
      A23       Main Parkway    NY
      A-21      124 th Str.     VA
Run Code Online (Sandbox Code Playgroud)

表2

      id   HNO         STR          state
     --    -----       -----         ----- 
     1      12        6 Ave.         NY
     13     10        3 Avenue       SD
     15     1121      Fouth Street   NJ                         
     33     23        9th Lane       NY
     24     X23       Main Cir.      NY
     34     A1       124th Street    VA
Run Code Online (Sandbox Code Playgroud)

Aar*_*lla 1

没有简单的方法可以实现您想要的目标。有一个昂贵的软件(谷歌“地址标准化软件”)可以做到这一点,但很少是 100% 自动的。

此类软件的作用是获取数据,使用复杂的启发式方法尝试找出“官方”地址,然后返回该地址(有时确信结果是正确的,有时则返回按置信度排序的结果列表)。

对于一小部分数据,该软件根本无法工作,您必须自行修复。

  • 尝试一下,当您达到 400 多个案例时再回来:-) (2认同)