基于机器学习的人丁智能语义分析方法
2022-05-30田菁菁许慧云叶紫光
田菁菁 许慧云 叶紫光
关键词:机器学习;金库模式;语义分析
中图法分类号:TP181 文献标识码:A
1引言
近年来,国家对公民隐私信息和公司业务信息安全高度重视,已推出各项保护政策,彰显了信息保护的重要性。为此,中国移动河南公司为了弥补对于内部人事行为的监管不足、解决高权限账号被滥用的问题,建立了高风险操作纳入金库管理的模式,以提高信息安全管控水平。
2金库管理模式介绍
中国移动河南公司在之前的经营生产中,关于敏感数据是否可以成功访问,取决于本次访问的原理是否合理。然而在操作者输入访问理由的过程中,可能出现词不达意、表述不明确或者填写不规范等问题。但监管系统未建立有效机制来审核原因,因此可能导致敏感数据泄露,影响公司运营和客户满意度。针对此问题,可以采用金库管理模式进行有效监管。
“金库模式”又被称之为“双人操作”或者“多人操作”模式。当涉及高价值信息的高风险操作时,强制要求必须由两个或者两个以上有相应权限的员工共同协作完成。通过操作人员之间互相监督来确保关键操作的安全性。
3主要技术方案
3.1总体方案概述
此项目是基于scikit?learn框架开发的一个自然语言处理模型,scikit?learn框架则基于Python语言而搭建。其中,关联度最高的是numpy模块组,该模块组用于线性代数和矩阵的运算。Scikit?learn框架是目前使用较为广泛、应用场景基础良好的数据分析的机器学习框架。Scikit?learn框架主要负责以下几个方面的工作:数据分类预测、数据回归预测、数据信息聚类、数据降维处理以及模型选择和数据预处理。
该模型适用于操作者在人为输入申请原因时进行语义分割判断,使用训练好的模型可以过滤垃圾信息,可以让访问者的申请行为更为系统化与规范化,使得重要信息系统能够实现内容搜索、内容推荐、语义识别及分析等功能。
3.2主要功能和技术实现方案
3.2.1中文分词介绍
中文分词即Chinese Word Segmentation。人类可以准确清晰地将所接收到的语句分割为单独词语,因此期望设计出的系统也可以达到这一目。由于中文与英文的起源不同,词与词之间的连接方式不同,所以中文分词和英文分词存在巨大差异。对英文而言,一个单词就是一个词,词与词之间用空格进行天然分割。而中文以“字”作为基本单位进行语句陈述,词语之间并不用空格进行分隔,中文语句在分割方面相比英文语句更难。中文分词的算法可分为“基于词典的分词算法”“基于统计分词算法”“基于语义的分词算法”“基于字标注的中文分词算法”。
3.2.2结巴中文分词算法介绍
Jieba( 结巴分词) 是一个简单高效又灵活的Python 工具库, Jieba 工具库中的语句简洁凝练, 可以提供多种模式对中文文本进行分词, 并且可以自由修改词典文件。利用结巴分词算法,可以达到以下目的:实现基于Trie 树结构的高效词图扫描,对语句的所有输入数据都加以分析,以语句中分割的词语为落脚点,去分析该句子中词语可能的构词情况,然后再由它形成算法所要求的有向无环图(DAG);得到有向无环图之后,就要去测算每条路径的可能性,这里采用动态规划算法来找到最概率最大的路径,将图上点进行串联得到最大切分组合;对于未收录的词汇(这里指的是并未收录在词典中的词),将采用基于汉字构词能力的HMM 模型进行维特比算法。
3.2.3结巴中文分词支持的三种分词模式
(1) 精确模式:将语句精确分解至词,从而更好地进行语义分析。
(2) 全模式:从语句的头部开始读取,一直到尾部,这种读取方法的速度较快,但是对于语句的歧义问题没有得到很好地解决。
(3) 搜索引擎模式:这是在精确模式的基础上,对可能存在的较长的组合词汇在进行切分,从而提高召回率,适合用于搜索引擎分词。
分词效果如下例所示。
import jieba↙
string:'这个把手该换了,我不喜欢日本和服,别把手放在我的肩膀上,工信处女干事每月经过下属科室都要亲口交代24 口交换机等技术性器件的安装工作'↙
result= jieba. lcut(string) print(len(result),'/ '.join(result))↙
结果。
38 这个/ 把手/ 该换/ 了/ ,/ 我/ 不/ 喜欢/ 日本/ 和服/ ,/ 别/ 把手/ 放在/ 我/ 的/ 肩膀/ 上/ ,/ 工信处/ 女干事/ 每月/ 经过/ 下属/ 科室/ 都/ 要/ 亲口/ 交代/24/ 口/交换机/ 等/ 技术性/ 器件/ 的/ 安装/ 工作?
效果如图1、2 所示。
3.2.4分類和聚类是文本挖掘中常用的方法
当用到这类方法的时候,是为了对检测的数据进行区分,两者的区别在于:分类基于有监督的学习,分类算法的核心在于对文本类型的判断;而聚类是对读入的语句数据进行每句之间的相关度分析,并将高关联度的语句加以聚合,归为一类。在分类计算中,由于将有监督的学习作为前提,所以数据集都具有标注,能让网络在学习中不断修正,增加最后的准确度。但由于文本数据集较少,不能让模型得到足够大规模的学习以修正权值,最终效果并未达到预期,所以我们选用聚类算法对大规模随机微博文本加以解决。
(1)预处理常用方法
文字信息内容预处理包括:对分割出来的词进行词性分析(谓语、形容词和副词)、语义人物标识、数据词典建设、文字项目分割、文字信息内容的分词流程。语义人物标识是指:在名词指代事物中扮演的各种人物(施事、受事、客体、经历者、受益者、工具、处所、目标和来源等)。数据词典建设是指:所用到的词的类别分类的索引字典。
(2)文本信息的特征表示
为了能够提取出文本信息中的对应语句特征,可以使用多种方法。其中方法包括:有逻辑判断的布尔型、概率型,布尔型与概率型的混合型和多维度记录的向量空间型。向量空间模型(VSM)最大优势就是能够获得更为全面的文本信息特征,是分析完文本信息之后组成特征向量(T1,T2,…,Tn)。当特征足够多,可以组成文本信息特征向量矩阵;(W1,W2,…,Wn)为文档项对应的权重,对应每个特征向量相乘的值。文本特征构建的主要目的是能够将原本的文本转化为词表和特征向量的组合,以更加高效的方式去存储语句信息。
(3)文本信息特征缩减
向量空间模型(VSM)构建完成之后并不是完美的,也存在向量数目过多、长度过长等问题。因此,在对文本进行聚类之前,必须对向量空间模型(VSM)进行精简,对特征相关度较低的向量进行相应的压缩操作,并且从高到低的对权值相关度进行排序,保留能够表示文本信息特点的特征词与其权重。
(4)构造特征空间
经过上述步骤,可以得到最具表征的特征向量和特征词,以此作为构建特征空间的基本素材,设置训练模型的基本参数。
3.2.5朴素贝叶斯算法
在分类方法计算中, 朴素贝叶斯算法(Naive Bayesian algorithm) 是应用得最多一個计算类型。朴素贝叶斯算法由贝叶斯算法改进而来的,贝叶斯算法本身考虑了合并先验概率和后验概率,既没有掉入到前者的主观偏见中,也可以弥补语句信息过于拟合的劣势。朴素贝叶斯算法在此基础上更加注重在设置目标值时,属性之间应该具有独立性。这样就可以降低被设置的属性之间的冗余度,使每个属性都具有较高的独立性,利于整个目标属性之间的均衡。虽然朴素贝叶斯算法总体的准确度没有贝叶斯算法高,但是在实际的应用中,朴素贝叶斯算法的可用性更强,减轻了系统的运算压力。
3.2.6 Flask 框架介绍
Flask 是基于Python 语言编写的轻量级网络框架模型。其中,Jinja2 模板引擎和Werkzeug WSGI 以框架模型作支撑 。Jinja2 模板引擎主要负责用户对金库访问系统的使用反馈,即用户提出访问申请后,将对应的数据输入文件,该模板引擎对其渲染加工之后再放回系统的响应页面呈现给客户。设计Werkzeug WSGI 的目的是架起Web 服务器与系统调用接口之间通信的桥梁,能够让服务器传递所要求请的数据信息给Web 程序。
3.2.7 构建垃圾信息分类的机器学习模型
数据集是标注为正常和非正常语句数据的集合。首先,可以使用数据集构建预测模型,以准确分类哪些文本是不正常的;其次,可以使用Naive Bayes定理构建一个简单的消息分类器。
4结束语
通过应用基于机器学习的人工智能语义分析方法,增强了金库模式的管控力度,加强了各业务系统对语义分析的应用效果,具备一定的推广价值。
作者简介:
田菁菁(1976—),本科,工程师,研究方向为:网络安全、信息系统安全、数据安全。