千家信息网

如何使用PyQT5制作一个敏感词检测工具

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,小编给大家分享一下如何使用PyQT5制作一个敏感词检测工具,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!设计思路:根据敏感词库文件筛选,查看输入的文本中是否包含敏感词汇。从而过滤出相
千家信息网最后更新 2024年09月21日如何使用PyQT5制作一个敏感词检测工具

小编给大家分享一下如何使用PyQT5制作一个敏感词检测工具,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

设计思路:根据敏感词库文件筛选,查看输入的文本中是否包含敏感词汇。从而过滤出相关的敏感词。

导入应用相关的模块。

import osimport loggingimport sys

导入UI界面相关的模块。

from PyQt5.QtWidgets import QApplication,QWidget,QVBoxLayout,QTextEdit,QGridLayout,QLineEdit,QPushButton,QFileDialogfrom PyQt5.QtGui import QIconimport resource

这个里面的resource模块,是使用python生成的.py形式的资源文件。直接将这个文件导入模块使用可以防止打包时资源文件不能打包的问题。展示一下部分的resource.py文件的代码块。

from PyQt5 import QtCoreqt_resource_data = b"\\x00\x00\x2b\x03\\x00\\x01\x6a\xb6\x78\x9c\xed\x5d\x0b\x40\x54\xc5\xfa\x1f\x5c\x95\xf5\\x11\x58\xdd\xb2\x52\xc1\x7c\x84\xa9\xa9\xa5\x29\xec\x6a\x58\x9a\\xf6\xbc\x69\xb7\x6b\x5d\x2b\xb1\xb2\xb4\x7c\x01\x65\xa1\xc0\xee\\xaa\x25\x18\xa4\x66\x6a\xf6\x34\x7a\x78\xcd\x5b\xa6\x66\xb9\x66\\x25\xff\x44\x01\x33\x5f\xf8\xcc\x47\xf8\x7e\xc1\xee\x22\xa0\x28\\xb0\xf3\xff\xcd\x39\x67\xe1\xec\x39\x67\x97\x05\x76\x17\xb0\xf3\\xd3\x8f\xd9\x39\x67\xce\xcc\x37\xdf\x37\xdf\xbc\xce\x9c\x19\x42\\x02\x48\x73\xd2\xab\x57\x2b\xb8\x8d\xc9\xb8\xa6\x84\x2c\x25\x84\\xb4\x6f\xcf\xfb\xcf\x34\x22\x24\x28\x90\x90\x56\xad\x78\x7f\x97\

接下来是UI界面的部分,这次直接是使用UI界面的主线程的槽函数来完成业务逻辑的,并没有使用单独的QThread的子线程来实现。

    def init_ui(self):        '''初始化日志管理器'''        self.logger = logging.getLogger("敏感词检测工具")        self.logger.setLevel(logging.DEBUG)        self.setFixedWidth(600)        self.setWindowIcon(QIcon(':sens.ico'))        self.setWindowTitle('敏感词检测小工具   公众号:[Python 集中营]')        vbox = QVBoxLayout()        self.text_ = QTextEdit()        self.text_.setPlaceholderText('请输入要检测的文本信息...')        self.text_.setMaximumHeight(120)        self.text_lis = QTextEdit()        self.text_lis.setPlaceholderText('文中存在的敏感词信息...')        self.text_lis.setReadOnly(True)        self.text_lis.setMaximumHeight(60)        grid = QGridLayout()        self.dir_sens = QLineEdit()        self.dir_sens.setPlaceholderText('敏感词库路径')        self.dir_sens.setReadOnly(True)        self.dir_btn = QPushButton()        self.dir_btn.setText('获取敏感词库')        self.dir_btn.clicked.connect(self.dir_btn_click)        grid.addWidget(self.dir_sens, 0, 0, 1, 2)        grid.addWidget(self.dir_btn, 0, 2, 1, 1)        self.lis_btn = QPushButton()        self.lis_btn.setText('开始检测')        self.lis_btn.clicked.connect(self.search_sens)        vbox.addWidget(self.text_)        vbox.addWidget(self.text_lis)        vbox.addLayout(grid)        vbox.addWidget(self.lis_btn)        self.setLayout(vbox)

其余的是四个槽函数部分,主要实现将敏感词文件的所有敏感词加载出来。最后将敏感词与输入的文件进行比对。

    def dir_btn_click(self):        '''        选择文件夹        :return:         '''        directory = QFileDialog.getExistingDirectory(self, "选取文件夹", self.cwd)        self.dir_sens.setText(directory + '/')    def get_sens_files(self):        '''        获取敏感词文件        :return:         '''        file_paths = []        self.logger.info("开始批文件路径处理")        list = os.listdir(self.dir_sens.text())        for i in range(0, len(list)):            path = os.path.join(self.dir_sens.text(), list[i])            if os.path.isfile(path):                file_paths.append(path)        self.logger.info("完成批文件路径处理")        return file_paths    def load_sens(self):        '''        加载敏感词        :return:         '''        paths = self.get_sens_files()        sens = []        self.logger.info("开始加载敏感词")        for path in paths:            self.logger.info("当前加载的文件路径是:" + path)            with open(path, "rb") as file:                data = file.readlines()                datac = []                for string in data:                    try:                        datac.append(string.decode('utf8').replace('\n', '').replace('\r', ''))                    except:                        self.logger.error("文件:[" + path + "]解码出现异常")                sens = sens + datac            sens = sens + datac        self.logger.info("完成加载敏感词")        return sens    def search_sens(self):        '''        搜索敏感词        :return:         '''        text_lis = ""        sens = self.load_sens()        text = self.text_.toPlainText()        for se in sens:            if se in text and se not in text_lis:                text_lis = text_lis + se        self.logger.info("包含敏感词:" + text_lis)        self.text_lis.setText(text_lis)

最后,直接使用main()函数启动整个应用。

if __name__ == '__main__':    app = QApplication(sys.argv)    main = SensListen()    main.show()    sys.exit(app.exec_())

以上就是完整的实现过程,有需要的小伙伴直接将所有代码复制到自己的开发工具中启动main()函数就可以啦!

输入敏感词直接在界面上进行检测,检测到的敏感词会显示在下面的文本框中。

看完了这篇文章,相信你对"如何使用PyQT5制作一个敏感词检测工具"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

文件 检测 工具 函数 模块 界面 路径 输入 文本 词库 部分 制作 代码 信息 文件夹 篇文章 线程 资源 处理 应用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 园区信用联盟数据库 网络安全与法治考试答案 网络安全策略和管理制度 招聘软件开发职位 分布式数据库跨库 中文数据库检索实验心得体会 服务器驱动都在哪里下载 网络安全是全球性问题吗 手机网络安全怎么解决 网络安全公司endgame 西方给乌克兰提供网络技术和设备 电子商务服务器操作系统有哪些 阿里云盘 服务器 硬盘 广东运营网络技术服务费 宏柏网络技术 软件维护好还是软件开发好 网络安全风险评估范文 赴日软件开发严格吗 信息网络安全 数据完整性 如何实现保密性网络安全原则 软件开发费计入无形资产吗 点歌机数据库校验失败请重新下载 126网易免费邮箱收件服务器 易语言软件连接数据库 战地风云1怎么创建服务器 东营电商软件开发外包公司 人社网络安全自查工作总结 数据库服务器raid几 amd服务器cpu散热 服务器称为上网行为管理吗
0