首页 > 编程语言 >python 敏感词识别处理

python 敏感词识别处理

时间:2024-09-30 18:03:16浏览次数:7  
标签:content jieba word python list 敏感 black file 识别

定义词库

1、敏感词库(black_word.txt)
2、jeiba 分词库(jieba_db_file.txt)
(我这简单的就用文本来记录了,可以将这些词库都通过数据库来存储,对企业来说通过可视化页面去增删改可能会更方便运营处理)
txt

代码示例

import os
import jieba

black_word_list = list()


def load_word(file_path):
    # fixme: 有条件的通过数据库来缓存,将敏感词库加载到缓存数据库中,而不是内存缓存,这样能减少资源占用
    assert os.path.isfile(file_path), "load_word fail. [{}] file not exist!".format(file_path)
    with open(file_path, 'r', encoding='utf-8') as wf:
        _lines = wf.readlines()
        tmp_list = [w.strip() for w in _lines if w.strip() != '']
    return tmp_list


def set_jieba_db_cache(jieba_db_file):
    jieba.load_userdict(jieba_db_file)


def algorithm_word_jieba_cut(content, replace_word="***"):
    """
    敏感词识别算法
    结巴分词
    :param content:         原始文本
    :param replace_word:    敏感词替换的字符
    :return: (识别到的敏感词列表, 原始文本被处理后的内容)
    """
    global black_word_list

    filter_word_list = []
    content_word_list = jieba.cut(content)  # 将内容通过jieba库进行分词
    tmp_rnt_content = ''
    last_not_black = True  # 记录上一次是否敏感词
    for word in content_word_list:
        if word in black_word_list:  # 跟敏感词库进行比较
            print("black_word = {}".format(word))
            filter_word_list.append(word)
            if last_not_black:
                tmp_rnt_content += replace_word
            last_not_black = False
        else:
            tmp_rnt_content += word
            last_not_black = True
    return list(set(filter_word_list)), tmp_rnt_content


def _init():
    global black_word_list
    # 设置jieba词库
    jieba_db_file = r"G:\info\jieba_db_file.txt"
    set_jieba_db_cache(jieba_db_file)
    # 加载敏感词库
    file_path = r"G:\info\black_word.txt"
    black_word_list = load_word(file_path)


def main():
    _init()  # 初始化
    content_str = ""
    result = algorithm_word_jieba_cut(content_str, replace_word="***")
    

if __name__ == '__main__':
    main()



标签:content,jieba,word,python,list,敏感,black,file,识别
From: https://www.cnblogs.com/lanjianhua/p/18442282

相关文章

  • SCIE1000  Python and Communication
    SCIE1000 Semester 2, 2024Python and Communication Assignment1    The scenarioA new public science museum in St Lucia is developing an exhibit. A feature ofthe museum is that each exhibit item is accompanied by two expla......
  • 【python开发环境搭建】
    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境。1.准备好安装包1)上python官网下载python运行环境(DownloadPython|Python.org),目前比较稳定的是python-3.5.22)上pycharm官......
  • Python 类型检查的利器
    Python类型检查的利器在Python编程中,类型注解(typehints)逐渐成为提高代码质量的重要工具。然而,Python的动态类型特性意味着类型错误可能在运行时才显现,这往往导致调试困难和运行时错误。为了解决这一问题,mypy提供了一种静态类型检查的解决方案,帮助开发者在编码阶段发现潜......
  • Python数据库操作:使用Python连接和操作数据库
    Python数据库操作:使用Python连接和操作数据库数据库入门小分队:Python带你探索数据海洋搭建桥梁:使用Python连接数据库的几种常见方式示例代码:使用`sqlite3`创建并连接一个SQLite数据库游刃有余:掌握基本SQL语句与Python的完美结合示例代码:执行复杂的SQL查询实战演练:通过......
  • Python与自然语言处理库BERT
    Python与自然语言处理库BERT揭开BERT的神秘面纱:从零开始理解这个改变游戏规则的语言模型实战演练:用Python和BERT搭建你的第一个情感分析小助手不只是翻译:探索BERT在跨语言任务中的神奇表现文本生成新高度:利用BERT创造流畅连贯的文章段落优化与调优:让BERT更好地适应特定......
  • Python自动驾驶指南
    Python自动驾驶指南启程:自动驾驶的奇幻之旅编程魔法师的工具箱:Python与自动驾驶必备库示例代码:使用OpenCV读取并显示图片传感器的秘密:如何用Python解析汽车的眼睛和耳朵激光雷达点云处理智能决策者:构建基于Python的路径规划与避障算法A*搜索算法简介实现A*算法实战演......
  • 加油站智能视频监控预警系统(AI识别烟火打电话抽烟) Python 和 OpenCV 库
    加油站作为存储和销售易燃易爆油品的场所,是重大危险源之一,随着科技的不断发展,智能视频监控预警系统在加油站的安全保障方面发挥着日益关键的作用,尤其是其中基于AI的烟火识别、抽烟识别和打电话识别功能,以及其独特的系统组网方式。加油站重大危险源监测(一)油品的易燃易爆性加油站储......
  • Python - [05] 爬虫
    题记部分 001||爬虫的工作原理(1)获取数据。爬虫程序会根据提供的网址,向服务器发起请求,然后返回数据。(2)解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。(3)提取数据。爬虫程序再从中提取出我们需要的数据。(4)储存数据。爬虫程序把这些有用的数据保存起来,......
  • 计算机毕业设计Python智慧社区养老院管理系统 3j751
    目录python语言框架介绍技术可行性具体实现截图技术栈系统的稳定性和可维护性核心代码部分展示详细视频演示系统测试源码获取方式python语言Python具有强大的优势,通过简洁的语法和类库进行操作。而且Python提供了许多的控制语句,比如if语句、for语句,while语句。在数......
  • Python基于web的社区居民帮扶信息管理系统的设计与实现
    目录python语言框架介绍技术可行性具体实现截图技术栈系统的稳定性和可维护性核心代码部分展示详细视频演示系统测试源码获取方式python语言Python具有强大的优势,通过简洁的语法和类库进行操作。而且Python提供了许多的控制语句,比如if语句、for语句,while语句。在数......