随着网络/信息安全攻防的不断升级,传统的安全检测方法已经不能够满足新的安全威胁,大数据以及机器学习的方法越来越多的被应用到安全领域,本文研究了一种将贝叶斯算法应用到恶意内容识别的方法,不属于新方法,仅做实践验证.

首先确定识别的恶意内容为-色情类,方法最终可推广到博彩类,钓鱼网站类等等.为了提取色情类网站内容通用关键词,需要编写网站爬虫工具,爬取敏感关键字.为了对付动态网页内容以及js代码,这里需要借助PyQt QtWebKit模块的力量.使用该模块获取到网页内容后需要使用正则的方式过滤掉html便签等内容,正则如下:

'//<!\[CDATA\[[^>]*//\]\]>'

'<\s*script[^>]*>[^<]*<\s*/\s*script\s*>'

'<\s*style[^>]*>[^<]*<\s*/\s*style\s*>'
'<br\s*?/?>'
'</?\w+[^>]*>'

'<!--[^>]*-->'

过滤后的内容为待提取的字符串.此处需要应用到英文单词分词的内容,需要去掉冠词如 a the 等单词,避免在提取到的敏感词中包含该类单词.并且需要将英文单词的ing 形式,ed等形式做转换,以便将同一个单词的不同形式合并为一个单词后计数.使用python的nltk库可以轻松搞定上述事情.样例代码如下:

sr = stopwords.words('english')

for token in tokens:
    if token.strip()  not in sr:
    token = porter.stem(token)
freq = nltk.FreqDist(clean_tokens)

standard_freq_vector = freq.most_common(50)    #取出统计次数为前50的单词

以上便取出了网站中的高频词汇,通过对大量色情类网站高频词的提取后可以综合整理出一份通用的该类网站的高频词汇,部分词汇如下:porn sex free video var fuck hot big teen girl xxx tube ass pussi asian matur cock young sexi movi milf horni

正常词汇样例如下(正常词汇本例使用的为英文中高频词汇):twist happen probabl loud detail book futur sick varieti wing repeat stay veil humbl appoint scientif rule pupil

将色情类以及正常词汇样例结合组成词汇向量a.

准备训练样本,方法如下:对于一个色情类url,使用上述方法提取出高频词汇,然后于向量a中词汇对比,存在记为1,不存在记为0,最终形成该url的训练样本向量x.

朴素贝叶斯算法的应用已经相当普遍,sklearn中已经包含该模块.训练代码如下:

from sklearn.naive_bayes import GaussianNB

train_x,train_y,test_x,test_y = get_train_data()

X = np.array(train_x)

Y = np.array(train_y)

clf = GaussianNB()

clf.fit(X, Y)

test_ret = clf.predict(test_x)

经过测试,训练后模型对色情类网站内容的识别率在测试集上可达99.99%.该方法同时可应用去其他类敏感信息的识别.

朴素贝叶斯色情类网站内容识别相关推荐

  1. 基于朴素贝叶斯的手写数字识别

    基于朴素贝叶斯的手写数字识别 关于数据集 关于SIMD 关于python 数据预处理 总结 关于数据集 MNIST数据库(http://www.cs.nyu.edu/~roweis/data.html ...

  2. 机器学习第11天:朴素贝叶斯模型 - 垃圾短信识别

  3. 基于朴素贝叶斯的垃圾邮件分类器Java实现和讲解

    朴素贝叶斯算法最典型的应用就是垃圾邮件的识别,在数据量非常大的情况下,识别的正确率可以达到接近100%,同时实现起来思路并不复杂.本文介绍的就是基于朴素贝叶斯算法的垃圾邮件识别的实现.如果之前对贝叶斯 ...

  4. sklearn中的朴素贝叶斯

    1 概述 1.1 真正的概率分类器 在许多分类算法应用中,特征和标签之间的关系并非是决定性的.如想预测一个人究竟是否能在泰坦尼克号海难中生存下来,可以建一棵决策树来学习训练集.在训练中,其中一个人的特 ...

  5. (10) 朴素贝叶斯

    文章目录 1 概述 2 不同分布下的贝叶斯 2.1 高斯朴素贝叶斯GaussianNB 2.1.1 认识高斯朴素贝叶斯 2.1.2 探索贝叶斯:高斯朴素贝叶斯擅长的数据集 2.1.3 探索贝叶斯:高斯 ...

  6. 六、朴素贝叶斯案例分析

    1.朴素贝叶斯案例分析 朴素贝叶斯案例分析的内容有: 项目概述:屏蔽社区留言板的侮辱性言论 项目实战:朴素贝叶斯案例的实现 数据集信息 朴素贝叶斯案例的数据包含6条样本,具体有3个正样本和3个负样本, ...

  7. 朴素贝叶斯(Naive Bayes)原理+编程实现拉普拉斯修正的朴素贝叶斯分类器

    贝叶斯方法与朴素贝叶斯 1.生成模型与判别模型 2.贝叶斯 2.1贝叶斯公式 2.2贝叶斯方法 3朴素贝叶斯 3.1条件独立性假设 3.2朴素贝叶斯Naive在何处? 3.3朴素贝叶斯的三种模型 3. ...

  8. 机器学习算法(三):基于概率论的分类方法:朴素贝叶斯理论与python实现+经典应用(文档分类、垃圾邮件过滤)

    算法学习笔记更新,本章内容是朴素贝叶斯,是一个用到概率论的分类方法. 算法简介   朴素贝叶斯是贝叶斯决策的一部分,简单说,就是利用条件概率来完成分类.说起条件概率,猛地一下戳到了笔者的伤口.想当年, ...

  9. 使用Sklearn学习朴素贝叶斯算法

    目录 1,sklearn中的贝叶斯分类器 1.1,高斯朴素贝叶斯GaussianNB 1.1.1,认识高斯朴素贝叶斯 1.1.2,参数说明 1.1.3,高斯朴素贝叶斯建模案例 1.1.4,探索高斯朴素 ...

最新文章

  1. Entity Framework 约定
  2. 使用PHPExcel 对表格进行,读取和写入的操作。。。。
  3. 禅道826版本SQL注入,登录绕过以及禅道826后台GetShell的小技巧
  4. HLS-Demo IOS 视屏直播样例
  5. iOS容易造成循环引用的三种场景,就在你我身边!
  6. Jquery工作常用实例——隐藏功能实现
  7. 使用Python解析nginx日志文件
  8. python对象使用
  9. Pentium II Pentium III架构/微架构/流水线 (2) - P6详解 - 前端(指令预取/译码/动态分支预测静态分支预测)
  10. Hanlp得到语义相似度的方法
  11. es6 取数组的第一个和最后一个_全球最恐怖的3个泳池,第一个有10层楼高,最后一个听名字就害怕...
  12. ES2021 更新的内容!
  13. Linux(12.1-12.6)学习笔记
  14. CMM,CMMI 软件全面质量管理的思想体系
  15. Dempster-Shafer Evidence Theory
  16. 如何解决硬盘固件区损坏?只要学会这几步
  17. HAL库中外设驱动的实现(任意外设通用)
  18. 简支梁挠度计算公式推导_自己整理的简支梁挠度计算公式
  19. Elasticsearch 技术分享
  20. 益聚星荣:核心数据持续上扬,亏损持续扩大,我们究竟该如何看待B站?

热门文章

  1. oracle:一个update修改两张表
  2. 什么软件能转换qlv格式视频无需工具转换方法
  3. RestTemplate消息转换器实现详解
  4. html2canvas图片生成file格式传送到后台服务器
  5. 毕业设计 Android人脸门禁系统
  6. 黑苹果安装 - UEFI+GPT的Clover引导OS X 10.10
  7. Asix2搭建Spring-MVC的WebService
  8. Postman-APP登入模拟请求-数据加解密
  9. python命令行执行 .py文件提示ModuleNotFoundError: No module named 'XXX' 解决方法
  10. 1.嵌入式控制器EC学习,编译环境搭建