当前位置:首页 期刊杂志

基于K近邻算法的移动端个人信息分类研究

时间:2024-05-18

王 波

(中金金融认证中心有限公司,上海 201210)

0 引言

随着信息网络的发展,大量个人用户及企业信息数据暴露在公众的视野中,这也暴露出互联网存在重大的安全隐患,为了保障数据的安全,如何对个人信息数据

进行分类保存是当下网络安全研究中具有实际意义的领域。2014 年,Verma 等人提出使用机器学习的文本分类(垃圾邮件)调查方法对传入的邮件进行分类,并删除不需要的信件。2012 年,王超学等人[1]利用 K-Means 算法对训练样本集进行聚类,得到了改进后的加权 KNN 文本分类算法。2019 年,邓晓衡等人[2]提出了一种基于词义和词频的向量空间模型改进方法,明显地提高了计算的效率和结果的准确性。

该文主要提出了一种基于K 近邻分类的个人信息分类算法,运用该算法对移动端隐私文本文件进行分类学习,以提升提取个人信息数据的效率以及分类的准确性,通过该分类方法对移动应用隐私文本进行多元化分类,并研究移动应用收集个人信息的情况,这个阶段的主要工作是对移动应用个人隐私文本进行分类、分析并给出可视化的结果。

1 个人信息数据分类

根据《App 违法违规收集使用个人信息行为认定方法》的相关规定,网络运营者收集、使用个人信息时应遵循合法、正当且必要的原则,公开收集、使用规则,明确收集、使用信息的目的、方式和范围,还必须经过信息所有者的同意。笔者对从互联网中依法收集的移动端应用的个人信息进行分类,将其分为8 类:位置信息、身份信息、财产信息、工作信息、交易信息、上网信息、教育信息以及车辆信息。

1.1 基于K 近邻算法的移动端个人信息多分类方法的研究

个人信息分类映射问题主要是对样本进行分类处理后,将其映射到满足特定需求的集合中的数据处理方法,建模流程如图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

1.2 基于K 近邻算法的移动端个人信息多分类方法的实现

一般来说,当获取到移动应用的隐私文本后,对隐私文本信息进行文本预处理后,再对长句子进行划分,提取特征词,通过停用词减少无用词汇对最终分类结果的影响。用简单的特征向量来表示每个文本的数据,便于对数据进行分类计算。该文先对训练集进行特征提取,再将测试集中的文本数据放入训练集得到的向量空间中,确保训练集和测试集的一致性。该文对这类挖掘推理采用机器学习的方式使其自动化地对个人数据进行分类,采用构造分类器对个人信息进行处理,提升分类效率,具体流程如图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 的向量空间对中文文本进行处理。

1.3 基于K 近邻算法的移动端个人信息多分类方法具体实现过程

在对文本信息进行预处理后,一段话被分割成多个词语,从每段话中提取重要词语,使数据集文档中没有标点符号、语气助词等无用词汇,利用空格分隔符对词语进行分割,缩减文档的内容。但是,需要对每个词语进行向量化处理,每个词语被转化成结构化二进制形式后被计算机识别,再进行后续的分类计算。首先,利用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 方法对训练集中得到的特征进行训练,对分类器参数进行微调。利用微调后的模型在测试集中进行测试,得到最终的分类结果。

2 实验结果与分析

在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 算法在该文的算法流程下,可以得到最优的分类结果。

3 总结

随着互联网的飞速发展,互联网上的信息呈爆炸式增长,但也给人们带来了很多困惑,如何从杂乱无章的信息中直接、高效地对个人信息进行分类受到了越来越多的关注。该文针对目前取证方法论的薄弱环节提出了K 近邻分类的移动端个人信息分类算法,对移动端隐私数据进行分类学习,以提升隐私信息提取及分类效率,提升了识别隐私政策中个人信息分类的效率与准确性,丰富了关联信息的多元连接性,有助于拓宽隐私数据取证范围,为信息安全与取证开拓了思路。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!