王 波
(中金金融認證中心有限公司,上海 201210)
隨著信息網絡的發展,大量個人用戶及企業信息數據暴露在公眾的視野中,這也暴露出互聯網存在重大的安全隱患,為了保障數據的安全,如何對個人信息數據
進行分類保存是當下網絡安全研究中具有實際意義的領域。2014 年,Verma 等人提出使用機器學習的文本分類(垃圾郵件)調查方法對傳入的郵件進行分類,并刪除不需要的信件。2012 年,王超學等人[1]利用 K-Means 算法對訓練樣本集進行聚類,得到了改進后的加權 KNN 文本分類算法。2019 年,鄧曉衡等人[2]提出了一種基于詞義和詞頻的向量空間模型改進方法,明顯地提高了計算的效率和結果的準確性。
該文主要提出了一種基于K 近鄰分類的個人信息分類算法,運用該算法對移動端隱私文本文件進行分類學習,以提升提取個人信息數據的效率以及分類的準確性,通過該分類方法對移動應用隱私文本進行多元化分類,并研究移動應用收集個人信息的情況,這個階段的主要工作是對移動應用個人隱私文本進行分類、分析并給出可視化的結果。
根據《App 違法違規收集使用個人信息行為認定方法》的相關規定,網絡運營者收集、使用個人信息時應遵循合法、正當且必要的原則,公開收集、使用規則,明確收集、使用信息的目的、方式和范圍,還必須經過信息所有者的同意。筆者對從互聯網中依法收集的移動端應用的個人信息進行分類,將其分為8 類:位置信息、身份信息、財產信息、工作信息、交易信息、上網信息、教育信息以及車輛信息。
個人信息分類映射問題主要是對樣本進行分類處理后,將其映射到滿足特定需求的集合中的數據處理方法,建模流程如圖1 所示。其建模難點在于建立準備識別分類特征的映射規則。

圖1 分類映射建模模型
該文研究的個人信息數據的分類檢測是運用分類映射提取分詞和文件的特征值,最終將文本特征轉換為向量的形式。該研究采用的是K 鄰近算法分類方法,K 近鄰算法是模式識別領域非常著名的統計算法[3],K 近鄰分類算法也是最早應用于自動文本分類的機器學習算法之一,KNN 算法屬于無監督學習,與其他算法相比,它可以不通過訓練直接進行分類,對文本的適應性較強。該算法的基本思路如下:先將訓練文本集中的所有文本轉換為向量的形式,再將這些文本向量組成文本向量集儲存起來,當待分類文本到達時,計算這篇文本與訓練文本集中每個文本的相似度,將計算得到的值按降序排列,找出排在最前面的K 篇文本,然后根據該文本所屬的類別來判斷待分類文本所屬的類別。計算文本相似度的方法通常有歐氏距離、向量內積和夾角余弦,該文采用夾角余弦計算文本之間的相似度,如公式(1)所示。

式中:W1i和W2i分別為2 個文本向量d1和d2中的第i個特征項的權重值。
得到的余弦值越大說明2 個文本的相似度越高,2 個向量所代表的文本就越可能屬于同一個類別。反之,2 個向量所代表的文本屬于同一個類別的可能性就越小。根據該文本對待分類文本進行歸類的方法如下:K 篇文本與待分類文本的相似度如公式(2)所示,對屬于同一個類的文本的相似度進行求和,然后對每個類所求的和進行排序,將待分類文本分到相似度之和比較大的那個類中。

式中:k為選取的文本數;Tj(di)為文本di是否屬于Cj類,如果屬于,則值為1,否則值為0
一般來說,當獲取到移動應用的隱私文本后,對隱私文本信息進行文本預處理后,再對長句子進行劃分,提取特征詞,通過停用詞減少無用詞匯對最終分類結果的影響。用簡單的特征向量來表示每個文本的數據,便于對數據進行分類計算。該文先對訓練集進行特征提取,再將測試集中的文本數據放入訓練集得到的向量空間中,確保訓練集和測試集的一致性。該文對這類挖掘推理采用機器學習的方式使其自動化地對個人數據進行分類,采用構造分類器對個人信息進行處理,提升分類效率,具體流程如圖2 所示。

圖2 基于K 鄰近分類的處理流程
1.2.1 個人信息文本分類預處理
個人信息文本預處理是文本分類的起點,對之后的實驗結果有較大的影響,因此必須保證該階段的質量,才能保證得到質量較高的文本分類數據。同時,也能提高文本分類的效率。在預處理階段,需要對文本信息進行刪除噪聲和分詞處理。
該文利用Python 軟件進行編程,過濾掉雜亂無章的非中文字符,得到純文本信息。英文文本中的單詞與單詞之間是通過空格將其隔開的,與英文文本不同,中文文本的字與詞、字與字之間是沒有空格將其分隔開的,因此要將中文文本按照設定好的分詞算法分成以詞語為最小單位文本,用空格分隔符對文本內容進行分隔,只有這樣才能在基于單詞的基礎上用結構化的形式展示文檔。
1.2.1.1 降噪
對中文文本來說,采集到的數據通常包括大量的無用數據(噪聲),通常為數據的來源地、作者標簽以及采集過程中出現的特殊字符等,這一類文字常常與正文內容毫不相干,對文本的分類沒有絲毫作用。大量的噪聲干擾將會導致出現分類模型的分類結果不準確的現象。在第一步預處理的過程中,對文本數據進行降噪處理,能夠減少文本數據中的詞匯量,降低特征空間的維度,減少后續工作的難度。
2)將鄉村作為基礎,選擇合適的地域。結合當地新農村建設背景,同時結合當地地理條件,為農村保留具有特色的自然景觀。然后結合本地人文資源,營造出優美,富有內涵的景區[4]。第三方面,發展農村旅游業,還需要突出文化特點,在其中融入當地風土人情,對當地文化特色進行充分利用,充分滿足游客的觀賞需要。
1.2.1.2 中文文本分詞處理
中文分詞模型的算法主要經歷了3 個階段:基于匹配的詞典分詞算法、基于標注的機器學習算法和基于理解的深度學習算法[4]。在其他分類方法中,也被分為2 種分類方法,基于匹配的詞典分詞算法(機械分詞算法)和統計分詞算法。
1.2.1.3 去除停用詞
停用詞被定義為對文本分類沒有任何作用的高頻詞組,例如語氣助詞、人稱代詞、標點符號以及特殊符號等,這些詞被稱為停用詞。刪除停用詞可以節省儲存空間,提高編程代碼運行的速度,降低特征空間的維度,進一步提高中文文本分類的準確性和效率,一般采用停用詞字典的方法,即對所有的特征詞進行遍歷,去除包括停用詞字典詞語的方法。
1.2.2 個人信息文本表示
通過文本預處理階段后得到可以被人類識別的文本信息,但是對計算機來說,其并不能完整理解其中的含義,如果想用計算機對中文文本進行處理,那么需要將其轉化為計算機可以理解的結構化二進制形式,預處理得到的文本為計算機可識別的特征文本,在該文中,筆者采用向量空間模型,向量空間模型是信息檢索領域中經典的模型之一,它對文本信息進行簡化處理并表示成向量空間中的向量運算,將可以直觀反映的空間上的相似度表示為語義的相似度。
用特征空間的1 個向量d來表示1 個文檔a,如公式(3)所示。

式中:tn為第n個特征詞;wn為對應的權值。
1.2.3 個人信息文本處理階段
經過文本分詞和文本表示2 個階段后,得到一系列的特征詞(表示1 篇文章),但是這一系列的特征詞中除去停用詞后,仍然包括一些對文本分類貢獻不大的無用特征詞,需要采用特征空間降維的方法減少特征詞的數量,提高分類的準確性。但是在實際情況中,經過特征選擇后,出現頻率不同的特征詞對分類結果的重要性是不同的,給每個特征詞賦予權重,可以表示該特征詞對最終結果的影響。目前,有2種主流的方法對特征進行加權表示,布爾權重法和TF-IDF算法。布爾權重法將出現次數大于某一確定閾值的特征設定為1,低于閾值的特征設定為0,常用于特征項較少的情況。TF-IDF 算法將逆文檔頻率(IDF)和頻率(TF)作為衡量指標,IDF和TF如公式(4)、公式(5)所示。

從公式(4)、公式(5)中可以看出,TF-IDF 考慮了特征詞的2 個因素,TF為某一特征詞在該文出現的頻率,出現次數越多,對最終的分類結果越有利,而ID表示所有文本數據中有多少個文本包括這個單詞,而IDF為log 形式,表示出現次數越多,越不利于分類。該文采用TF-IDF 的向量空間對中文文本進行處理。
在對文本信息進行預處理后,一段話被分割成多個詞語,從每段話中提取重要詞語,使數據集文檔中沒有標點符號、語氣助詞等無用詞匯,利用空格分隔符對詞語進行分割,縮減文檔的內容。但是,需要對每個詞語進行向量化處理,每個詞語被轉化成結構化二進制形式后被計算機識別,再進行后續的分類計算。首先,利用Python 的第三方庫sklearn將文本內容變成向量,再通過該文所采用的TF-IDF 向量空間模型進行建模,并利用sklearn 第三方庫進行計算。
將中文數據集拆分成訓練集和測試集。利用Python 中的第三方庫jieba 模塊對中文分詞進行處理,對長句子進行劃分,提取特征詞,將訓練集中的特征詞放入文件夾train 中,將測試集中的特征詞放入文件夾test 中,并按類別進行存放。將前人總結的停用詞放入hlt_stop_words.txt(縮減文檔的內容)中,組成停用詞表,去除 train 和test 文件中的停用詞,減少無用詞匯對最終分類結果的影響。
利用Python 的第三方庫sklearn 將文本內容變成bunch向量,每個bunch 向量包括4 類信息,文本類別、文本文件名、文本標簽和文本內容。其中,文本類別包括所有的文本類型,文該文件名為當前正在處理的數據的文件名,文本標簽和文本內容分別為當前正在處理的文本所屬的類別標簽和去除停用詞后的特征詞。
運用TF-IDF 方法提取文本特征詞中的特征,將每個文本的數據提取成簡單的特征向量,便于對數據進行分類計算。為了確保訓練集和測試集的一致性,該文先提取訓練集的特征,再將測試集中的文本數據放入訓練集得到的向量空間中。該文采用Python 的sklearn 第三方庫進行特征計算。
在最終的分類中,同樣采用Python 的sklearn 第三方庫構建KNN 分類器,由TF-IDF 方法對訓練集中得到的特征進行訓練,對分類器參數進行微調。利用微調后的模型在測試集中進行測試,得到最終的分類結果。
在KNN 分類算法中,不同的K值在同一個加權方法下的分類方法的準確性是不同的,隨著K值的升高,使用的加權方法準確率有可能上升也可能下降。因此,筆者采用了不同的K值來確定最優的K值。
由表1 可知,當K值等于5 時,分類精度、召回率最高,F1值(精確度和召回率的調和平均值)與K等于3 時并列第一,則在該實驗背景下,當K值等于5 時,得到的結果最優,因此選擇K等于5,為該實驗的參數設置。預測結果見表2。

表1 KNN 不同K 值下的精度、召回率、F1 值
由表2 可以看出,文本數量集中在位置信息、上網信息和教育信息中,3 類信息的數量明顯超過其他種類的文本數據,數據分布不均勻,但是該文應用的KNN 分類算法仍然能夠對不同的種類進行分類,正確率為94%。結果表明,該文的KNN 算法具有一定的優越性。該文還將K=5 時的KNN算法與SVM 和樸素貝葉斯算法進行比較,結果見表3。

表2 各類別分類正確個數

表3 不同算法的識別率
由表3 可知,KNN 算法與樸素貝葉斯算法的精度、召回率和F1值都明顯高于SVM,說明SVM 在這一類文本數據中的分類效果并不是最優的。KNN算法和樸素貝葉斯算法具有相同的精度,但KNN 算法的召回率比樸素貝葉斯算法高0.2%,在F1值也比樸素貝葉斯算法高0.2%,表明KNN 算法在該文的算法流程下,可以得到最優的分類結果。
隨著互聯網的飛速發展,互聯網上的信息呈爆炸式增長,但也給人們帶來了很多困惑,如何從雜亂無章的信息中直接、高效地對個人信息進行分類受到了越來越多的關注。該文針對目前取證方法論的薄弱環節提出了K 近鄰分類的移動端個人信息分類算法,對移動端隱私數據進行分類學習,以提升隱私信息提取及分類效率,提升了識別隱私政策中個人信息分類的效率與準確性,豐富了關聯信息的多元連接性,有助于拓寬隱私數據取證范圍,為信息安全與取證開拓了思路。