賈昊陽 盛毅敏 阮雯強 韓偉力
(復(fù)旦大學(xué)軟件學(xué)院 上海 201203)
大數(shù)據(jù)技術(shù)的發(fā)展伴隨著隱私問題的產(chǎn)生。隨著數(shù)據(jù)存儲和數(shù)據(jù)處理技術(shù)的不斷發(fā)展,越來越多互聯(lián)網(wǎng)用戶的隱私信息被收集并用于商業(yè)服務(wù)或者科學(xué)研究[1-2]。由于隱私信息的泄露可能會造成詐騙、人身攻擊、歧視等多種危害[3],因此對此類數(shù)據(jù)的處理過程受到了嚴(yán)格的法律法規(guī)約束。近幾年,不同國家和組織相繼出臺了一系列大數(shù)據(jù)環(huán)境下隱私數(shù)據(jù)保護的法律法規(guī),如歐盟在2018年5月實施的《通用數(shù)據(jù)保護條例》(General Data Protection Regulation, GDPR)[4]。中國自2016年起相繼頒布和實施了《網(wǎng)絡(luò)安全法》和《信息安全技術(shù):個人信息安全規(guī)范》,并在2019年公布了《個人信息保護法》的專家建議稿。這些法律法規(guī)通過嚴(yán)格規(guī)范數(shù)據(jù)持有者收集、應(yīng)用、存儲和轉(zhuǎn)移數(shù)據(jù)的過程來保障個人信息主體的權(quán)益以及隱私信息的安全。
隱私保護法律的實施為數(shù)據(jù)持有者帶來了法律風(fēng)險。例如,2019年美國監(jiān)管機構(gòu)因Facebook涉嫌與第三方組織共享用戶數(shù)據(jù)而對其罰款50億美元;英國航空公司因為被黑客組織攻擊泄露客戶數(shù)據(jù)而受到約2.3億美元的罰款。為了規(guī)避或減少此類風(fēng)險的產(chǎn)生,數(shù)據(jù)持有者有必要確定他們的數(shù)據(jù)集中是否存在個人信息,存在何種類別與量級的個人信息,從而制定有效的數(shù)據(jù)保護措施。
然而,當(dāng)前尚缺有效工具支持檢測中文數(shù)據(jù)集中的個人信息。特別是對于文本數(shù)據(jù)而言,由于其內(nèi)容復(fù)雜,信息量大,具有很高的不確定性。同時由于個人信息的種類繁多,格式各不相同,因此雖然針對某一類個人信息的識別算法易于實現(xiàn),但缺少一個統(tǒng)一的框架以支持從文本中檢測多種類別的個人信息。
為了解決上述問題,本文設(shè)計并實現(xiàn)了一個個人信息的自動化檢測框架。首先,本文參考國內(nèi)外法律關(guān)于個人信息的定義,明確了13種個人信息的具體類別,即框架需要在文本中檢測的目標(biāo)數(shù)據(jù)。然后,本文結(jié)合模式匹配與自然語言處理技術(shù)設(shè)計并實現(xiàn)了一個高效的個人信息自動化檢測框架。除此之外,為了解決家庭住址格式復(fù)雜、識別困難的問題,本文提出一種新的家庭住址檢測方法。
在工業(yè)界領(lǐng)域,Google提供了一種名為Cloud Data Loss Prevention (Cloud DLP)的隱私信息檢測工具[5]。該工具支持從數(shù)據(jù)中檢測117種個人信息及敏感信息,其中包含31個國家的公民身份識別信息。然而,對于識別中文數(shù)據(jù)里的個人信息,Cloud DLP存在以下兩個問題:(1) 不支持檢測中國公民的電話號碼、生日、家庭住址等常見類別的個人信息;(2) 只支持訪問服務(wù)端API,對每分鐘請求數(shù)的上限(600次)和單次請求規(guī)模上限(0.5 MB)存在嚴(yán)格約束,這導(dǎo)致在檢測大規(guī)模數(shù)據(jù)集時性能受到影響。
在科研領(lǐng)域,對個人信息的檢測研究集中在醫(yī)療數(shù)據(jù)安全。醫(yī)療數(shù)據(jù)如病歷中包含大量病人的基本信息和健康信息,這些數(shù)據(jù)雖然存在很大的研究價值,卻因為涉及十分敏感的個人隱私而被約束使用。為了促進醫(yī)療研究進步,保障醫(yī)療數(shù)據(jù)的安全共享,美國的HIPAA法案組織定義了“受保護健康信息”(Protected Health Information,PHI)[6],并規(guī)定在對這類數(shù)據(jù)進行收集和處理時需要嚴(yán)格遵守法案規(guī)定。為了在格式多樣化的醫(yī)療數(shù)據(jù)集中進行PHI的檢測,研究者們主要應(yīng)用了以下幾種方法:
(1) 模式匹配。利用正則表達式、詞典匹配、句法結(jié)構(gòu)等來提取信息[7-8]。這種方法易于實現(xiàn),可以得到比較高的準(zhǔn)確率和召回率,但是它需要隨著時間不斷更新規(guī)則和詞典的內(nèi)容來滿足新的數(shù)據(jù)格式要求。除此之外,模式匹配會忽略上下文的作用,因此可能存在誤報(滿足格式但不滿足語義)和漏報(匹配規(guī)則不夠完備)的情況。
(2) 機器學(xué)習(xí)。傳統(tǒng)機器學(xué)習(xí)方法,如支持向量機(SVM)[9]、條件隨機場(CRF)[10]等模型通過從數(shù)據(jù)中提取特征進行訓(xùn)練來決定一個字段是否是PHI。這些特征包含字段的大小寫,是否出現(xiàn)在預(yù)定義的詞典中,在文本中的位置等。這種方法的效果受到特征完備性的影響,因此需要大量工作來確定使用的特征類別。深度學(xué)習(xí),如循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)則從標(biāo)注的數(shù)據(jù)集中自動提取特征[11-12]。這些方法利用“詞向量”的概念,將數(shù)據(jù)中的單詞映射成空間中的向量,從而提取一些人工不一定能識別的特征。以上提到的機器學(xué)習(xí)算法存在一個共有的問題是,它們的訓(xùn)練基于小規(guī)模的醫(yī)療標(biāo)記數(shù)據(jù)完成,用于完成指定格式的醫(yī)療數(shù)據(jù)檢測任務(wù),因此不適用于在格式復(fù)雜、內(nèi)容多樣的自然文本中識別個人信息。
本節(jié)通過比較國內(nèi)外法律法規(guī)中對于個人信息的定義,確定待檢測的個人信息具體類別。在本節(jié)參考的法律法規(guī)有中國的《網(wǎng)絡(luò)安全法》《信息安全技術(shù):個人信息安全規(guī)范》,歐盟的《GDPR》,以及美國國家標(biāo)準(zhǔn)與技術(shù)研究所NIST提供的指導(dǎo)標(biāo)準(zhǔn)《SP 800-122》[13]和上文提到的HIPAA法案。
國內(nèi)外的法律法規(guī)在定義個人信息時存在兩種不同方式:一種用抽象的描述,將任何用來識別個人身份的信息都定義為個人信息(如《GDPR》);另一種則是用精確的枚舉,將可能是個人信息的類別用列表展示 (如《SP 800-122》)。前者更為嚴(yán)苛,因為它們的范圍十分廣泛,任何與人相關(guān)的數(shù)據(jù),包括興趣愛好等都可能被視為個人信息。而后者更方便數(shù)據(jù)持有者們通過某些措施以達到遵守法律規(guī)定的目的,只需要將法律中明確枚舉的個人信息類別加以保護,就能減少違反法律的風(fēng)險。
本文主要參考第二種形式的法律規(guī)定確定個人信息類別。這些法律法規(guī)提供了個人信息的詳細列表,包括《信息安全技術(shù):個人信息安全規(guī)范》中的“個人信息示例”,《SP 800-122》定義的 “個人可識別信息”和HIPAA法案定義的“受保護健康信息”。以上三個列表在枚舉個人信息時都存在特有類別,例如“個人信息示例”中的性別、民族、國籍等;“受保護健康信息”中的醫(yī)療記錄編號、健康保險受益人編號,以及統(tǒng)一資源定位符;“個人可識別信息”中的出生地、昵稱。本文取這三個列表的交集,將其視為最基本的個人信息類別。除掉不存在于文本中的基于圖像或基因序列的生物識別信息,最終得到以下13類個人信息作為檢測目標(biāo):姓名、生日、家庭住址、電話號碼(包括手機和固定電話)、電子郵箱、身份證號碼、駕駛證號碼(等同于身份證號碼)、護照號碼、IP地址、銀行卡號(包括信用卡和借記卡)、車牌號。這些信息能夠直接或間接識別到個體,并且在國內(nèi)外的法律中均被強調(diào)。對于像性別、民族、國籍這類的個人信息,由于其具有相同屬性的群體數(shù)量較為龐大,可識別性低,因此不將其納入檢測范圍。
本節(jié)將介紹個人信息的檢測框架。框架包括數(shù)據(jù)預(yù)處理、個人信息識別、以及數(shù)據(jù)可視化三個模塊,同時框架提供知識庫和算法庫,用于支持個人信息識別模塊的執(zhí)行。并且,本節(jié)將對個人信息識別流程進行詳細介紹,展開說明家庭住址的識別算法。
個人信息的檢測框架如圖1所示。該框架的輸入是包含文本數(shù)據(jù)的文件,輸出是經(jīng)過可視化的檢測報告文件,報告中包含:個人信息所在文本、定位、各類型個人信息數(shù)量等。框架共分為以下三個模塊:
圖1 個人信息檢測框架介紹
(1) 數(shù)據(jù)預(yù)處理。預(yù)處理用于統(tǒng)一輸入數(shù)據(jù)的格式,對于pdf、xlsx等文件類型,應(yīng)用特殊的格式解析工具提取文本。解析得到的文本數(shù)據(jù)將通過數(shù)據(jù)清洗步驟過濾非法表情字符、替換繁體字為簡體字,全角字符為半角字符,提高格式統(tǒng)一性,降低臟數(shù)據(jù)對檢測的影響。數(shù)據(jù)切分則將文本劃成獨立分區(qū),以便應(yīng)用于多線程檢測。
(2) 個人信息識別。該模塊應(yīng)用自然語言處理模型檢測人名與住址,應(yīng)用模式匹配算法識別由數(shù)字、字母和符號構(gòu)成的其他個人信息。該模塊同時提供個人信息的上下文詞典對識別結(jié)果進行篩選,從而提高檢測精確性。自然語言處理模型包括中文分詞、詞性標(biāo)注和命名實體識別,三者依照其順序,下一階段的輸入依賴于上一階段的輸出;模式匹配算法包括正則匹配、詞典匹配、數(shù)字校驗。
(3) 數(shù)據(jù)可視化??梢暬瘜⒏袷交臋z測結(jié)果以圖文形式寫入檢測報告中。圖片用于展示個人信息類別及其對應(yīng)數(shù)量、隱私信息所占比例等統(tǒng)計數(shù)據(jù)。對于檢測到個人信息的文本,可視化模塊將會以形如“的電話是
在該框架中,知識庫用于存儲格式有限的個人信息的通用正則表達式、特定前綴詞典(如身份證號的前綴表示行政區(qū)劃代碼)、上下文詞典,以及自然語言處理模型。這些知識來源于預(yù)先制定的數(shù)據(jù)格式規(guī)則、收集的詞典列表、以及訓(xùn)練的模型。算法庫則基于知識庫提供高效的算法來執(zhí)行匹配流程,例如應(yīng)用雙數(shù)組前綴樹完成前綴和上下文的詞典匹配。
檢測首先執(zhí)行模式匹配,在此基礎(chǔ)上再執(zhí)行中文分詞、詞性標(biāo)注和命名實體識別。對于一段文本而言,首先應(yīng)用模式匹配檢測除人名和住址之外的11類個人信息,當(dāng)且僅當(dāng)檢測結(jié)果不為空,或者文本中出現(xiàn)預(yù)定義的家庭住址上下文時,才會對當(dāng)前文本執(zhí)行中文分詞、詞性標(biāo)注和命名實體識別這一系列流程。之所以判斷檢測結(jié)果是否為空,是考慮到一段文本中如果只出現(xiàn)人名這一種個人信息,其敏感性遠低于人名和其他類型的個人信息一同出現(xiàn),因此當(dāng)文本只包含人名時,不將其涵蓋在檢測范圍中;而優(yōu)先進行住址上下文匹配,是因為上下文檢測是住址識別的必要過程。應(yīng)用上述檢測流程的主要目的是減少需要執(zhí)行人名和住址識別任務(wù)的文本數(shù)量,提升檢測性能。
對于應(yīng)用模式匹配的個人信息,其檢測流程如算法1所示。算法首先基于預(yù)先定義的格式要求和數(shù)字校驗對文本進行匹配,再結(jié)合前綴詞典對可能是個人信息的對象做內(nèi)容匹配。除此之外,算法1在模式匹配的基礎(chǔ)上充分應(yīng)用了上下文匹配??紤]到部分個人信息的格式容易誤匹配其他類型的數(shù)據(jù),因此利用上下文來過濾滿足格式但不滿足語義的匹配結(jié)果,減少誤報。同時算法1將滿足上下文但不匹配詞典的個人信息前綴在詞典中更新,以自動地對前綴詞典進行維護,降低漏報的可能性。
算法1個人信息檢測流程
輸入:一段文本e;某類個人信息Pi包含的正則表達式ri,校驗算法fi,詞典di以及上下文詞典ci;上下文取詞窗口,默認(rèn)為左右各取8。
輸出:個人信息列表W。列表中的每一個元素包括個人信息的類別、內(nèi)容、在文本中的位置。
1:W=?
2: ifri.matches(e) then
3: for eachsi∈ri.find(e) do
4: iffi≠null andfi(si)=false then
5: continue
6: end if
7: ifdi,ci≠null andprefix(si)?dithen
8:si.label=suspect
9: end if
10:W.add(si)
11: end for
12: end if
13: forwi∈Wdo
14:CW=context(wi,e,SIZE)
15: ifci≠null andCW∩ci=? then
16:W.remove(wi)
17: else ifCW∩ci≠? and
wi.label=suspectthen
18:di.record(wi)
19: end if
20: end for
21: returnW
不同的個人信息由于其格式特點,在檢測過程中應(yīng)用的匹配方法也不盡相同。例如,對郵箱的識別只需要正則匹配,而對銀行卡號的識別則需要進行正則匹配、前綴匹配、Luhn校驗和上下文匹配四個步驟。表1展示了11類個人信息的格式特點。所有的正則表達式均基于格式特征進行設(shè)計。表2中展示了需要應(yīng)用前綴詞典和上下文匹配的個人信息,并列舉前綴詞典的來源,上下文內(nèi)容。在表2中,部分個人信息只需要在正則匹配的基礎(chǔ)上,依賴詞典或上下文匹配中的一種方法即可完成檢測,例如護照識別不存在可以應(yīng)用的有效詞典,因此僅使用上下文完成匹配。
表1 個人信息格式特征
表2 個人信息檢測的前綴詞典及上下文
家庭住址不同于人名,后者可以通過現(xiàn)有的命名實體識別模型完成檢測,而家庭住址存在格式多樣、與語義關(guān)聯(lián)性強的問題。本文針對家庭住址的格式特征訓(xùn)練了一個支持檢測復(fù)雜地址的命名實體識別模型。對于家庭住址與語義關(guān)聯(lián)性強的問題,則通過枚舉上下文詞典與規(guī)則對模型識別出的復(fù)雜地址進行過濾。
本文的命名實體識別模型利用開源自然語言處理工具集HanLP提供的感知機訓(xùn)練框架完成。該工具集基于結(jié)構(gòu)化感知機[14]實現(xiàn)了一個同時完成中文分詞、詞性標(biāo)注和命名實體識別三項任務(wù)的完整自然語言處理框架,并支持在線學(xué)習(xí),增量更新模型參數(shù)。對于命名實體識別而言,中文分詞與詞性標(biāo)注是前提。由于HanLP提供的感知機算法框架對于三項任務(wù)分別提供了模型訓(xùn)練、加載與存儲的接口,因此本文僅對支持檢測復(fù)雜格式地址的命名實體識別模型進行訓(xùn)練,而對于中文分詞和詞性標(biāo)注任務(wù)則直接應(yīng)用了HanLP在大規(guī)模中文語料庫下預(yù)先訓(xùn)練好的模型。
對家庭住址上下文中可能出現(xiàn)的關(guān)鍵詞語進行統(tǒng)計,并根據(jù)這些關(guān)鍵詞與地址之間的關(guān)系對地址位置進行約束,得到表3。窗口大小用于約束目標(biāo)地址在上下文中取字符的數(shù)量。在不限上下文的情況下,窗口大小為左右各取8。在這些關(guān)鍵詞中,“+”用于表示關(guān)鍵詞必須按順序以組合形式出現(xiàn),但不一定相連?!啊庇糜诩s束地址位置,不需要考慮上下文窗口大小。
表3 家庭住址上下文關(guān)鍵詞列表
基于訓(xùn)練的感知機模型和預(yù)定義的上下文,對一段文本進行家庭住址識別的流程如算法2所示。算法2對命名實體識別模型的檢測結(jié)果進行了過濾。首先篩選標(biāo)記為“ns”即地址的實體;當(dāng)且僅當(dāng)其識別到的地址是組合詞組(isCompound方法判斷當(dāng)前識別出的詞是否為由多個字詞組合而成的詞組,例如“[上海市 人民大道 200 號]”是由四個字詞組成的詞組),且組合詞組的元素組成數(shù)量大于等于3時,該地址為復(fù)雜地址。上下文取詞方法會依據(jù)窗口大小將上下文按順序排列,通過匹配上下文與詞典,即可確定識別的復(fù)雜地址是否為家庭住址。對人名的識別則直接利用了命名實體識別模型的結(jié)果,當(dāng)識別到標(biāo)簽為“nr”的item時,即識別到人名。
算法2家庭住址識別算法
輸入:一段文本e;訓(xùn)練的感知機模型recognizer;家庭住址上文詞典cpre及窗口大小PRE_SIZE,下文詞典csuf及窗口大小SUF_SIZE,不限位置的詞典c與窗口大小SIZE;上下文匹配規(guī)則r。
輸出:文本中識別到的家庭住址列表W。
1:W=?
2:ArrayitemList=recognizer.recognize(e)
3: for eachitemi∈itemListdo
4: ifitemi.label="ns"anditemi.isCompound(e)
anditemi.list.size≥3 then
5: ifr.matches(itemi,e) then
6:W.add(itemi)
7: continue
8: end if
9:PRECW=pre_context(itemi,e,PRE_SIZE)
10:SUFCW=suf_context(itemi,e,SUF_SIZE)
11:CW=context(itemi,e,SIZE)
12: ifPRE_CW∩cpre≠? orSUF_CW∩csuf≠?
orCW∩c≠? then
13:W.add(itemi)
14: end if
15: end if
16: end for
17: returnW
本節(jié)對個人信息檢測框架的效能進行實驗分析。首先介紹用于訓(xùn)練復(fù)雜地址識別模型的語料庫的準(zhǔn)備流程;接著基于用戶發(fā)布的在線社交平臺數(shù)據(jù)分析復(fù)雜地址檢測的精確性;然后利用大規(guī)模的公開文本數(shù)據(jù)分析檢測方法的時間開銷;最后基于對實際數(shù)據(jù)的檢測結(jié)果,對框架生成的報告進行展示說明。
為生成包含復(fù)雜地址的語料庫,具體流程如下:
(1) 收集新聞數(shù)據(jù)并自動標(biāo)注。新聞抓取自新浪門戶網(wǎng)站下的地方新聞,這些新聞記載國內(nèi)不同地區(qū)的事件,地址信息豐富。新聞發(fā)表日期在2014年至2018年間,共收集2 198萬字。利用上文提到的HanLP分詞與詞性標(biāo)注模型對該數(shù)據(jù)集進行標(biāo)注,標(biāo)注格式滿足2014年人民日報語料標(biāo)注格式要求。
(2) 收集復(fù)雜地址并統(tǒng)計其格式。在由政府機構(gòu)發(fā)布的開放數(shù)據(jù)集中收集具有復(fù)雜格式的公司或服務(wù)機構(gòu)地址,這些地址包含市區(qū)、道路名、門牌號信息,部分包含更細粒度的樓層、室號。篩選具有明確位置信息的地址列表并對其進行分詞和詞性標(biāo)注,統(tǒng)計地址格式。例如,“上海市黃浦區(qū)人民大道200號”在HanLP的詞性標(biāo)注模型下得到的結(jié)果為“上海市/ns黃浦區(qū)/ns 人民大道/ns 200/m 號/q”,其中“ns”為地名,“n”為名詞,“m”為數(shù)量,“q”為量詞;因此該地址的格式為“ns,ns,ns,m,q”。在已有的格式集中,將前綴重復(fù)的地名(“ns”)或機構(gòu)名(“nt”)標(biāo)簽合并為一個,作為復(fù)雜地址開始標(biāo)志。本文在上海市公共數(shù)據(jù)開放平臺上獲取有效地址35 387條,有效格式3 233條。
(3) 利用統(tǒng)計得到的格式集合對新聞數(shù)據(jù)集中的復(fù)雜地址進行自動化標(biāo)注。對于一段已經(jīng)完成詞性標(biāo)注的新聞,首先匹配地址的起始位置(即“ns”或“nt”),然后將與其連接的重復(fù)標(biāo)簽合并,再基于地址格式集進行最長模式匹配,將匹配到的字符串用“[]”包圍,并在末尾添加“/ns”以表示這是一個復(fù)合地址。循環(huán)該操作直到文本的末尾。
(4) 人工修正誤報數(shù)據(jù)。對標(biāo)記過的復(fù)雜地址詞組利用人工檢驗的方式對其中的誤報地址進行修正,主要包括刪除不是地址的詞組;修改地址終止字符位置,以過濾將地址和下文信息一同標(biāo)記為復(fù)雜地址的情況。
除了上述自定義語料庫之外,同時用于訓(xùn)練的還有人民日報1998年1月份的開源語料庫與微軟命名實體識別語料庫。后兩者基于2014年人民日報語料格式進行了轉(zhuǎn)換。新聞數(shù)據(jù)集的作用是輔助模型提取復(fù)雜地址的上下文特征,同時復(fù)雜地址的復(fù)合格式輔助統(tǒng)計復(fù)雜地址內(nèi)部特征。而微軟語料庫和人民日報語料庫則用于平衡語料中不同類型實體的數(shù)量。
用于驗證復(fù)雜地址識別精確性的數(shù)據(jù)來自頭條新聞提供的在線尋人啟事,這些尋人啟事中包含大量走失者的籍貫和走失地信息。利用網(wǎng)絡(luò)爬蟲隨機抓取2 000條尋人啟事,并人工對其中的復(fù)雜地址進行了標(biāo)注。標(biāo)記復(fù)雜地址的依據(jù)是判斷地址詳情是否小于“村”或“區(qū)”的范圍。將該數(shù)據(jù)作為驗證集,并與檢測框架得到的結(jié)果進行對比。利用準(zhǔn)確率 (Precision)、召回率 (Recall)、F1值 (F1-score)三個指標(biāo)對結(jié)果進行評估,得到表4。表4顯示復(fù)雜地址的識別達到了較高的準(zhǔn)確率。在該實驗中,任何與標(biāo)注數(shù)據(jù)不匹配的檢測結(jié)果均被標(biāo)記為誤報和漏報,在這種要求下,即使命名實體識別模型檢測到了標(biāo)記地址的子串,也被歸納到識別錯誤的集合中。
表4 復(fù)雜地址在檢測框架下的結(jié)果
為了證明家庭住址識別的有效性,本文在一個大規(guī)模的開源數(shù)據(jù)集THUCNews上進行了驗證。THUCNews為清華大學(xué)提供的開源語料庫,其中包含從新浪新聞上抓取的14個主題下的新聞報道。這份數(shù)據(jù)未經(jīng)過人工標(biāo)注,因此屬于從互聯(lián)網(wǎng)上公開的原數(shù)據(jù)。通過使用家庭住址識別檢測算法,在該份語料庫中識別出家庭住址共22條。人工對這22條信息進行驗證,證明這些信息均為家庭住址,且源自新聞中對通緝或已抓捕的犯罪嫌疑人的信息曝光。對真實數(shù)據(jù)的檢測結(jié)果驗證了家庭住址識別方法的有效性。
本節(jié)首先對檢測方法的性能瓶頸進行分析,以說明人名和住址識別任務(wù)在檢測框架中對性能的影響。針對正則匹配、字典匹配、中文分詞、詞性標(biāo)注、命名實體識別任務(wù)分別進行壓力測試。壓力測試通過不斷重復(fù)對同一個字符串的檢測以保證對應(yīng)任務(wù)一直處于執(zhí)行狀態(tài)。測試環(huán)境的軟硬件信息如表5所示。
表5 性能測試環(huán)境軟硬件信息
表6展示了這些任務(wù)在單線程下每秒鐘處理的字符數(shù)量以及用于測試的字符串詳情。其中,對詞性標(biāo)注、命名實體識別的速度計算不包含前驅(qū)任務(wù)的時間開銷;輸出字典匹配應(yīng)用了雙數(shù)組前綴樹。表6顯示,對于檢測框架而言,對人名和家庭住址的識別成為了性能瓶頸。這是因為兩者均需要完成中文分詞、詞性標(biāo)注和命名實體識別三項任務(wù)??紤]到命名實體識別的完整流程應(yīng)用到了前兩者,因此對于人名和家庭住址而言,最優(yōu)識別效率僅能達到8.2萬字每秒。這解釋了算法1中先完成模式匹配,后執(zhí)行人名和住址識別的流程。
表6 不同任務(wù)壓力測試結(jié)果及測試字符串詳情
為了對檢測框架的性能做完整分析,本文應(yīng)用了上文提到的THUCNews數(shù)據(jù)集。該數(shù)據(jù)集中共分為14個主題,各主題下新聞數(shù)據(jù)集大小范圍是8 MB到380 MB之間,且文本內(nèi)容復(fù)雜多樣。表7展示了其中5個不同大小數(shù)據(jù)集的平均檢測流程耗時情況。該檢測任務(wù)運行在多線程環(huán)境下,線程數(shù)量與內(nèi)核的數(shù)量保持一致。表7中的運行時間不包含感知機模型初始化、生成可視化報告的時間,由于這部分任務(wù)在整個檢測流程中只執(zhí)行一次,因此不進行專門的性能評估。
表7 THUCNews部分?jǐn)?shù)據(jù)集詳情及平均檢測耗時
實驗結(jié)果展示,個人信息檢測框架在新聞數(shù)據(jù)集中達到較高的檢測性能。與在文本中進行人名、地名和機構(gòu)名標(biāo)記的命名實體識別任務(wù)相比,個人信息識別的效率顯著增高。
為說明算法1的優(yōu)化效果,本文基于這14個數(shù)據(jù)集進行了一組對比實驗。對照組為不經(jīng)過檢測結(jié)果過濾,直接對全文執(zhí)行命名實體識別的檢測流程。兩組實驗皆在多線程模式下完成,檢測耗時隨文件大小的變化如圖2所示。圖中的Alg1為算法1,NER為對照組方法。圖2顯示算法1的檢測耗時隨文件大小的變化趨勢接近于線性增長。隨著文件大小的變化,算法1的性能優(yōu)化效果更為明顯。利用計算提升倍數(shù)依據(jù)的公式:
可以得到對比在全文中執(zhí)行命名實體識別任務(wù),檢測框架的平均性能提升11.18倍。對這14個文件進行多組實驗下得到的平均檢測耗時進行統(tǒng)計,得到檢測框架在多線程環(huán)境下的平均處理效率為每秒8.26 MB。
圖2 算法1與對照組檢測耗時隨文件大小的變化
本文從在線社交平臺天涯論壇上抓取了約5 000條用戶發(fā)布的帖子,涉及版面為“百姓聲音”(日期范圍20191016-20191205)和“公益同行”(日期范圍20190625-20191203),大小為10 MB。利用本文設(shè)計并實現(xiàn)的框架對數(shù)據(jù)集進行檢測,生成的檢測報告可視化示例如圖3、圖4所示。為保護信息主體的隱私,在截圖中不對具體的文本數(shù)據(jù)進行展示。
圖3 報告示例:隱私信息所占行數(shù)比例
圖4 報告示例:個人信息數(shù)量
在人工收集的這份天涯論壇數(shù)據(jù)中,有635條數(shù)據(jù)檢測到了個人信息,其中不乏一些敏感信息如身份證號碼、家庭住址、銀行卡號。這些信息由于公開存在于互聯(lián)網(wǎng)環(huán)境中,一旦被第三方收集并進行二次傳播,將有可能對個人信息主體帶來一定的安全威脅,并給第三方數(shù)據(jù)持有者帶來法律風(fēng)險?;ヂ?lián)網(wǎng)上真實數(shù)據(jù)的檢測結(jié)果可以證明,本框架能有效從自然文本中識別多種類型的個人信息;對于數(shù)據(jù)持有者而言,有必要利用本文提出的個人信息檢測框架對他們收集的數(shù)據(jù)進行掃描。
近幾年國內(nèi)外頒布的隱私保護相關(guān)的法律法規(guī)明確規(guī)范了個人信息在收集、應(yīng)用、存儲、轉(zhuǎn)移等多個階段應(yīng)當(dāng)滿足的要求。為了保證數(shù)據(jù)的安全性和合規(guī)性,本文基于這些法律法規(guī)確定個人信息的具體類別,并提出一種個人信息檢測框架,用于在中文文本中進行隱私信息的自動化識別。本文介紹了一種識別家庭住址的方法,有效解決地址格式復(fù)雜多樣的問題。在尋人啟事數(shù)據(jù)集、THUCNews,以及天涯論壇數(shù)據(jù)集上證明了檢測框架的可行性。除此之外,本文提出的檢測工具能高效地對數(shù)據(jù)集進行檢測,在THUCNews的新聞數(shù)據(jù)集中進行檢測的平均速度達到每秒8.26 MB。在后續(xù)的研究中,本文將擴展個人信息涵蓋的范圍,將一些依賴語義的信息如薪資、學(xué)歷等信息添加進來,以豐富個人信息檢測框架的功能。