人名编码

来自计算思维百科
跳转至: 导航搜索
人名编码1.png

在使用英语的国家,人们经常会出现这样由于口头或书面信息不能重复或是出现了书写错误,而人们又想在查阅别人的信息时不出错,比如在面对字母拼写很像的人名Smith和Smyth时,有没有什么办法可以方便地对这些人名进行处理?

解决方法

最古老的改进方法是语音编码系统,由两名美国人发明于1918年,此后,经过多次微小的修改,此系统设计之初是为了帮助确保口头整理的户口普查资料的完整性,之后被用于航空、警务和票务系统。

这个系统的目的就是要编码人名,将那些发音相同但拼写起来有微小区别的名字(如Smith 和Smyth)都编码为一组。这样,当进入其中一组,就会看到其他几个不同拼写,从而在归档时不会弄错其中任何一个名字,尤其是寻找名字可能已经有轻微变动的外国移民时,这种编码就非常有用。它能自动显示众多相近的人名拼法,这样我们就不用挨个寻找,而且还能看到自己没想到的拼法。下面就是它在处理人名时的工作原理:

  1. 保留名字的首字母
  2. 除了名字的首字母之外,删掉别处出现的a,e,i,o,u,h,y,w这几个字母
  3. 给剩下的字母标号b,f,p,v都标作1,c,g,j,k,q,s,x,z都标作2,d和t标作3,l标作4,m和n标作5,r标作6,
  4. 在最初的全名中,如果两个或以上的字母号码相同且相邻,就只保留第一个
  5. 最后,只记下剩余字母中的前四个,如果总共少于四个,少几个就在末尾加几个零,让整个字符串长度达到四位。

例如,我的名字是John,该过程就是:先变成Jn(第一步和第二步),然后是J500。如果你叫Jon的话,也会得出同样的结果。同样,Smith和Smyth都成了S530,而Ericson,Erickson,Erisen和Erikson都得出E6225这一结果。

运用的计算思维

容错纠错指在解决问题的过程中能够在出现数据、文件损坏或丢失时通过其他方式保证工作的正常进行找到错误所在。这种方法可以将很相像的人名归在一起,便于资料管理,体现了容错的计算思维。

参考文献

约翰·D. 巴罗著;申晓羽译.读心术的把戏=100 essential things you didn't know you didn't know:其实你不知道的100件事/—上海:上海科技教育出版社,2011