首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >医院名称匹配算法

医院名称匹配算法
EN

Stack Overflow用户
提问于 2016-01-16 18:04:58
回答 2查看 236关注 0票数 1

我在一家医疗公司工作,住院报告数据有问题。我有来自不同来源的数据: Excel报告,纯文本文件,在某些情况下文件。我设法将所有数据都输入到Excel文件中。但我遇到了一个问题,就是每个人都拼写并转到同一家医院。

例如:纽约长老会医院,我已经看到了10多个变体。

  1. 纽约长老会医院
  2. 纽约长老会医院
  3. 长老医院
  4. 普雷布医院
  5. PresbHosp
  6. New_York_Presb_Hosp
  7. NYPresbHosp
  8. 哥伦比亚长老会医学中心
  9. NYP/哥伦比亚大学医学中心
  10. 纽约长老会医院哥伦比亚大学医学
  11. 还有更多的医院名字拼错了
  12. 一些不同的系统字符串限制并在随机位置切断字符串,或者它们复制和粘贴不正确。
  13. 不同的护士以不同的方式称呼医院

实际上,我试图创建一个真正的数据库,可以存储所有会员的信息,但我遇到了一堵墙,因为每个工作人员/部门都以不同的方式命名医院。(每家医院都有唯一的提供者ID ),但我收到的大多数报告只包括“姓名”。我有2000多名成员,拥有大约100至150家医院,但数量是不同名称的3或4倍。

我知道Levenshtein距离可能会被使用,但在这种极端情况下,是否有建立匹配的策略?有太多的数据需要手工完成(耗时),因为这是分配给我的几十个或报告之一。如有任何建议,将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2016-01-16 18:43:03

这是一个相当标准和相当困难的问题。整个公司的存在都是为了解决大数据的问题。

通常的策略是用启发式算法对已知的数据域进行编码,在将数据放入数据库之前对其进行分类。

标准的分类方法是为每个医院创建一组模式字符串。您给出的示例最初可能会出现在模式集中。

然后,对于每个传入的字符串和每个模式,计算一个度量,这是字符串和模式之间的差异。Levenshtein是一个很好的起点。包含最小距离模式的集合(在本例中为哥伦比亚长老会)获胜。过小的距离意味着你的模式集不好。(你可以调整“过度”的含义。)多个低距离(你也可以定义“低”)意味着模式集有不经意的重叠。

这两个问题都可以以不同的方式处理,通常涉及人类的干预,要么对数据进行分类,要么增强模式集,或者两者兼而有之。

第二种可能是使用regexes作为模式。那么,一个匹配等于以上的距离为零,而不匹配则是距离无穷大.正如您可能预期的那样,这使得算法不那么灵活。然而,对于某些类型的数据--可能不是你的--这是最好的选择。

票数 2
EN

Stack Overflow用户

发布于 2016-08-29 23:17:44

您应该寻找数据正在形成的“特定模式”。我所观察到的是,在你所揭示的字符串中-- "Presb“是用于所有字符串中的子字符串(为您提供的医院字段的变体)。@M-ohem的评论也是一个不错的方法。但是对于初学者,您可以设置一个正则表达式来检查是否有任何输入字符串中有模式"Persb“。学习更多

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34830306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档