加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

.net – 将人名称解析为其组成部分的简单方法?

发布时间:2020-12-16 22:35:05 所属栏目:大数据 来源:网络整理
导读:很多联系人管理程序都这样做 – 你键入一个名称(例如,“约翰·史密斯”),它会自动将其内部分为: 名字:约翰 中间名:W. 姓:史密斯 同样,它阐述了诸如“简·史密斯夫人”和“约翰·多·约翰博士”正确的(假设你允许字段像“前缀”和“后缀”的名称)。 我
很多联系人管理程序都这样做 – 你键入一个名称(例如,“约翰·史密斯”),它会自动将其内部分为:

名字:约翰
中间名:W.
姓:史密斯

同样,它阐述了诸如“简·史密斯夫人”和“约翰·多·约翰博士”正确的(假设你允许字段像“前缀”和“后缀”的名称)。

我认为这是一个相当普遍的事情,人们会想做…所以问题是…你会怎么做?有没有一个简单的算法为此?也许是正则表达式?

我在.NET解决方案后,但我不挑剔。

更新:我明白,没有一个简单的解决方案,这涵盖所有边缘情况和文化…但让我们说,为了争论,你需要的名称片断(填写表格 – 如说,税或其他政府表格 – 是一种情况,你必须输入固定字段中的名称,无论你喜欢与否),但你不一定要强迫用户输入他们的名字到离散字段(较少打字=更容易新手用户)。

你可能想让程序“猜”(尽可能最好的)什么是第一,中间,最后,等等。如果可以,看看Microsoft Outlook如何联系人 – 它让你键入名称,但是,如果你需要澄清,有一个额外的小窗口,你可以打开。我会做同样的事情 – 给用户的窗口,以防他们想输入离散片段的名称 – 但允许在一个框中输入名称,并做一个“最好的猜测”,涵盖最常见的名称。

没有简单的解决方案。名称建构因文化而异,甚至在英语世界中,前缀和后缀不一定是名称的一部分。

一个基本的方法是在字符串的开头(例如“Hon。John Doe”)和数字或在结尾处的一些其他字符串(例如,“John Doe IV”,“John Doe Jr.”)查找荣誉,但真正所有你能做的是应用一套启发式和希望最好的。

可能有用的是找到未处理的名称的列表,并针对它测试您的算法。我不知道有什么预先包装在那里,虽然。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读