python爬取整个网站的广告敏感词_Python实现敏感词过滤的4种方法

2023-11-13

在我们生活中的一些场合经常会有一些不该出现的敏感词,我们通常会使用*去屏蔽它,例如:尼玛 -> **,一些骂人的敏感词和一些政治敏感词都不应该出现在一些公共场合中,这个时候我们就需要一定的手段去屏蔽这些敏感词。下面我来介绍一些简单版本的敏感词屏蔽的方法。

(我已经尽量把脏话做成图片的形式了,要不然文章发不出去)

方法一:replace过滤

replace就是最简单的字符串替换,当一串字符串中有可能会出现的敏感词时,我们直接使用相应的replace方法用*替换出敏感词即可。

缺点:

文本和敏感词少的时候还可以,多的时候效率就比较差了

import datetime

now = datetime.datetime.now()

print(filter_sentence, " | ", now)

如果是多个敏感词可以用列表进行逐一替换

for i in dirty:

speak = speak.replace(i, '*')

print(speak, " | ", now)

方法二:正则表达式过滤

正则表达式算是一个不错的匹配方法了,日常的查询中,机会都会用到正则表达式,包括我们的爬虫,也都是经常会使用到正则表达式的,在这里我们主要是使用“|”来进行匹配,“|”的意思是从多个目标字符串中选择一个进行匹配。写个简单的例子:

import re

def sentence_filter(keywords, text):

return re.sub("|".join(keywords), "***", text)

print(sentence_filter(dirty, speak))

方法三:DFA过滤算法

DFA的算法,即Deterministic Finite Automaton算法,翻译成中文就是确定有穷自动机算法。它的基本思想是基于状态转移来检索敏感词,只需要扫描一次待检测文本,就能对所有敏感词进行检测。(实现见代码注释)

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# @Time:2020/4/15 11:40

# @Software:PyCharm

# article_add: https://www.cnblogs.com/JentZhang/p/12718092.html

__author__ = "JentZhang"

import json

MinMatchType = 1 # 最小匹配规则

MaxMatchType = 2 # 最大匹配规则

class DFAUtils(object):

"""

DFA算法

"""

def __init__(self, word_warehouse):

"""

算法初始化

:param word_warehouse:词库

"""

# 词库

self.root

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python爬取整个网站的广告敏感词_Python实现敏感词过滤的4种方法 的相关文章

  • 缺失值填充2——python 热卡填充(Hot deck imputation)、冷卡填充(Cold deck imputation)

    基本概念 热卡填充 在完整数据中找到一个与它最相似的对象 用最相似的值填充当前值 冷卡填充 通过其他途径找到能填充缺失部分的值 热卡填充其实就是使用KNN去预测的一种特殊形式 KNN是参考K个 而热卡填充是参考最近的1个 所以热卡填充可以用
  • 95-36-025-ChannelHandler-ChannelHandlerAdapter

    文章目录 1 概述 2 继承体系 3 isSharable 1 概述 2 继承体系 3 isSharable 作为ChannelHandler的默认实现 ChannelHandlerAdapter有个重要的方法isSharable 代码如下
  • Windows XP的网上邻居访问设置

    Windows XP的网上邻居访问设置 more Windows XP的网上邻居有许多差强人意的地方 访问速度慢 无法访问其他主机 其实这些问题通过简单的设置都可以很好地解决 在这之前先确保能够互相PING通 1 开启guest账户 2 允
  • JVM---堆(概述)

    堆 概述 一个JVM实例只存在一个堆内存 堆也是Java内存管理的核心区域 Java堆区在JVM启动的时候即被创建 其空间大小也就确定了 是JVM管理的最大一块内存空间 堆内存的大小是可以调节的 Java虚拟机规范 规定 堆可以处于物理 上
  • 数据结构-二叉树-更新完整版

    目录 二叉树初识 实现二叉树的功能 功能前操作 遍历功能 操作 计算 查询功能 源码 因为上次二叉树的文章的功能不全 所以这次更新一个完整版的二叉树文章 这篇文章有些功能是需要用到队列知识的 所以对队列不了解的可以先去看看这篇队列 详解 因
  • Vue视频插件(vue-video-player)

    前言 在新的项目中用到了大量的视频 由此也学习了一款vue的前端视频播放插件 接下来分享一下 vue video player安装 npm install vue video player save npm install save vid
  • scala简介与安装

    一 简介 1 scala是啥 Scala用一种简洁的高级语言将面向对象和函数式编程结合在一起 Scala的静态类型有助于避免复杂应用程序中的错误 其JVM和JavaScript运行时使您能够轻松访问庞大的库生态系统来构建高性能系统 2 为啥
  • C++:派生类的默认构造函数和拷贝构造函数调用基类构造函数的机制(含程序验证)

    1 如果基类定义了不带参数的默认构造函数 则编译器为派生类自动生成的默认构造函数会调用基类的默认构造函数 2 如果基类定义了拷贝构造函数 则编译器为派生类自动生成的拷贝构造函数同样会调用基类的拷贝构造函数 3 如果基类定义了带参数的构造函数
  • Git-3-项目初体验

    Git的使用需求 IAR工程文件夹 包含多个工程 多个文件夹和文件 c文件 h文件以及库文件 编译文件等等 a 只跟踪c文件和h文件的版本 实现一个大的多层文件夹中的 c和 h文件 能够更新 b 建立分支 分别对各个工程进行操作 proje
  • 如何使用指向类的成员函数的指针(详解!)

    我们首先复习一下 指向函数的指针 如何使用 void print void pfun 声明一个指向函数的指针 函数的参数是 void 函数的返回值是 void pfun print 赋值一个指向函数的指针 pfun 使用一个指向函数的指针
  • vue tab切换

  • Dicom 医学图像与 nii 标签数据处理

    Dicom 医学图像与 nii 标签数据处理 Dicom医学图像处理 nii标记数据处理 综合数据处理 1 code1 2 需要说明 3 code2 Dicom医学图像处理 reference https blog csdn net u01
  • 【Linux】传输层协议 — TCP协议

    Linux 博客主页 一起去看日落吗 分享博主的在Linux中学习到的知识和遇到的问题 博主的能力有限 出现错误希望大家不吝赐教 分享给大家一句我很喜欢的话 看似不起波澜的日复一日 一定会在某一天让你看见坚持的意义 祝我们都能在鸡零狗碎里找
  • 【k8s】kube-proxy 工作模式

    文章目录 Userspace模式 iptables模式 负载均衡 Load Balancing LB 轮询 Round Robin SessionAffinity 最少连接 Least Connection IP哈希 IP Hash Ses
  • 升级AGP 7.x以后,引入带冒号‘:‘的插件规则

    升级到AGP7 x后 插件的使用规则有变化 插件id只支持 点 下划线 中划线 三种特殊字符 对于包含 的插件 比如 com alibaba arouter register 1 0 2 在plugins闭包中使用 编译报错 plugin
  • cmd进入mysql及常用的mysql操作

    cmd进入mysql操作 win R 输入cmd 打开cmd窗口 进入到 mysql bin目录的路径下 第一步 启动mysql服务 可以通过 net start myql 命令实现 第二步 先使用DOS命令进入mysql的安装目录下的bi
  • PCB对点之Mark点检测

    一 Mark点的作用 Mark点是电路板设计中PCB应用于自动贴片机上的位置识别点 Mark点标记可以是裸铜 清澈的防氧化涂层保护的裸铜 PCB板Mark点也叫基准点 为表面贴装工艺中的所有步骤提供共同的可测量点 保证了SMT设备能精确的定
  • 【MySQL】如何导入SQL数据库

    目录 如何导入SQL数据库 例子1 以Terminal终端命令行导入 例子2 以SQLyog图形化软件导入 如何导入SQL数据库 如何将现成的数据库导入到MySQL中 有两种方式 通过终端命令行语句导入 mysql gt source SQ
  • 51单片机入学第五课——蜂鸣器的原理与应用

    文章目录 三极管 三极管的应用 三极管工作原理 PNP型 NPN型 蜂鸣器工作原理 电路分析 编程实践 总结 三极管 三极管两种封装方式 三极管的应用 三极管 全称应为半导体三极管 也称双极型晶体管 晶体三极管 是一种控制电流的半导体器件

随机推荐

  • cookie记录了服务器相关的信息,使用cookie记录信息(精选).ppt

    文档介绍 第6章使用cookie记录信息 1 6 1 1 什么是cookie 什么是Cookies 小甜饼 Cookies就是服务器暂存放在你的电脑里的资料 txt格式的文本文件 好让服务器用来辨认你的计算机 当浏览网站的时候 Web服务器
  • DDR3 关键时间参数

    1 传输速率 比如 1066MT S 1600MT S 1866MT S 等 这个是首要考虑的 因为这个决定了 DDR3 内存的最高传输速率 2 tRCD 参数 tRCD 全称是 RAS to CAS Delay 也就是行寻址到列寻址之间的
  • 《Learning Spark》第十一章:Spark(MLlib)与机器学习

    2020 07 06 引言 我一直以为这部分内容 其实没有什么大不了的 反正就是弄出来数据 然后跑算法就完事了嘛 但是仔细读了读这小节 发现了一些不一样的地方 这里来列举一下 我读完这个章节之后的一些想法 然后再具体来记录这部分的主要内容
  • 计算机组成原理 总线与微命令实验

    总线与微命令实验 实验环境 计算机组成原理实验环境 实验目的 理解总线的概念和作用 连接运算器与存储器 熟悉计算机的数据通路 理解微命令与微操作的概念 实验要求 做好实验预习 读懂实验电路图 熟悉实验元器件的功能特性和使用方法 按照实验内容
  • 手把手教你阅读开源代码【附Python开源项目包】

    文末领取 Python开源项目包 1 为什么要阅读开源代码 阅读 Python 开源项目代码主要有如下三个原因 在工作过程中遇到一些问题 Google 和 StackOverFlow 等网站找不到解决办法 只能去翻源码 对某些项目或者方向非
  • VS2010 error LNK2019: unresolved external symbol _WinMain

    MSVCRTD lib crtexew obj error LNK2019 unresolved external symbol WinMain 16 referenced in funct 本来应该是console application
  • 用C写小游戏(扫雷)

    扫雷 前言 实现的基本要素 菜单 雷区设置与打印 1 雷区 2 布置雷 3 打印雷区 雷范围标识与排雷 1 雷范围标识 2 排雷 代码展示 前言 说到扫雷大家都不陌生吧 特别是windowsXP开始的菜单中找到的小游戏中最吸引我们的便是扫雷
  • coroutines 学习随笔「一」

    文章目录 前言 疑问1 为啥用协程还要添加一个额外的依赖库 太奇怪了 我的runBlocking launch withContext 等等都哪去了 跟踪到标准库去看看 从现在开始进入到标准库了 下个小结论 this is BaseCont
  • 猿创征文|深聊MySQL,从入门到入坟之:应该是全网最详细的MySQL知识点汇总,必须收藏。

    MySQL详细知识点汇总 1 引言 2 MySQL知识点汇总 2 1 链接与断开 2 2 启动与创建服务 2 3 数据库操作 2 4 表操作 2 5 数据操作 2 6 字符集编码 2 7 数据类型 2 7 1 数值类型 2 7 2 字符串类
  • multipart/form-data的使用注意

    问题描述 事情是这样的 我在使用ajax FormData对象提交数据的时候 使用request setRequestHeader Content Type application x www form urlencoded 但服务端接受的
  • 用ACL实现防火墙功能

    目录 一 实验目的 二 实验环境 三 实验内容 实验步骤 测试数据等 1 打开Cisco Packet Tracer 6 0 按以下拓扑图接好线路 PC与Server的IP地址 掩码 网关配置 路由器连接配置 2 配置好设备的IP地址和静态
  • Java线程的5种状态及状态之间转换

    Java中的线程的生命周期大体可分为5种状态 1 新建 NEW 新创建了一个线程对象 2 可运行 RUNNABLE 线程对象创建后 其他线程 比如main线程 调用了该对象的start 方法 该状态的线程位于可运行线程池中 等待被线程调度选
  • 笔记/OSI七层模型

    层级 名称 功能 协议 设备 协议数据单元 7 应用层 为应用程序提供网络服务 对应用程序提供接口 HTTP 80 TCP 超文本传输 Telnet 23 TCP 远程登陆 FTP 20 21 TCP 文件传输 SMTP 25 TCP 简单
  • AD器件距离过近报错 AD修改丝印的距离间距

    今天画板子遇见了一个间距报错 图片如下 我当时想着 修改丝印的间距就可以了 查找了一些资料之后发现是这样修改 并且我将其修改到了0 但是结果还是如上图一样 报错 最后发现除此之外 我们还需要修改元件之间的电气距离 修改完成之后就OK
  • Thinkpad笔记本快捷键大全

    Thinkpad笔记本快捷键大全 FN F2 锁定屏幕 FN F3 关闭屏幕 FN F4 待机 FN F5 无线和蓝牙开关 FN F7 不同显示设备输出切换 FN F9 安全删除硬件 FN F12 休眠 FN 空格 放大 其实就是降低分辨率
  • JackSonUtil JSONArray转换工具

    import com fasterxml jackson core type TypeReference import com fasterxml jackson databind ObjectMapper public final cla
  • Ubuntu安装nginx到配置ssl证书

    1 命令安装nginx sudo apt get install nginx 配置文件默认在 etc nginx文件夹下面 可以编辑nginx conf 或者 sites enabled文件夹下面的默认配置文件 default 2 常用命令
  • linux定时删除文件或文件夹

    本文转载自 https blog csdn net jiangnan8710 article details 51849748 linux新人 个人记录以后备用 一 常用的命令 1 查询命令 find 在删除日志前 首先要做的是查找日志所在
  • dos命令之md详解及实例应用

    dos命令之md详解及实例应用 用来创建文件夹dos的命令只有md 其英文解释为 makedirectory在windows2000 xp vista win7使用方法及实例如下 在命令行窗口输入md 可得到一份帮助信息如下图 例1 如果在
  • python爬取整个网站的广告敏感词_Python实现敏感词过滤的4种方法

    在我们生活中的一些场合经常会有一些不该出现的敏感词 我们通常会使用 去屏蔽它 例如 尼玛 gt 一些骂人的敏感词和一些政治敏感词都不应该出现在一些公共场合中 这个时候我们就需要一定的手段去屏蔽这些敏感词 下面我来介绍一些简单版本的敏感词屏蔽