◆付顺顺
(安徽省公安教育研究院 安徽 230088)
当前网络赌博的一种重要表现形式就是开设专门赌博网站,采用严密的内部分级制度发展不同级别的会员,邀约赌博人员、利用特定对象设立赌博规则等组织不特定的境内人员,通过各种形式参赌。因此,快速识别出赌博网站,有助于从源头切断参赌人员接触赌博网站,净化网络空间。
从技术角度来讲,赌博网站识别可以看作是网页分类。由于网页上信息丰富,李晓黎[1]提出了一种将SVM与无监督聚类相结合的新分类算法,给出了一种新的网页表示方法并应用于网页分类问题。黄科[2]将二元分词方法应用于统计构造二字词词表,从而根据网页中的文本进行分词,进而进行网页的分类。秦兵[3]利用改进的贝叶斯模型进行了页面分类。代令令[4]针对目前文本分类处理过程复杂且耗时过长的问题,将fastText引入到中文文本分类领域中,并验证其在中文分类中的效果。专家杜锦波[5]发现FastText并不适应于数据不平衡的分类问题,并将集成算法的思想应用在了FastText算法上,提高了FastText算法在处理不平衡数据的准确性。
现有的分类方法取得了较为显著的应用效果,但应用于赌博网站识别都有一定不足。首先,赌博网站相较于正常页面的规模上处于绝对不平衡状态,我们在数据收集阶段,为了保证正常页面的普适性,尽量会收集尽可能多的正常页面,但是赌博网站数据能收集到的就非常少。因此,本文将专家杜锦波[5]的思想采用FastText算法结合Bootstrap进行赌博网站页面分类识别。
集成学习是将多个弱分类器组合成一个强分类器的方法。目前,比较常用的集成方法分别是Bagging,Bootstrap,RS,随机森林及Stacking等。本文拟采用Bootstrap集成算法,随机对样本抽取N次,形成N个样本集,然后对每个样本集都训练对应的弱分类器,将这些弱分类器的结果按照一定的权重组合出最终结果,这样N个弱分类器形成一个强分类器。这种思想在不平衡数据集中,可以降低多数类数据的效用,提高了少数类数据特征能被一些其他弱分类器捕获的概率,让分类器更好的学习数据的本质。
FastText是一个高效学习单词表示和句子分类的快速分类算法,其模型结构简单来说只有三层,如图1所示,输入层、隐含层、输出层,输入都是多个经向量表示的单词,输出特定的分类结果。
图1 FastText模型
赌博网站的数量在整个互联网中占比非常少,按照通常情况下的二分类思路来做当数据集不平衡时,少数类样本的特征大概率会被抛弃,这就导致我们在对网站进行赌博网站和正常网站二分类时,赌博网站识别出的准确率和召回率都不高。为了解决数据不平衡的问题,文章采用了Bootstrap集成算法对已经打乱的包含有赌博网页和正常网页的训练集随机抽取N次,形成N个子样本,对每个样本都使用FastText进行训练,得到N个分类器,之后让这N个分类器投票得出,某一具体页面的类别。通过这种方式即解决了数据不平衡的弊端,提高了赌博页面这一少数类的特征捕获概率,让分类器更好的学习数据的本质。
输入:正常网页和赌博网页数据集。
输出:分类结果。
Step1:将数据打乱,随机抽取N次,形成N个子样本;
Step2:对每个样本都使用FastText进行训练,得到N个分类器;
Step3:N个分类器按照最大数量投票得出最终分类结果;
实验环境为Intel Core i7-7500处理器、主频3.4GHz、内存16GB、1TB硬盘的PC机.操作系统为Win10,编程语言使用Python3.7,编译环境PyCharm。
本文实验scrapy框架采集了310个赌博网站全站数据和站长之家网站排行榜收录的中文网站中随机抽选6000个作为正常网站样本,根据统计发现平均下来每个赌博网站具有的页面数量为20个左右,为了保证网站之间的比例从中选取这么网页。对每个网页页面去除HTML标签之后形成的纯文本数据采用jieba分词工具进行分词处理,对分词后的数据进行数据清洗,去除数据中无意义的语气词等,将清洗后数据整合成文档。
本文实验采用精确率、召回率和F-score三个指标来评价实验结果。
精确率:预测正确的数量与所有预测为正类数量之比,具体如公式1。
召回率:正类预测正确的数量与正类的总数之比,具体如公式2。
F1值是综合考虑准确率与召回率的一个指标,如公式3。
首先,对于预处理后的数据直接使用FastText算法,主题词数设为K=40,将数据按照7:3的比例分为训练集和测试集,通过训练集进行模型的拟合,再通过测试“集计算”模型准确率、召回率以及F-score的得分。
表1采用FastText算法的结果
可以看出算法对正常类数据比较敏感,但是不正常数据都被抛弃了。
其次,采用基于Bootstrap和FastText结合的算法中。在Bootstrap过程中,以F-score作为弱分类器数量的选择的验证指标,选取10到200之间的不同数量,分别计算在这些分类器数量下的F-score值。根据图2可以看出,随着分类器的数量增多,F-score的上升逐渐减缓,在分类器数量的120的时候,基本达到F-score的最大值,之后分类器数量增多,F-score基本稳定。所以,分类器数量选择120为最优选择。
图2 F-score变化图
由表2可知,基于Bootstrap的FastText算法结果,最大化地利用到了模型的全部数据,对于赌博页面的预测准确率、召回率都有显著的提升。
表2基于等比例Bootstrap的FastText算法结果
针对赌博网站页面识别问题,文章综合了Bootstrap集成算法和FastText算法进行识别,经实验表明,一定程度上提高了赌博网站页面的识别效率,但是,文章仅采用了页面上的文本信息,接下来将综合页面的图片、音视频、URL、网站注册等信息综合考虑,希望能进一步提高赌博网站的识别效果。