1

我正在寻找有关分隔名称的参考:“John A. Doe”部分,first=John,middle=A.,last=Doe。在墨西哥,我们有父名、母名、名和姓,并且可以用不同的排列方式书写,因此问题相当复杂。

由于它依赖于数据,我们正在使用匹配软件来计算每个单词的分数,以便我们做出决定(它基于一个大数据库)。输入数据不干净,它是从一些政府网页导入的,并且经过人工过滤,因此它可能包含必须识别的垃圾。有什么建议么?

[编辑] 例子:

姓名:
   哈维尔·阿卜杜勒·科尔多瓦·甘达拉
常见排列(或可能出现在 gvt 数据中指代同一个人):
   科尔多瓦·甘达拉·哈维尔·阿卜杜勒
   哈维尔·A·科尔多瓦·甘达拉
   哈维尔·阿卜杜勒·科尔多瓦 G.

父亲=科尔多瓦
母亲=甘达拉
第一名:哈维尔
第二个:阿卜杜勒
姓名:玛丽亚·德拉·卢斯·桑切斯·马丁内斯
父亲:桑切斯
母亲:马丁内斯
第一个给出:玛丽亚德拉卢斯
名称: Paloma Viridiana Alin Arias Medina
父亲:阿里亚斯
母系:麦地那
第一个给出:帕洛玛
第二名:Viridiana Alin

正如我所说,每个单词的含义取决于分数。没有办法知道

维里迪亚纳
阿林
如果不是来自乐谱,则被命名。

我们有一个非常强大的数据库(大约 8000 万条记录),因此我们可以使用评分系统。我正在设计一些使用它但寻找其他参考的算法。

4

2 回答 2

1

不幸的是——我自己做了很多这项工作——你理想的算法将是非常特定于数据的,你需要根据你的特定情况来解决这个问题。

在开发此算法的总时间和精力中,我想说时间将大致分为以下几部分:

  1. 10% 用于一般字符串操作
  2. 30% 用于数据的特定性质(墨西哥名称格式、数据输入怪癖)
  3. 60% 以迎合数据质量/缺乏质量

而且我相信这对于一般的字符串操作来说是相当慷慨的。当然,这取决于您是需要所有记录的质量结果,还是只需要“干净”的记录等,如果您能够忽略“困难”的记录,它会变得简单得多。

一些一般提示

  • 如果不需要,请删除非字母数字/空白字符
  • 按空格分割
  • 使用连字符/标点符号来识别姓氏或姓氏
  • 首字母(通常是单个字母)不是姓氏;即他们必须是第一/中间
  • 确定您以编程方式识别每个名称的置信度(并彻底测试)。您可能会发现包含需要单独处理的相似模式的数据子集(它们可能来自不同的来源等)
于 2009-10-27T22:13:54.347 回答
0

您可能需要添加一些自然语言或机器学习来检查。识别作者姓名的问题(例如在科学论文中)是很困难的,因为它们可以用不同的顺序、缩写程度、省略等来报告。如果你的数据库很脏,无论你做什么,你都会以模棱两可结束。

于 2009-10-27T22:06:54.127 回答