String 人名拆分算法
我正在寻找关于将一个名字分成几个部分的参考资料:“John a.Doe”,first=John,middle=a,last=Doe。在墨西哥,我们有父名、母名、第一名和第二名,而且可以用不同的排列方式书写,因此问题相当复杂 由于这取决于数据,我们正在使用匹配软件计算每个单词的分数,以便我们做出决定(它基于一个大型数据库)。输入的数据不是干净的,它是从一些政府网页导入的,并且经过人工过滤,因此可能也有需要识别的垃圾。有什么建议吗 [编辑] 示例: name: Javier Abdul Córdoba Gándara common permutations (or as it may appear in gvt data referring to same person): Córdoba Gándara Javier Abdul Javier A. Córdoba Gándara Javier Abdul Córdoba G. paternal=Córdoba maternal=Gándara first given:Javier second given:Abdul 姓名: 贾维尔·阿卜杜勒·科尔多瓦·甘达拉 常见排列(或gvt数据中可能出现的指同一人的排列): 科尔多瓦·甘达拉·贾维尔·阿卜杜勒 贾维尔·科尔多瓦·甘达拉 贾维尔·阿卜杜勒·科尔多瓦G。 父系=科尔多瓦 母亲=甘达拉 第一名:哈维尔 第二名:阿卜杜勒 姓名:María de la Luz Sánchez Martínez 父亲:桑切斯 母亲:马丁内斯 第一个给出:María de la Luz 名称:绿盲蝽 父亲:阿里亚斯 母亲:麦地那 第一批:帕洛马 第二次给药:绿僵菌 正如我所说,每个单词的意思取决于分数。如果不是从分数上,你无法知道Viridiana和Alin是被命名的 ViridianaString 人名拆分算法,string,pattern-recognition,String,Pattern Recognition,我正在寻找关于将一个名字分成几个部分的参考资料:“John a.Doe”,first=John,middle=a,last=Doe。在墨西哥,我们有父名、母名、第一名和第二名,而且可以用不同的排列方式书写,因此问题相当复杂 由于这取决于数据,我们正在使用匹配软件计算每个单词的分数,以便我们做出决定(它基于一个大型数据库)。输入的数据不是干净的,它是从一些政府网页导入的,并且经过人工过滤,因此可能也有需要识别的垃圾。有什么建议吗 [编辑] 示例: name: Javier Abdul Cór
我们有一个非常强大的数据库(8000万条记录左右),所以我们可以使用评分系统。我正在设计一些使用该方法的算法,但正在寻找其他参考。您可能需要添加一些自然语言或机器学习来检查。识别作者姓名(如科学论文中的作者姓名)的问题很困难,因为它们可能会以不同的顺序、缩写程度、省略号等进行报告。如果数据库不干净,无论你做什么,最终都会产生歧义。你可能需要添加一些自然语言或机器学习来检查。识别作者姓名(例如,在科学论文中)的问题很困难,因为作者姓名可以以不同的顺序、缩写程度和,省略等。如果您的数据库不干净,无论您做什么,您都会以模糊结束。不幸的是——我自己做了很多这方面的工作——您的理想算法将非常特定于数据,并且您需要针对您的特定情况解决这一问题 在开发此算法的总时间和精力中,我认为时间大致分为以下几部分:
- 如果不需要,请删除非字母数字/空白字符
- 在空间上拆分
- 使用连字符/标点符号标识姓氏或姓氏
- 姓名首字母(通常为单数) 字母)不是姓氏;i、 e.他们 必须是第一位/中间位
- 确定以编程方式标识每个名称的可信度(并对此进行彻底测试)。您可能会发现,有一些数据子集包含类似的模式,需要单独加以处理(它们可能来自不同的来源等)
- 如果不需要,请删除非字母数字/空白字符
- 在空间上拆分
- 使用连字符/标点符号标识姓氏或姓氏
- 姓名首字母(通常为单数) 字母)不是姓氏;i、 e.他们 必须是第一位/中间位
- 确定以编程方式标识每个名称的可信度(并对此进行彻底测试)。您可能会发现,有一些数据子集包含类似的模式,需要单独加以处理(它们可能来自不同的来源等)