我有一个名单列表,我需要将它们分成名字和姓氏。由于某些名称中有2-3个空格,因此无法对空格进行简单拆分。
人们用什么样的启发式来进行拆分?
请注意,这不是有效询问如何在空间分割的问题的重复;我正在寻找启发式算法和算法,而不是实际的代码帮助。
更新:我将问题集限制为英文名称。这就是我需要解决的问题,也许所有接近这个(英语)问题的人都需要这样做。
答案 0 :(得分:6)
我读过一篇关于这个主题的非常有趣和全面的文章:
http://www.w3.org/International/questions/qa-personal-names
它甚至建议你自问是否真的需要单独的字段来表示名字和姓氏。它似乎取决于您的应用程序的目标区域。
答案 1 :(得分:3)
虽然没有完全解决这个问题,但有两种方法可以提供帮助。
不是真正的答案,但在这种情况下确实没有完美的答案。
答案 2 :(得分:1)
不同的国家和地区的名称格式不同。例如,亚洲的姓氏通常是第一个,然后是名字。西方,你有第一个名字和姓氏惯例,但是当人们翻倍或包含中间名时会变得复杂。然后一些地区的人只有一个名字。
就个人而言,我认为没有一种算法可以让你100%准确的结果我担心。
答案 3 :(得分:0)
以下假设英式姓氏。如果情况并非如此,请更新您的问题。
通常可以安全地假设最后一个空格字符表示一个人姓氏的开头。但是,由于存在例外,一种策略是从其他来源编译已知多字姓氏的大型数据库。然后,您可以测试这些姓氏,并将其视为例外。