查找重复邮寄地址的策略

2024-04-24

我正在尝试想出一种根据相似度分数查找重复地址的方法。考虑这些重复的地址:

addr_1 = '# 3 FAIRMONT LINK SOUTH'
addr_2 = '3 FAIRMONT LINK S'

addr_3 = '5703 - 48TH AVE'
adrr_4 = '5703- 48 AVENUE'

我计划应用一些字符串转换来缩写长单词,例如 NORTH -> N,删除所有空格、逗号、破折号和井号。现在,有了这个输出,我如何将 addr_3 与其余地址进行比较并检测相似?多少百分比的相似度是安全的?你能为此提供一个简单的Python代码吗?

addr_1 = '3FAIRMONTLINKS'
addr_2 = '3FAIRMONTLINKS'

addr_3 = '570348THAV'
adrr_4 = '570348AV'

感恩,

Eduardo


首先,通过将所有空格折叠为每个单词之间的单个空格来简化地址字符串,并强制所有内容都小写(如果您愿意,也可以大写):

adr = " ".join(adr.tolower().split())

然后,我会删除“41街”中的“st”或“42街”中的“nd”之类的内容:

adr = re.sub("1st(\b|$)", r'1', adr)
adr = re.sub("([2-9])\s?nd(\b|$)", r'\1', adr)

请注意,第二个 sub() 将使用“2”和“nd”之间的空格,但我没有设置第一个来执行此操作;因为我不确定你如何区分“41 St Ave”和“41 St”(第二个是“41 Street”的缩写)。

请务必阅读 re 模块的所有帮助;它很强大但很神秘。

然后,我会将您剩下的内容拆分为单词列表,并应用 Soundex 算法来列出看起来不像数字的项目:

http://en.wikipedia.org/wiki/Soundexhttp://en.wikipedia.org/wiki/Soundex http://en.wikipedia.org/wiki/Soundex

http://wwwhomes.uni-bielefeld.de/gibbon/Forms/Python/SEARCH/soundex.htmlhttp://wwwhomes.uni-bielefeld.de/gibbon/Forms/Python/SEARCH/soundex.html http://wwwhomes.uni-bielefeld.de/gibbon/Forms/Python/SEARCH/soundex.html

adrlist = [word if word.isdigit() else soundex(word) for word in adr.split()]

然后,您可以使用该列表或按照您认为最好的方式将其连接回字符串。

Soundex 的整个想法是处理拼写错误的地址。这可能不是您想要的,在这种情况下,请忽略此 Soundex 想法。

祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找重复邮寄地址的策略 的相关文章

随机推荐

  • 阻止公众访问我的 Heroku 管道中的暂存应用程序

    我有一个带有临时应用程序和生产应用程序的 Heroku 管道 我想限制对暂存应用程序的访问 以便正在测试 暂存中 的功能无法公开访问 我怎么做 None
  • 如何将构造函数参数传递给 ECMAScript 6 中的导入类?

    如果我将一个类导入到其他脚本中 如何使用 ES6 语法将参数传递给该类构造函数 我想做这样的事情 我见过各种建议 例如包装函数或使用工厂模式 但是有没有更干净 更简单的方法来做到这一点 This is sudo code import So
  • 如何检查一个 JSON 对象是否存在于另一个对象中

    我有两组数据JSON data json 如下 UP password jhonjhon username jhon password juliejulie username julie password blakeblake userna
  • 使用 RxJava 和 Retrofit 实现 Room

    我正在尝试将 Room 与 RxJava 和 Retrofit 一起使用 在您建议使用组件架构之前 在这个机会是不可能的 该项目已完成 50 只需继续清理架构 So the problem这是 我有一个网络服务返回POJO 像这样的东西 s
  • 如何使用 go 1.5+ 创建静态链接的 golang 可执行文件

    golang 版本 1 5 怎么样 谷歌搜索没有为我的搜索词返回任何有用的结果 有人对如何生成可以在基本 rkt 来自 CoreOS 容器内执行的静态链接二进制文件有任何建议吗 my go go version go version go1
  • Numpy 数组被舍入?小浮点数的减法

    我将 numpy 数组的元素分配为等于 小 值的 python 浮点类型数字的减法 当我这样做并尝试通过打印到命令行来验证结果时 数组被报告为全零 这是我的代码 import numpy as np np set printoptions
  • 电话管理器值可靠且可变(cdma)吗?

    我想知道我的应用程序是否可以依赖 Android 上的电话值 例如国家 地区 MCC 等 我可以使用 setprop 在运行时更改它们吗 我尝试使用 setprop 进行更改 但似乎不起作用 据我了解 电话管理器是一个类 接口 代表 GSM
  • PHP-OOP 扩展两个类?

    我是 OOP 的初学者 现在我正在尝试编写一些 PHP 类来连接 FTP 服务器 class ftpConnect private server private user private password private connectio
  • Gem-idea:当 HTTP 方法发布、放置或删除时,在 before_filter 中使用验证码自动垃圾邮件防护

    我正在考虑为 Rails 编写一个自动垃圾邮件防护系统 也许我会编写一个公共 gem 我的想法是在 application controller 中包含一个辅助方法 class ApplicationController lt Action
  • Google 翻译 API V2 的速率限制是多少?

    我非常频繁地使用 Google 翻译 API V2 在大约 2000 个请求之后 我开始在返回的 JSON 中得到以下内容 Array error gt Array errors gt Array 0 gt Array domain gt
  • 如果收到警告 Converting to string: TypedValue, 如何识别代码错误的地方?

    以下是 LogCat 的摘录 04 04 19 51 51 270 INFO ActivityManager 57 Starting activity Intent cmp com example app Preferences 04 04
  • 如何让 XAML 中的图像显示为实际大小?

    我有一个27 x 27我在 WPF 中显示的像素图像 但它显示larger比大小window 如何让它显示实际尺寸 替代文本 http www deviantsart com upload m20dk6 png http www devia
  • PHP XSS 预防白名单

    我的网站使用所见即所得编辑器 供用户更新帐户 输入评论和发送私人消息 编辑器 CKEditor 非常适合只允许用户输入有效的输入 但我担心通过 TamperData 或其他方式注入 我如何在服务器端控制这个 我需要将特定标签列入白名单 b
  • 将专用 NV12 视频帧转换为 RGB

    我有一个使用 Android MediaCodec 解码的 H264 流 当我查询输出 MediaFormat 时 颜色格式为 2141391875 显然 这是一种专门的 NV12 变体 称为 HAL PIXEL FORMAT NV12 A
  • 旧的 Top Coder 谜语:通过插入 + 来生成数字

    我正在考虑 给定一串数字 找到该字符串等于某个目标数字所需的最少加法次数 每次添加都相当于在数字字符串中的某处插入一个加号 插入所有加号后 照常计算总和 例如 考虑 303 和目标总和为 6 最佳策略是 3 03 我会用蛮力解决它 如下所示
  • 一个 Node.js 集群可以在 64 位 Wintel PC 上生成多少个子进程?

    我正在运行并发测试 为了简洁起见 为每个欺骗的 http 请求定义了一个进程 对于最多 64 个请求 进程 它工作得很好 但在 65 个请求 进程上就折叠起来了 我在一台 I5 笔记本电脑上运行 Window 7 64 位 具有 4GB R
  • 在 Excel 中通过宏向表添加列时设置列标题

    因此 我正在研究这个宏 它根据表中的其他列自动将列添加到表中 所以这是功能 我在此表中有许多标题为 CY 2010 CY 2020 的列 这些年将不可避免地发生变化 然后我想为每个 CY 列在表中添加一列 此外 我希望这些列的标题与年份相匹
  • 如何检查已触摸对象的 ID (iOS)

    在我的视图中 我有一个包含一堆不同点的数组 然后我通过循环运行该数组以在视图中创建一堆不同的正方形 您还可以看到我尝试使用辅助功能标识符来创建类似 ID 的系统 这可能是一个非常糟糕的做法 但我没有主意了哈哈 这是视图 import Lev
  • MongoDB聚合,按值区间分组,

    MongoDB 文档 id 123213 elevation 2300 area 25 id 343221 elevation 1600 area 35 id 545322 elevation 500 area 12 id 234234 e
  • 查找重复邮寄地址的策略

    我正在尝试想出一种根据相似度分数查找重复地址的方法 考虑这些重复的地址 addr 1 3 FAIRMONT LINK SOUTH addr 2 3 FAIRMONT LINK S addr 3 5703 48TH AVE adrr 4 57