賈昊陽(yáng) 盛毅敏 阮雯強(qiáng) 韓偉力
(復(fù)旦大學(xué)軟件學(xué)院 上海 201203)
大數(shù)據(jù)技術(shù)的發(fā)展伴隨著隱私問(wèn)題的產(chǎn)生。隨著數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)處理技術(shù)的不斷發(fā)展,越來(lái)越多互聯(lián)網(wǎng)用戶(hù)的隱私信息被收集并用于商業(yè)服務(wù)或者科學(xué)研究[1-2]。由于隱私信息的泄露可能會(huì)造成詐騙、人身攻擊、歧視等多種危害[3],因此對(duì)此類(lèi)數(shù)據(jù)的處理過(guò)程受到了嚴(yán)格的法律法規(guī)約束。近幾年,不同國(guó)家和組織相繼出臺(tái)了一系列大數(shù)據(jù)環(huán)境下隱私數(shù)據(jù)保護(hù)的法律法規(guī),如歐盟在2018年5月實(shí)施的《通用數(shù)據(jù)保護(hù)條例》(General Data Protection Regulation, GDPR)[4]。中國(guó)自2016年起相繼頒布和實(shí)施了《網(wǎng)絡(luò)安全法》和《信息安全技術(shù):個(gè)人信息安全規(guī)范》,并在2019年公布了《個(gè)人信息保護(hù)法》的專(zhuān)家建議稿。這些法律法規(guī)通過(guò)嚴(yán)格規(guī)范數(shù)據(jù)持有者收集、應(yīng)用、存儲(chǔ)和轉(zhuǎn)移數(shù)據(jù)的過(guò)程來(lái)保障個(gè)人信息主體的權(quán)益以及隱私信息的安全。
隱私保護(hù)法律的實(shí)施為數(shù)據(jù)持有者帶來(lái)了法律風(fēng)險(xiǎn)。例如,2019年美國(guó)監(jiān)管機(jī)構(gòu)因Facebook涉嫌與第三方組織共享用戶(hù)數(shù)據(jù)而對(duì)其罰款50億美元;英國(guó)航空公司因?yàn)楸缓诳徒M織攻擊泄露客戶(hù)數(shù)據(jù)而受到約2.3億美元的罰款。為了規(guī)避或減少此類(lèi)風(fēng)險(xiǎn)的產(chǎn)生,數(shù)據(jù)持有者有必要確定他們的數(shù)據(jù)集中是否存在個(gè)人信息,存在何種類(lèi)別與量級(jí)的個(gè)人信息,從而制定有效的數(shù)據(jù)保護(hù)措施。
然而,當(dāng)前尚缺有效工具支持檢測(cè)中文數(shù)據(jù)集中的個(gè)人信息。特別是對(duì)于文本數(shù)據(jù)而言,由于其內(nèi)容復(fù)雜,信息量大,具有很高的不確定性。同時(shí)由于個(gè)人信息的種類(lèi)繁多,格式各不相同,因此雖然針對(duì)某一類(lèi)個(gè)人信息的識(shí)別算法易于實(shí)現(xiàn),但缺少一個(gè)統(tǒng)一的框架以支持從文本中檢測(cè)多種類(lèi)別的個(gè)人信息。
為了解決上述問(wèn)題,本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)個(gè)人信息的自動(dòng)化檢測(cè)框架。首先,本文參考國(guó)內(nèi)外法律關(guān)于個(gè)人信息的定義,明確了13種個(gè)人信息的具體類(lèi)別,即框架需要在文本中檢測(cè)的目標(biāo)數(shù)據(jù)。然后,本文結(jié)合模式匹配與自然語(yǔ)言處理技術(shù)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)高效的個(gè)人信息自動(dòng)化檢測(cè)框架。除此之外,為了解決家庭住址格式復(fù)雜、識(shí)別困難的問(wèn)題,本文提出一種新的家庭住址檢測(cè)方法。
在工業(yè)界領(lǐng)域,Google提供了一種名為Cloud Data Loss Prevention (Cloud DLP)的隱私信息檢測(cè)工具[5]。該工具支持從數(shù)據(jù)中檢測(cè)117種個(gè)人信息及敏感信息,其中包含31個(gè)國(guó)家的公民身份識(shí)別信息。然而,對(duì)于識(shí)別中文數(shù)據(jù)里的個(gè)人信息,Cloud DLP存在以下兩個(gè)問(wèn)題:(1) 不支持檢測(cè)中國(guó)公民的電話(huà)號(hào)碼、生日、家庭住址等常見(jiàn)類(lèi)別的個(gè)人信息;(2) 只支持訪(fǎng)問(wèn)服務(wù)端API,對(duì)每分鐘請(qǐng)求數(shù)的上限(600次)和單次請(qǐng)求規(guī)模上限(0.5 MB)存在嚴(yán)格約束,這導(dǎo)致在檢測(cè)大規(guī)模數(shù)據(jù)集時(shí)性能受到影響。
在科研領(lǐng)域,對(duì)個(gè)人信息的檢測(cè)研究集中在醫(yī)療數(shù)據(jù)安全。醫(yī)療數(shù)據(jù)如病歷中包含大量病人的基本信息和健康信息,這些數(shù)據(jù)雖然存在很大的研究?jī)r(jià)值,卻因?yàn)樯婕笆置舾械膫€(gè)人隱私而被約束使用。為了促進(jìn)醫(yī)療研究進(jìn)步,保障醫(yī)療數(shù)據(jù)的安全共享,美國(guó)的HIPAA法案組織定義了“受保護(hù)健康信息”(Protected Health Information,PHI)[6],并規(guī)定在對(duì)這類(lèi)數(shù)據(jù)進(jìn)行收集和處理時(shí)需要嚴(yán)格遵守法案規(guī)定。為了在格式多樣化的醫(yī)療數(shù)據(jù)集中進(jìn)行PHI的檢測(cè),研究者們主要應(yīng)用了以下幾種方法:
(1) 模式匹配。利用正則表達(dá)式、詞典匹配、句法結(jié)構(gòu)等來(lái)提取信息[7-8]。這種方法易于實(shí)現(xiàn),可以得到比較高的準(zhǔn)確率和召回率,但是它需要隨著時(shí)間不斷更新規(guī)則和詞典的內(nèi)容來(lái)滿(mǎn)足新的數(shù)據(jù)格式要求。除此之外,模式匹配會(huì)忽略上下文的作用,因此可能存在誤報(bào)(滿(mǎn)足格式但不滿(mǎn)足語(yǔ)義)和漏報(bào)(匹配規(guī)則不夠完備)的情況。
(2) 機(jī)器學(xué)習(xí)。傳統(tǒng)機(jī)器學(xué)習(xí)方法,如支持向量機(jī)(SVM)[9]、條件隨機(jī)場(chǎng)(CRF)[10]等模型通過(guò)從數(shù)據(jù)中提取特征進(jìn)行訓(xùn)練來(lái)決定一個(gè)字段是否是PHI。這些特征包含字段的大小寫(xiě),是否出現(xiàn)在預(yù)定義的詞典中,在文本中的位置等。這種方法的效果受到特征完備性的影響,因此需要大量工作來(lái)確定使用的特征類(lèi)別。深度學(xué)習(xí),如循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)則從標(biāo)注的數(shù)據(jù)集中自動(dòng)提取特征[11-12]。這些方法利用“詞向量”的概念,將數(shù)據(jù)中的單詞映射成空間中的向量,從而提取一些人工不一定能識(shí)別的特征。以上提到的機(jī)器學(xué)習(xí)算法存在一個(gè)共有的問(wèn)題是,它們的訓(xùn)練基于小規(guī)模的醫(yī)療標(biāo)記數(shù)據(jù)完成,用于完成指定格式的醫(yī)療數(shù)據(jù)檢測(cè)任務(wù),因此不適用于在格式復(fù)雜、內(nèi)容多樣的自然文本中識(shí)別個(gè)人信息。
本節(jié)通過(guò)比較國(guó)內(nèi)外法律法規(guī)中對(duì)于個(gè)人信息的定義,確定待檢測(cè)的個(gè)人信息具體類(lèi)別。在本節(jié)參考的法律法規(guī)有中國(guó)的《網(wǎng)絡(luò)安全法》《信息安全技術(shù):個(gè)人信息安全規(guī)范》,歐盟的《GDPR》,以及美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所NIST提供的指導(dǎo)標(biāo)準(zhǔn)《SP 800-122》[13]和上文提到的HIPAA法案。
國(guó)內(nèi)外的法律法規(guī)在定義個(gè)人信息時(shí)存在兩種不同方式:一種用抽象的描述,將任何用來(lái)識(shí)別個(gè)人身份的信息都定義為個(gè)人信息(如《GDPR》);另一種則是用精確的枚舉,將可能是個(gè)人信息的類(lèi)別用列表展示 (如《SP 800-122》)。前者更為嚴(yán)苛,因?yàn)樗鼈兊姆秶謴V泛,任何與人相關(guān)的數(shù)據(jù),包括興趣愛(ài)好等都可能被視為個(gè)人信息。而后者更方便數(shù)據(jù)持有者們通過(guò)某些措施以達(dá)到遵守法律規(guī)定的目的,只需要將法律中明確枚舉的個(gè)人信息類(lèi)別加以保護(hù),就能減少違反法律的風(fēng)險(xiǎn)。
本文主要參考第二種形式的法律規(guī)定確定個(gè)人信息類(lèi)別。這些法律法規(guī)提供了個(gè)人信息的詳細(xì)列表,包括《信息安全技術(shù):個(gè)人信息安全規(guī)范》中的“個(gè)人信息示例”,《SP 800-122》定義的 “個(gè)人可識(shí)別信息”和HIPAA法案定義的“受保護(hù)健康信息”。以上三個(gè)列表在枚舉個(gè)人信息時(shí)都存在特有類(lèi)別,例如“個(gè)人信息示例”中的性別、民族、國(guó)籍等;“受保護(hù)健康信息”中的醫(yī)療記錄編號(hào)、健康保險(xiǎn)受益人編號(hào),以及統(tǒng)一資源定位符;“個(gè)人可識(shí)別信息”中的出生地、昵稱(chēng)。本文取這三個(gè)列表的交集,將其視為最基本的個(gè)人信息類(lèi)別。除掉不存在于文本中的基于圖像或基因序列的生物識(shí)別信息,最終得到以下13類(lèi)個(gè)人信息作為檢測(cè)目標(biāo):姓名、生日、家庭住址、電話(huà)號(hào)碼(包括手機(jī)和固定電話(huà))、電子郵箱、身份證號(hào)碼、駕駛證號(hào)碼(等同于身份證號(hào)碼)、護(hù)照號(hào)碼、IP地址、銀行卡號(hào)(包括信用卡和借記卡)、車(chē)牌號(hào)。這些信息能夠直接或間接識(shí)別到個(gè)體,并且在國(guó)內(nèi)外的法律中均被強(qiáng)調(diào)。對(duì)于像性別、民族、國(guó)籍這類(lèi)的個(gè)人信息,由于其具有相同屬性的群體數(shù)量較為龐大,可識(shí)別性低,因此不將其納入檢測(cè)范圍。
本節(jié)將介紹個(gè)人信息的檢測(cè)框架??蚣馨〝?shù)據(jù)預(yù)處理、個(gè)人信息識(shí)別、以及數(shù)據(jù)可視化三個(gè)模塊,同時(shí)框架提供知識(shí)庫(kù)和算法庫(kù),用于支持個(gè)人信息識(shí)別模塊的執(zhí)行。并且,本節(jié)將對(duì)個(gè)人信息識(shí)別流程進(jìn)行詳細(xì)介紹,展開(kāi)說(shuō)明家庭住址的識(shí)別算法。
個(gè)人信息的檢測(cè)框架如圖1所示。該框架的輸入是包含文本數(shù)據(jù)的文件,輸出是經(jīng)過(guò)可視化的檢測(cè)報(bào)告文件,報(bào)告中包含:個(gè)人信息所在文本、定位、各類(lèi)型個(gè)人信息數(shù)量等??蚣芄卜譃橐韵氯齻€(gè)模塊:

圖1 個(gè)人信息檢測(cè)框架介紹
(1) 數(shù)據(jù)預(yù)處理。預(yù)處理用于統(tǒng)一輸入數(shù)據(jù)的格式,對(duì)于pdf、xlsx等文件類(lèi)型,應(yīng)用特殊的格式解析工具提取文本。解析得到的文本數(shù)據(jù)將通過(guò)數(shù)據(jù)清洗步驟過(guò)濾非法表情字符、替換繁體字為簡(jiǎn)體字,全角字符為半角字符,提高格式統(tǒng)一性,降低臟數(shù)據(jù)對(duì)檢測(cè)的影響。數(shù)據(jù)切分則將文本劃成獨(dú)立分區(qū),以便應(yīng)用于多線(xiàn)程檢測(cè)。
(2) 個(gè)人信息識(shí)別。該模塊應(yīng)用自然語(yǔ)言處理模型檢測(cè)人名與住址,應(yīng)用模式匹配算法識(shí)別由數(shù)字、字母和符號(hào)構(gòu)成的其他個(gè)人信息。該模塊同時(shí)提供個(gè)人信息的上下文詞典對(duì)識(shí)別結(jié)果進(jìn)行篩選,從而提高檢測(cè)精確性。自然語(yǔ)言處理模型包括中文分詞、詞性標(biāo)注和命名實(shí)體識(shí)別,三者依照其順序,下一階段的輸入依賴(lài)于上一階段的輸出;模式匹配算法包括正則匹配、詞典匹配、數(shù)字校驗(yàn)。
(3) 數(shù)據(jù)可視化??梢暬瘜⒏袷交臋z測(cè)結(jié)果以圖文形式寫(xiě)入檢測(cè)報(bào)告中。圖片用于展示個(gè)人信息類(lèi)別及其對(duì)應(yīng)數(shù)量、隱私信息所占比例等統(tǒng)計(jì)數(shù)據(jù)。對(duì)于檢測(cè)到個(gè)人信息的文本,可視化模塊將會(huì)以形如“的電話(huà)是
在該框架中,知識(shí)庫(kù)用于存儲(chǔ)格式有限的個(gè)人信息的通用正則表達(dá)式、特定前綴詞典(如身份證號(hào)的前綴表示行政區(qū)劃代碼)、上下文詞典,以及自然語(yǔ)言處理模型。這些知識(shí)來(lái)源于預(yù)先制定的數(shù)據(jù)格式規(guī)則、收集的詞典列表、以及訓(xùn)練的模型。算法庫(kù)則基于知識(shí)庫(kù)提供高效的算法來(lái)執(zhí)行匹配流程,例如應(yīng)用雙數(shù)組前綴樹(shù)完成前綴和上下文的詞典匹配。
檢測(cè)首先執(zhí)行模式匹配,在此基礎(chǔ)上再執(zhí)行中文分詞、詞性標(biāo)注和命名實(shí)體識(shí)別。對(duì)于一段文本而言,首先應(yīng)用模式匹配檢測(cè)除人名和住址之外的11類(lèi)個(gè)人信息,當(dāng)且僅當(dāng)檢測(cè)結(jié)果不為空,或者文本中出現(xiàn)預(yù)定義的家庭住址上下文時(shí),才會(huì)對(duì)當(dāng)前文本執(zhí)行中文分詞、詞性標(biāo)注和命名實(shí)體識(shí)別這一系列流程。之所以判斷檢測(cè)結(jié)果是否為空,是考慮到一段文本中如果只出現(xiàn)人名這一種個(gè)人信息,其敏感性遠(yuǎn)低于人名和其他類(lèi)型的個(gè)人信息一同出現(xiàn),因此當(dāng)文本只包含人名時(shí),不將其涵蓋在檢測(cè)范圍中;而優(yōu)先進(jìn)行住址上下文匹配,是因?yàn)樯舷挛臋z測(cè)是住址識(shí)別的必要過(guò)程。應(yīng)用上述檢測(cè)流程的主要目的是減少需要執(zhí)行人名和住址識(shí)別任務(wù)的文本數(shù)量,提升檢測(cè)性能。
對(duì)于應(yīng)用模式匹配的個(gè)人信息,其檢測(cè)流程如算法1所示。算法首先基于預(yù)先定義的格式要求和數(shù)字校驗(yàn)對(duì)文本進(jìn)行匹配,再結(jié)合前綴詞典對(duì)可能是個(gè)人信息的對(duì)象做內(nèi)容匹配。除此之外,算法1在模式匹配的基礎(chǔ)上充分應(yīng)用了上下文匹配??紤]到部分個(gè)人信息的格式容易誤匹配其他類(lèi)型的數(shù)據(jù),因此利用上下文來(lái)過(guò)濾滿(mǎn)足格式但不滿(mǎn)足語(yǔ)義的匹配結(jié)果,減少誤報(bào)。同時(shí)算法1將滿(mǎn)足上下文但不匹配詞典的個(gè)人信息前綴在詞典中更新,以自動(dòng)地對(duì)前綴詞典進(jìn)行維護(hù),降低漏報(bào)的可能性。
算法1個(gè)人信息檢測(cè)流程
輸入:一段文本e;某類(lèi)個(gè)人信息Pi包含的正則表達(dá)式ri,校驗(yàn)算法fi,詞典di以及上下文詞典ci;上下文取詞窗口,默認(rèn)為左右各取8。
輸出:個(gè)人信息列表W。列表中的每一個(gè)元素包括個(gè)人信息的類(lèi)別、內(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
不同的個(gè)人信息由于其格式特點(diǎn),在檢測(cè)過(guò)程中應(yīng)用的匹配方法也不盡相同。例如,對(duì)郵箱的識(shí)別只需要正則匹配,而對(duì)銀行卡號(hào)的識(shí)別則需要進(jìn)行正則匹配、前綴匹配、Luhn校驗(yàn)和上下文匹配四個(gè)步驟。表1展示了11類(lèi)個(gè)人信息的格式特點(diǎn)。所有的正則表達(dá)式均基于格式特征進(jìn)行設(shè)計(jì)。表2中展示了需要應(yīng)用前綴詞典和上下文匹配的個(gè)人信息,并列舉前綴詞典的來(lái)源,上下文內(nèi)容。在表2中,部分個(gè)人信息只需要在正則匹配的基礎(chǔ)上,依賴(lài)詞典或上下文匹配中的一種方法即可完成檢測(cè),例如護(hù)照識(shí)別不存在可以應(yīng)用的有效詞典,因此僅使用上下文完成匹配。

表1 個(gè)人信息格式特征

表2 個(gè)人信息檢測(cè)的前綴詞典及上下文
家庭住址不同于人名,后者可以通過(guò)現(xiàn)有的命名實(shí)體識(shí)別模型完成檢測(cè),而家庭住址存在格式多樣、與語(yǔ)義關(guān)聯(lián)性強(qiáng)的問(wèn)題。本文針對(duì)家庭住址的格式特征訓(xùn)練了一個(gè)支持檢測(cè)復(fù)雜地址的命名實(shí)體識(shí)別模型。對(duì)于家庭住址與語(yǔ)義關(guān)聯(lián)性強(qiáng)的問(wèn)題,則通過(guò)枚舉上下文詞典與規(guī)則對(duì)模型識(shí)別出的復(fù)雜地址進(jìn)行過(guò)濾。
本文的命名實(shí)體識(shí)別模型利用開(kāi)源自然語(yǔ)言處理工具集HanLP提供的感知機(jī)訓(xùn)練框架完成。該工具集基于結(jié)構(gòu)化感知機(jī)[14]實(shí)現(xiàn)了一個(gè)同時(shí)完成中文分詞、詞性標(biāo)注和命名實(shí)體識(shí)別三項(xiàng)任務(wù)的完整自然語(yǔ)言處理框架,并支持在線(xiàn)學(xué)習(xí),增量更新模型參數(shù)。對(duì)于命名實(shí)體識(shí)別而言,中文分詞與詞性標(biāo)注是前提。由于HanLP提供的感知機(jī)算法框架對(duì)于三項(xiàng)任務(wù)分別提供了模型訓(xùn)練、加載與存儲(chǔ)的接口,因此本文僅對(duì)支持檢測(cè)復(fù)雜格式地址的命名實(shí)體識(shí)別模型進(jìn)行訓(xùn)練,而對(duì)于中文分詞和詞性標(biāo)注任務(wù)則直接應(yīng)用了HanLP在大規(guī)模中文語(yǔ)料庫(kù)下預(yù)先訓(xùn)練好的模型。
對(duì)家庭住址上下文中可能出現(xiàn)的關(guān)鍵詞語(yǔ)進(jìn)行統(tǒng)計(jì),并根據(jù)這些關(guān)鍵詞與地址之間的關(guān)系對(duì)地址位置進(jìn)行約束,得到表3。窗口大小用于約束目標(biāo)地址在上下文中取字符的數(shù)量。在不限上下文的情況下,窗口大小為左右各取8。在這些關(guān)鍵詞中,“+”用于表示關(guān)鍵詞必須按順序以組合形式出現(xiàn),但不一定相連?!啊庇糜诩s束地址位置,不需要考慮上下文窗口大小。

表3 家庭住址上下文關(guān)鍵詞列表
基于訓(xùn)練的感知機(jī)模型和預(yù)定義的上下文,對(duì)一段文本進(jìn)行家庭住址識(shí)別的流程如算法2所示。算法2對(duì)命名實(shí)體識(shí)別模型的檢測(cè)結(jié)果進(jìn)行了過(guò)濾。首先篩選標(biāo)記為“ns”即地址的實(shí)體;當(dāng)且僅當(dāng)其識(shí)別到的地址是組合詞組(isCompound方法判斷當(dāng)前識(shí)別出的詞是否為由多個(gè)字詞組合而成的詞組,例如“[上海市 人民大道 200 號(hào)]”是由四個(gè)字詞組成的詞組),且組合詞組的元素組成數(shù)量大于等于3時(shí),該地址為復(fù)雜地址。上下文取詞方法會(huì)依據(jù)窗口大小將上下文按順序排列,通過(guò)匹配上下文與詞典,即可確定識(shí)別的復(fù)雜地址是否為家庭住址。對(duì)人名的識(shí)別則直接利用了命名實(shí)體識(shí)別模型的結(jié)果,當(dāng)識(shí)別到標(biāo)簽為“nr”的item時(shí),即識(shí)別到人名。
算法2家庭住址識(shí)別算法
輸入:一段文本e;訓(xùn)練的感知機(jī)模型recognizer;家庭住址上文詞典cpre及窗口大小PRE_SIZE,下文詞典csuf及窗口大小SUF_SIZE,不限位置的詞典c與窗口大小SIZE;上下文匹配規(guī)則r。
輸出:文本中識(shí)別到的家庭住址列表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é)對(duì)個(gè)人信息檢測(cè)框架的效能進(jìn)行實(shí)驗(yàn)分析。首先介紹用于訓(xùn)練復(fù)雜地址識(shí)別模型的語(yǔ)料庫(kù)的準(zhǔn)備流程;接著基于用戶(hù)發(fā)布的在線(xiàn)社交平臺(tái)數(shù)據(jù)分析復(fù)雜地址檢測(cè)的精確性;然后利用大規(guī)模的公開(kāi)文本數(shù)據(jù)分析檢測(cè)方法的時(shí)間開(kāi)銷(xiāo);最后基于對(duì)實(shí)際數(shù)據(jù)的檢測(cè)結(jié)果,對(duì)框架生成的報(bào)告進(jìn)行展示說(shuō)明。
為生成包含復(fù)雜地址的語(yǔ)料庫(kù),具體流程如下:
(1) 收集新聞數(shù)據(jù)并自動(dòng)標(biāo)注。新聞抓取自新浪門(mén)戶(hù)網(wǎng)站下的地方新聞,這些新聞?dòng)涊d國(guó)內(nèi)不同地區(qū)的事件,地址信息豐富。新聞發(fā)表日期在2014年至2018年間,共收集2 198萬(wàn)字。利用上文提到的HanLP分詞與詞性標(biāo)注模型對(duì)該數(shù)據(jù)集進(jìn)行標(biāo)注,標(biāo)注格式滿(mǎn)足2014年人民日?qǐng)?bào)語(yǔ)料標(biāo)注格式要求。
(2) 收集復(fù)雜地址并統(tǒng)計(jì)其格式。在由政府機(jī)構(gòu)發(fā)布的開(kāi)放數(shù)據(jù)集中收集具有復(fù)雜格式的公司或服務(wù)機(jī)構(gòu)地址,這些地址包含市區(qū)、道路名、門(mén)牌號(hào)信息,部分包含更細(xì)粒度的樓層、室號(hào)。篩選具有明確位置信息的地址列表并對(duì)其進(jìn)行分詞和詞性標(biāo)注,統(tǒng)計(jì)地址格式。例如,“上海市黃浦區(qū)人民大道200號(hào)”在HanLP的詞性標(biāo)注模型下得到的結(jié)果為“上海市/ns黃浦區(qū)/ns 人民大道/ns 200/m 號(hào)/q”,其中“ns”為地名,“n”為名詞,“m”為數(shù)量,“q”為量詞;因此該地址的格式為“ns,ns,ns,m,q”。在已有的格式集中,將前綴重復(fù)的地名(“ns”)或機(jī)構(gòu)名(“nt”)標(biāo)簽合并為一個(gè),作為復(fù)雜地址開(kāi)始標(biāo)志。本文在上海市公共數(shù)據(jù)開(kāi)放平臺(tái)上獲取有效地址35 387條,有效格式3 233條。
(3) 利用統(tǒng)計(jì)得到的格式集合對(duì)新聞數(shù)據(jù)集中的復(fù)雜地址進(jìn)行自動(dòng)化標(biāo)注。對(duì)于一段已經(jīng)完成詞性標(biāo)注的新聞,首先匹配地址的起始位置(即“ns”或“nt”),然后將與其連接的重復(fù)標(biāo)簽合并,再基于地址格式集進(jìn)行最長(zhǎng)模式匹配,將匹配到的字符串用“[]”包圍,并在末尾添加“/ns”以表示這是一個(gè)復(fù)合地址。循環(huán)該操作直到文本的末尾。
(4) 人工修正誤報(bào)數(shù)據(jù)。對(duì)標(biāo)記過(guò)的復(fù)雜地址詞組利用人工檢驗(yàn)的方式對(duì)其中的誤報(bào)地址進(jìn)行修正,主要包括刪除不是地址的詞組;修改地址終止字符位置,以過(guò)濾將地址和下文信息一同標(biāo)記為復(fù)雜地址的情況。
除了上述自定義語(yǔ)料庫(kù)之外,同時(shí)用于訓(xùn)練的還有人民日?qǐng)?bào)1998年1月份的開(kāi)源語(yǔ)料庫(kù)與微軟命名實(shí)體識(shí)別語(yǔ)料庫(kù)。后兩者基于2014年人民日?qǐng)?bào)語(yǔ)料格式進(jìn)行了轉(zhuǎn)換。新聞數(shù)據(jù)集的作用是輔助模型提取復(fù)雜地址的上下文特征,同時(shí)復(fù)雜地址的復(fù)合格式輔助統(tǒng)計(jì)復(fù)雜地址內(nèi)部特征。而微軟語(yǔ)料庫(kù)和人民日?qǐng)?bào)語(yǔ)料庫(kù)則用于平衡語(yǔ)料中不同類(lèi)型實(shí)體的數(shù)量。
用于驗(yàn)證復(fù)雜地址識(shí)別精確性的數(shù)據(jù)來(lái)自頭條新聞提供的在線(xiàn)尋人啟事,這些尋人啟事中包含大量走失者的籍貫和走失地信息。利用網(wǎng)絡(luò)爬蟲(chóng)隨機(jī)抓取2 000條尋人啟事,并人工對(duì)其中的復(fù)雜地址進(jìn)行了標(biāo)注。標(biāo)記復(fù)雜地址的依據(jù)是判斷地址詳情是否小于“村”或“區(qū)”的范圍。將該數(shù)據(jù)作為驗(yàn)證集,并與檢測(cè)框架得到的結(jié)果進(jìn)行對(duì)比。利用準(zhǔn)確率 (Precision)、召回率 (Recall)、F1值 (F1-score)三個(gè)指標(biāo)對(duì)結(jié)果進(jìn)行評(píng)估,得到表4。表4顯示復(fù)雜地址的識(shí)別達(dá)到了較高的準(zhǔn)確率。在該實(shí)驗(yàn)中,任何與標(biāo)注數(shù)據(jù)不匹配的檢測(cè)結(jié)果均被標(biāo)記為誤報(bào)和漏報(bào),在這種要求下,即使命名實(shí)體識(shí)別模型檢測(cè)到了標(biāo)記地址的子串,也被歸納到識(shí)別錯(cuò)誤的集合中。

表4 復(fù)雜地址在檢測(cè)框架下的結(jié)果
為了證明家庭住址識(shí)別的有效性,本文在一個(gè)大規(guī)模的開(kāi)源數(shù)據(jù)集THUCNews上進(jìn)行了驗(yàn)證。THUCNews為清華大學(xué)提供的開(kāi)源語(yǔ)料庫(kù),其中包含從新浪新聞上抓取的14個(gè)主題下的新聞報(bào)道。這份數(shù)據(jù)未經(jīng)過(guò)人工標(biāo)注,因此屬于從互聯(lián)網(wǎng)上公開(kāi)的原數(shù)據(jù)。通過(guò)使用家庭住址識(shí)別檢測(cè)算法,在該份語(yǔ)料庫(kù)中識(shí)別出家庭住址共22條。人工對(duì)這22條信息進(jìn)行驗(yàn)證,證明這些信息均為家庭住址,且源自新聞中對(duì)通緝或已抓捕的犯罪嫌疑人的信息曝光。對(duì)真實(shí)數(shù)據(jù)的檢測(cè)結(jié)果驗(yàn)證了家庭住址識(shí)別方法的有效性。
本節(jié)首先對(duì)檢測(cè)方法的性能瓶頸進(jìn)行分析,以說(shuō)明人名和住址識(shí)別任務(wù)在檢測(cè)框架中對(duì)性能的影響。針對(duì)正則匹配、字典匹配、中文分詞、詞性標(biāo)注、命名實(shí)體識(shí)別任務(wù)分別進(jìn)行壓力測(cè)試。壓力測(cè)試通過(guò)不斷重復(fù)對(duì)同一個(gè)字符串的檢測(cè)以保證對(duì)應(yīng)任務(wù)一直處于執(zhí)行狀態(tài)。測(cè)試環(huán)境的軟硬件信息如表5所示。

表5 性能測(cè)試環(huán)境軟硬件信息
表6展示了這些任務(wù)在單線(xiàn)程下每秒鐘處理的字符數(shù)量以及用于測(cè)試的字符串詳情。其中,對(duì)詞性標(biāo)注、命名實(shí)體識(shí)別的速度計(jì)算不包含前驅(qū)任務(wù)的時(shí)間開(kāi)銷(xiāo);輸出字典匹配應(yīng)用了雙數(shù)組前綴樹(shù)。表6顯示,對(duì)于檢測(cè)框架而言,對(duì)人名和家庭住址的識(shí)別成為了性能瓶頸。這是因?yàn)閮烧呔枰瓿芍形姆衷~、詞性標(biāo)注和命名實(shí)體識(shí)別三項(xiàng)任務(wù)??紤]到命名實(shí)體識(shí)別的完整流程應(yīng)用到了前兩者,因此對(duì)于人名和家庭住址而言,最優(yōu)識(shí)別效率僅能達(dá)到8.2萬(wàn)字每秒。這解釋了算法1中先完成模式匹配,后執(zhí)行人名和住址識(shí)別的流程。

表6 不同任務(wù)壓力測(cè)試結(jié)果及測(cè)試字符串詳情
為了對(duì)檢測(cè)框架的性能做完整分析,本文應(yīng)用了上文提到的THUCNews數(shù)據(jù)集。該數(shù)據(jù)集中共分為14個(gè)主題,各主題下新聞數(shù)據(jù)集大小范圍是8 MB到380 MB之間,且文本內(nèi)容復(fù)雜多樣。表7展示了其中5個(gè)不同大小數(shù)據(jù)集的平均檢測(cè)流程耗時(shí)情況。該檢測(cè)任務(wù)運(yùn)行在多線(xiàn)程環(huán)境下,線(xiàn)程數(shù)量與內(nèi)核的數(shù)量保持一致。表7中的運(yùn)行時(shí)間不包含感知機(jī)模型初始化、生成可視化報(bào)告的時(shí)間,由于這部分任務(wù)在整個(gè)檢測(cè)流程中只執(zhí)行一次,因此不進(jìn)行專(zhuān)門(mén)的性能評(píng)估。

表7 THUCNews部分?jǐn)?shù)據(jù)集詳情及平均檢測(cè)耗時(shí)
實(shí)驗(yàn)結(jié)果展示,個(gè)人信息檢測(cè)框架在新聞數(shù)據(jù)集中達(dá)到較高的檢測(cè)性能。與在文本中進(jìn)行人名、地名和機(jī)構(gòu)名標(biāo)記的命名實(shí)體識(shí)別任務(wù)相比,個(gè)人信息識(shí)別的效率顯著增高。
為說(shuō)明算法1的優(yōu)化效果,本文基于這14個(gè)數(shù)據(jù)集進(jìn)行了一組對(duì)比實(shí)驗(yàn)。對(duì)照組為不經(jīng)過(guò)檢測(cè)結(jié)果過(guò)濾,直接對(duì)全文執(zhí)行命名實(shí)體識(shí)別的檢測(cè)流程。兩組實(shí)驗(yàn)皆在多線(xiàn)程模式下完成,檢測(cè)耗時(shí)隨文件大小的變化如圖2所示。圖中的Alg1為算法1,NER為對(duì)照組方法。圖2顯示算法1的檢測(cè)耗時(shí)隨文件大小的變化趨勢(shì)接近于線(xiàn)性增長(zhǎng)。隨著文件大小的變化,算法1的性能優(yōu)化效果更為明顯。利用計(jì)算提升倍數(shù)依據(jù)的公式:
可以得到對(duì)比在全文中執(zhí)行命名實(shí)體識(shí)別任務(wù),檢測(cè)框架的平均性能提升11.18倍。對(duì)這14個(gè)文件進(jìn)行多組實(shí)驗(yàn)下得到的平均檢測(cè)耗時(shí)進(jìn)行統(tǒng)計(jì),得到檢測(cè)框架在多線(xiàn)程環(huán)境下的平均處理效率為每秒8.26 MB。

圖2 算法1與對(duì)照組檢測(cè)耗時(shí)隨文件大小的變化
本文從在線(xiàn)社交平臺(tái)天涯論壇上抓取了約5 000條用戶(hù)發(fā)布的帖子,涉及版面為“百姓聲音”(日期范圍20191016-20191205)和“公益同行”(日期范圍20190625-20191203),大小為10 MB。利用本文設(shè)計(jì)并實(shí)現(xiàn)的框架對(duì)數(shù)據(jù)集進(jìn)行檢測(cè),生成的檢測(cè)報(bào)告可視化示例如圖3、圖4所示。為保護(hù)信息主體的隱私,在截圖中不對(duì)具體的文本數(shù)據(jù)進(jìn)行展示。

圖3 報(bào)告示例:隱私信息所占行數(shù)比例

圖4 報(bào)告示例:個(gè)人信息數(shù)量
在人工收集的這份天涯論壇數(shù)據(jù)中,有635條數(shù)據(jù)檢測(cè)到了個(gè)人信息,其中不乏一些敏感信息如身份證號(hào)碼、家庭住址、銀行卡號(hào)。這些信息由于公開(kāi)存在于互聯(lián)網(wǎng)環(huán)境中,一旦被第三方收集并進(jìn)行二次傳播,將有可能對(duì)個(gè)人信息主體帶來(lái)一定的安全威脅,并給第三方數(shù)據(jù)持有者帶來(lái)法律風(fēng)險(xiǎn)。互聯(lián)網(wǎng)上真實(shí)數(shù)據(jù)的檢測(cè)結(jié)果可以證明,本框架能有效從自然文本中識(shí)別多種類(lèi)型的個(gè)人信息;對(duì)于數(shù)據(jù)持有者而言,有必要利用本文提出的個(gè)人信息檢測(cè)框架對(duì)他們收集的數(shù)據(jù)進(jìn)行掃描。
近幾年國(guó)內(nèi)外頒布的隱私保護(hù)相關(guān)的法律法規(guī)明確規(guī)范了個(gè)人信息在收集、應(yīng)用、存儲(chǔ)、轉(zhuǎn)移等多個(gè)階段應(yīng)當(dāng)滿(mǎn)足的要求。為了保證數(shù)據(jù)的安全性和合規(guī)性,本文基于這些法律法規(guī)確定個(gè)人信息的具體類(lèi)別,并提出一種個(gè)人信息檢測(cè)框架,用于在中文文本中進(jìn)行隱私信息的自動(dòng)化識(shí)別。本文介紹了一種識(shí)別家庭住址的方法,有效解決地址格式復(fù)雜多樣的問(wèn)題。在尋人啟事數(shù)據(jù)集、THUCNews,以及天涯論壇數(shù)據(jù)集上證明了檢測(cè)框架的可行性。除此之外,本文提出的檢測(cè)工具能高效地對(duì)數(shù)據(jù)集進(jìn)行檢測(cè),在THUCNews的新聞數(shù)據(jù)集中進(jìn)行檢測(cè)的平均速度達(dá)到每秒8.26 MB。在后續(xù)的研究中,本文將擴(kuò)展個(gè)人信息涵蓋的范圍,將一些依賴(lài)語(yǔ)義的信息如薪資、學(xué)歷等信息添加進(jìn)來(lái),以豐富個(gè)人信息檢測(cè)框架的功能。