天天看點

《大資料原理:複雜資訊的準備、共享和分析》一一2.4 糟糕的辨別方法

2.4 糟糕的辨別方法

以前我總想成為别人,但現在我意識到我更應該成為特别的自己。

―lily tomlin

可憐的辨別符名字。一種顯而易見的情況是,名字不唯一,例如姓氏smith、zhang、garica、lo,名字john、susan);另一個情況是,一個名字有很多表示方法,可能的原因有很多,以下列出部分:

1.姓氏的修改,如du bois、dubois、du bois、dubois、laplace、la place、van de wilde、van dewilde等。

2.口音,如重音符、變音符、停頓、腭化輔音、連音符、雙元音、元音變音、音調等。

3.特殊字元,如妗?

4.一個人可能有多個中間名,這些可能不會被記錄下來。例如,平時,我們總會使用中間名來代替全名,而法律檔案中仍保留我們的全名寫法。

5.一個人名有拉丁語等其他版本,例如carl linnaeus、carl von linne、carolus linnaeus、carolus a linne。

6.複姓和中間名混淆。例如,jean-jacques rousseau還是jean jacques rousseau, louis-victor-pierre-raymond、7th duc de broglie、louis victor pierre raymond seventh duc debroglie搞不清姓和中間名。

7.文化差異導緻名字順序被打亂。

8.改名,如别名、筆名、一時興起的變化,而這些都是合法的。

除了上面這些顯而易見的後果,利用名稱作為辨別符還有一些潛在問題。例如,在名字中使用重音字元會破壞拼寫的正确性和字母順序。一個包含變音字元的名字放到哪裡?假裝看不到變音并且把這個名字按字母順序放到普通字元裡?還是要基于ascii數字配置設定方法讓變音字母不會出現在按字母順序排列的普通字母組成的單詞清單中?同樣的問題也适用于其他特殊的字元。

姓氏編輯也存在類似問題。姓氏de broglie是按d、d還是按b排序?如果按b排序,要是寫成debroglie又該怎麼處理?

遇到這類問題,不可能完全按照字母順序排列名字清單。這意味着按照字母排序設計的搜尋程式容易出錯。

我曾與衆多智能化領域的專業人才進行談話,他們需要為人配置設定辨別符。在每次談話時,他們都好像覺得有必要解釋,雖然人名不能作為一個辨別符,但人名+出生日期這種組合基本上可以滿足辨別符唯一性的需要。有時候,他們又會說,人名+出生日期+社會安全号碼的組合提供了完美的辨別符,因為沒有兩個人有相同的人名、相同的出生日期和相同的社會安全号碼。這種說法簡直可以稱得上愚蠢,完全忽略了辨別的意義所在。正如我們将看到的,就前面所言,為個人或任意資料對象配置設定唯一的辨別符是相對容易的事情,但對于資料管理者而言,他們關心的是如何確定配置設定到每個人的辨別符是唯一的。

讓我們來看看,以名字+出生日期的組合來建立辨別時會發生什麼。而名字+出生日期+社會安全号碼的組合會在稍後給出。

例如,mary jessica meagher,出生于1912年7月7日,她決定在10個銀行裡開個人賬戶。一些銀行有申請表,她也準确地填完了。剩下的銀行通過櫃員問她一些問題,并直接将回答轉錄到計算機終端,就這樣登記她的賬戶。該女士無法看到電腦螢幕,無法檢查各條目内容的準确性。

以下是她的名字+出生日期可能的寫法:

marie jessica meagher,june 7,1912(櫃員把mary錯寫成marie)。

mary j. meagher,june 7,1912(申請表需要寫中間名全稱,而不是名字全稱)。

mary jessica magher,june 7,1912(櫃員拼錯了姓氏)。

mary jessica meagher,jan 7,1912(申請表要求出生月用三個字母簡寫,jun被轉換成了jan)。

mary jessica meagher,6/7/2012(申請表隻留出了兩格填寫年份,銀行注冊奇迹般地讓女士一個世紀後又複活了)。

mary jessica meagher, 7/6/12(按照歐洲常用順序,申請表詢問了出生的日、月、年)。

mary jessica meagher,june 1,1912(申請表裡的7被看成了1)。

mary jessie meagher,june 7,1912(中間名的非正式寫法讓該女士聽着像個孩子)。

mary jessie meagher,june 7,1912(櫃員把名字看做一個男性的寫法)。

marie jesse mahrer,1/1/12(櫃員點選速度過快導緻字母部分缺失,而計算機自動給添加了其他錯誤的字母)。

這樣,mary jessica meagher在10個銀行裡擁有了10個不同的辨別符。即便mary重新注冊登記,結果可能還是一樣。

如果加上社會安全号碼,情況會更複雜。人的社會安全号碼絕不是唯一的。我們很少會攜帶社會保障卡原件,我們的社會安全号碼也會因記憶錯誤而寫錯(“你的意思是我這些年都記錯了?”),資料錄入錯誤(“字元transpositoins”,我的意思是“字元transpositions”,這是很常見的),或者意圖欺騙(“我不想給那些人我真實的安全号”),或者完全的亂寫(“我不記得了,就随便寫了”),又或者仿照(“我沒有醫療保險,是以我會用我朋友的社會安全号碼”)。通過要求患者攜帶社保卡來減少錯誤并沒有起多大作用。

迫使個人提供社會安全号碼的做法的合法性令人懷疑。社會安全号碼原本是用于在社會保障體系裡驗證一個人的身份,最近,還被用來追蹤稅務交易(包括銀行賬戶、發放的薪金)。社會安全号碼在其他地方的使用并不受法律保護。(美國)社會保障法(section 208 of title 42 u.s. code 408)明确禁止他人或機構強迫個人提供他們的社會安全号碼。

考慮到社會安全号碼在大多數事務中的不可靠性,以及要求個人洩露自己的社會安全号碼的脆弱合法性,審慎的醫療設計辨別系統必須限制使用這些數字。将姓名和出生日期與社會安全号碼結合的思想無形中使得辨別系統将違反嚴格的一對一個的客戶規則。

繼續閱讀