ruby - 解析人名并在 Ruby 中匹配它们

标签 ruby parsing names

我正在寻找可以让我识别出两个名字是同一个人的 gem 或项目。例如

J.R. Smith == John R. Smith == John Smith == John Roy Smith == Johnny Smith

我想你明白了。我知道没有什么是 100% 准确的,但我想得到至少能处理大多数情况的东西。我知道最后一个可能需要昵称数据库。

最佳答案

我认为一种选择是使用 Levenshtein distance 的 ruby​​ 实现

两个字符串之间的 Levenshtein 距离定义为将一个字符串转换为另一个字符串所需的最小编辑次数,允许的编辑操作是插入、删除或替换单个字符。

然后你可以定义距离小于 X(X 是一个你必须调整的数字)的名字来自同一个人。

编辑 通过一点搜索,我找到了另一种基于语音的算法,称为 Metaphone

仍然有很多漏洞,但我认为在这种情况下,每个人能做的最好的事情就是给你备选方案,让你测试,看看什么最有效

关于ruby - 解析人名并在 Ruby 中匹配它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4731730/

相关文章:

c - 在C中解析 "String"(字符数组)为字符串,int和int

c - C中相同结构的两个名称

Python:根据DataFrame中的列名创建新行

r - 如何通过现有名称列表将矩阵行或列名称更改为新名称?

ruby - Ruby on Rails 中的服务对象模式

ruby-on-rails - Rails Join 不显示相关表中的字段

ruby - RVM 不适合我

php - 当 XML 包含 namespace 时如何将 XPath 与 PHP 一起使用

java - 如何通过 XPATH 解析 XML 文件

ruby - 从 Heroku 检索源代码