- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在处理大型企业数据库。
我希望能够比较两个公司名称的相似性,看看它们是否可能是重复的。
以下是应测试为很可能重复的企业名称列表,有什么好的方法可以解决这个问题?
George Washington Middle SchlGeorge Washington SchoolSanta Fe East IncSanta Fe EastChop't Creative Salad CoChop't Creative Salad CompanyManny and Olga's PizzaManny's & Olga's PizzaRay's Hell Burger TooRay's Hell BurgersEl SolEl Sol de AmericaOlney Theatre Center for the ArtsOlney Theatre21 M Lounge21M LoungeHoliday Inn Hotel WashingtonHoliday Inn Washington-GeorgetownResidence Inn Washington,DC/Dupont CircleResidence Inn Marriott Dupont CircleJimmy John's Gourmet SandwichesJimmy John'sOmni Shoreham Hotel at Washington D.C.Omni Shoreham Hotel
最佳答案
我最近完成了一项类似的任务,尽管我将新数据与数据库中的现有名称进行匹配,而不是在一组中查找重复项。名称匹配实际上是一项经过充分研究的任务,其中有许多因素超出了您在匹配通用字符串时所考虑的范围。
首先,我建议看一下 Raffo 和 Lhuillery 的论文,如何玩“名称游戏”:比较不同启发式的专利检索。发布版本为here ,并且可以免费获得 PDF here .作者提供了一个很好的总结,比较了许多不同的匹配策略。他们考虑了三个阶段,他们称之为解析、匹配和过滤。
解析包括应用各种清理技术。一些例子:
在我的例子中,我将所有字母折叠成小写,将所有标点符号替换为空格,将重音字符替换为非重音字符,删除所有其他特殊字符,并从列表后面的名称的开头和结尾删除法律控制术语。
匹配是解析名称的比较。这可以是简单的字符串匹配、编辑距离、Soundex 或 Metaphone、组成名称的单词集的比较,或字母集或 n-grams 的比较(长度为 的字母序列n)。 n-gram 方法实际上对于名称来说非常好,因为它忽略了词序,对“示例部门”与“示例部门”之类的事情有很大帮助。事实上,使用像 Jaccard index 这样简单的东西比较二元组(2 元组,字符对)。非常有效。与其他几个建议相比,Levenshtein distance 是名称匹配方面较差的方法之一。
在我的例子中,我分两步进行匹配,首先比较解析后的名称是否相等,然后将 Jaccard 索引用于剩余的二元组。我没有实际计算所有名称对的所有 Jaccard 索引值,而是首先对两组给定大小的 Jaccard 索引的最大可能值设置一个界限,并且仅在该上限足够高时才计算 Jaccard 索引可能有用。大多数名称对仍然非常不同,以至于它们不匹配,但它大大减少了进行比较的次数。
过滤是使用辅助数据来拒绝解析和匹配阶段的误报。一个简单的版本是查看匹配的名称是否对应于不同城市的企业,从而对应不同的企业。该示例可以在匹配之前应用,作为一种预过滤。之后可能会应用更复杂或更耗时的检查。
我没有做太多过滤。我检查了这些国家的公司,看看它们是否相同,就是这样。数据中并没有太多的可能性,一些时间限制排除了对额外数据的任何广泛搜索以增强过滤,并且计划进行手动检查。
关于python - 确定一个企业名称是否与另一个非常相似 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6400416/
我一直在积极跟进 Blazor,现在我想从我的工作场所获取一个企业应用程序,并将其转换为 Blazor,并保持在企业的限制范围内。我有很多问题,但我会重点关注:在托管方面我应该从什么模型开始。 ASP
destoon实现首页显示供应、企业、资讯条数有多种方法,这里介绍的是直接调用php程序代码进行查询。destoon的模板里面是支持php的代码的,因此我们可以直接在模板里面查询出来即可。 实现代
我目前的任务是为软件开发创建一个文档化的、一致的架构指南。我们有很多聪明人在做正确的事情,但只是不一致和可重复。 我们使用 Microsoft 的应用程序架构指南 2.0 作为起点。因此,提出一个应用
我们正在使用 Zeek 以“连接日志”的形式从交换机收集网络流量。然后,连接日志通过 filebeat 存储在 Elasticsearch 索引中。每个连接日志都是一个包含以下字段的元组:(sourc
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足 Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以
我只是研究Corda enterprise,我在解压这个文件时下载了文件Corda enterprise3.zip,里面有很多文件jar。谁能帮我解释下corda enterprise的运行和使用方法
我的Apple开发者帐户中有一些有关InHouse App(企业)的预配配置文件。 如果删除那些配置文件,会有什么影响? 会影响已发布的应用程序吗? 删除它安全吗? 最佳答案 您可以删除它们: 已安装
我有一个要分发给公司员工的 iOS 应用程序。我知道为此我们需要考虑企业开发者帐户。我的疑问是我将如何分发构建。苹果是否提供企业商店?如果不是假设我通过 diawi.com 或类似的服务分发构建,将如
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
是否需要注册测试设备(UDID)?在标准程序中,每个用户设备 ID 都必须添加到开发程序中,并且构建必须使用包含 ID 列表的正确配置文件进行签名。它在企业程序中的样子如何。 最佳答案 在企业中,您不
我在 Sphinx 中已有两个数据源: source cities { ... sql_query = SELECT id, city_name, state_name, state_
我们的企业应用程序的生产 APNs 证书即将到期。 是否只是为我们的应用程序 ID 创建新的生产 APNs 证书并用我们的推送通知提供商替换即将过期的证书? 我是否需要重新捆绑和重新分发我们的企业应用
我有一个关于企业 Mac 应用程序分发的问题。我已经使用企业分发证书签署了我的 mac 应用程序,该证书有效期为 future 三年。 现在我的问题是,安装在 Mac 操作系统上的应用程序是否会在三年
我有一个只能在纽约使用的应用程序,它已经在试飞中发布。我可以将其切换到企业版吗? 最佳答案 没有“开关”,它们是两个完全不同的进程。您需要创建一个新的 Enterprise account ,创建企业
对于在供大量人员使用的大型程序中使用缓存,我还比较陌生。我知道什么是缓存以及为什么它总体上是有益的,并且我已经开始将 EHCache 集成到我使用 JSP 和 Spring MVC 的应用程序中。在我
我的应用程序 ID(MDM 应用程序)的企业 APNS 本周过期,不幸的是我没有注意到它。所以我提出了一个新请求,开始在 APP ID 中为 APNS 创建证书,然后完成请求。我可以在我的 App I
我的任务是切换框架并选择 EF 作为 ORM,但我一直在努力弄清楚如何做到这一点。我了解 N 层的基础知识,但在我们公司,我们支持 15 个以上的应用程序,我想了解我们是否应该为每个项目提供单独的 .
我正在设计一个 MySQL 数据库和一个相应的 RoR 应用程序,用于保存各种业务,每个业务都有一个地址。 此应用程序的要求是按城市/国家/地区搜索数据库(这将适用于整个欧洲/英国的企业)。搜索结果将
当使用“企业分发”选项为客户分发 iOS 应用程序时,该应用程序会下载并安装,但很快就会从主屏幕上消失。重新启动 iOS 设备后,它会重新出现。 最佳答案 在我的情况下,如果您在要保存 .ipa 文件
为了让您了解一些背景知识,我们有一个任何人都可以通过网络访问的软件应用程序。它是银行业和零售业的一个非常具体的应用程序。目前,此应用程序可在 Web 和“Windows 平板电脑信息亭”上访问,我们有
我是一名优秀的程序员,十分优秀!