基于PyQT5制作一个敏感词检测工具

基于PyQT5制作一个敏感词检测工具

PyQT5是Python中一个非常流行的GUI库,它可以帮助我们快速地创建各种GUI应用。本文将介绍如何使用PyQT5制作一个敏感词检测工具,包括如何创建GUI界面、如何读取文本文件、如何进行敏感词检测等。

创建GUI界面

首先,我们需要创建一个GUI界面,用于输入待检测的文本和敏感词列表,并显示检测结果。我们使用PyQT5中的QWidget、QLabel、QTextEdit、QLineEdit、QPushButton等控件来创建GUI界面。

下面是一个创建GUI界面的示例:

import sys
from PyQt5.Qt import QApplication, QWidget, QLabel, QTextEdit, QLineEdit, QPushButton

class SensitiveWordDetector(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 500, 400)
        self.setWindowTitle('敏感词检测工具')

        self.text_label = QLabel('待检测文本', self)
        self.text_label.move(20, 20)

        self.text_edit = QTextEdit(self)
        self.text_edit.setGeometry(20, 50, 460, 150)

        self.word_label = QLabel('敏感词列表:', self)
        self.word_label.move(20, 220)

        self.word_edit = QLineEdit(self)
        self.word_edit.setGeometry(20, 250, 460, 30)

        self.detect_button = QPushButton('检测', self)
        self.detect_button.setGeometry(200, 300, 100, 30)
        self.detect_button.clicked.connect(self.detectSensitiveWord)

        self.result_label = QLabel('检测结果:', self)
        self.result_label.move(20, 350)

        self.result_edit = QTextEdit(self)
        self.result_edit.setGeometry(20, 380, 460, 150)

        self.show()

在以上示例中,我们创建了一个名为SensitiveWordDetector的QWidget子类,用于显示GUI界面。在initUI()方法中,我们设置了窗口的大小和标题,并创建了待检测文本、敏感词列表、检测按钮检测结果等控件,并设置它们的位置和大小。最后,我们调用show()方法显示界面。

读取文本文件

接下来,我们需要读取敏感词列表,以便进行敏感词检测。我们可以使用Python中的open()函数来打开文本文件,并使用readlines()方法读取文件中的所有行。

下面是一个读取文本文件的示例:

def readSensitiveWords(self, filename):
    with open(filename, 'r', encoding='utf-8') as f:
        words = [line.strip() for line in f.readlines()]
    return words

在以上示例中,我们定义了一个readWords()方法,用于读取敏感词列表。在方法中,我们使用with open()语句打开文本文件,并使用readlines()方法读取文件中的所有行。然后,我们使用列表推导将每行敏感词去除空格和换行符,并返回敏感词列表。

敏感词检测

最后,我们需要实现敏感词检功能。我们可以使用Python中的re模块来进行正则表达式匹配,以便查找文本中是否包含敏感词。

下面是一个敏感词检测的示例:

import re

def detectSensitiveWord(self):
    text = self.text_edit.toPlainText()
    words = self.readSensitiveWords('sensitive_words.txt')
    pattern = '|'.join(words)
    result = re.findall(pattern, text)
    self.result_edit.setText('\n'.join(result))

在以上示例中,我们定义了一个detectSensitiveWord()方法,用于进行敏感词检测。在方法中,我们首先获取待检测的文本敏感词列表,然后使用join方法将敏感词列表转换为正则表达式模式。最,我们使用re.findall()`查找文本中是否包含敏感词,并将结果显示在检测结果文本框中。

示例说明

下面是一个完整的示例,演示了如何使用PyQT5制作一个敏感词检测工具:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QTextEdit, QLineEdit, QPushButton
import re

class SensitiveWordDetector(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 500, 400)
        self.setWindowTitle('敏感词检测工具')

        self.text_label = QLabel('待检测文本:', self)
        self.text_label.move(20, 20)

        self.text_edit = QTextEdit(self)
        self.text_edit.setGeometry(20, 50, 460, 150)

        self.word_label = QLabel('敏感词列表:', self)
        self.word_label.move(20, 220)

        self.word_edit = QLineEdit(self)
        self.word_edit.setGeometry(20, 250, 460, 30)

        self.detect_button = QPushButton('检测', self)
        self.detect_button.setGeometry(200, 300, 100, 30)
        self.detect_button.clicked.connect(self.detectSensitiveWord)

        self.result_label = QLabel('检测结果:', self)
        self.result_label.move(20, 350)

        self.result_edit = QTextEdit(self)
        self.result_edit.setGeometry(20, 380, 460, 150)

        self.show()

    def readSensitiveWords(self, filename):
        with open(filename, 'r', encoding='utf-8') as f:
            words = [line.strip() for line in f.readlines()]
        return words

    def detectSensitiveWord(self):
        text = self.text_edit.toPlainText()
        words = self.readSensitiveWords('sensitive_words.txt')
        pattern = '|'.join(words)
        result = re.findall(pattern, text)
        self.result_edit.setText('\n'.join(result))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = SensitiveWordDetector()
    sys.exit(app.exec_())

在以上示例中,我们首先创建了一个名为SensitiveWordDetector的QWidget子类用于显示GUI界面。然后,我们实现了读取敏感词列表和敏感词检测功能,并将它们与GUI界面进行了关联。最后,我们使用QApplication类创建了一个应用程序,并运行了它。

示例说明2

下面是另一个示例,演示了如何使用PyQT5制作一个敏感词检测工具:

```pythonimport sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QTextEdit, QLineEdit, QPushButton
import re

class SensitiveWordDetector(QWidget):
def init(self):
super().init()
self.initUI()

def initUI(self):
    self.setGeometry(300, 300, 500, 400)
    self.setWindowTitle('敏感词检测工具')

    self.text_label = QLabel('待检测文本:', self)
    self.text_label.move(20, 20)

    self.text_edit = QTextEdit(self)
    self.text_edit.setGeometry(20, 50, 460, 150)

    self.word_label = QLabel('敏感词列表:', self)
    self.word_label.move(20, 220)

    self.word_edit = QTextEdit(self)
    self.word_edit.setGeometry(20, 250, 460, 150)

    self.detect_button = QPushButton('检测', self)
    self.detect_button.setGeometry(200, 420, 100, 30)
    self.detect_button.clicked.connect(self.detectSensitiveWord)

    self.result_label = QLabel('检测结果:', self)
    self.result_label.move(20, 470)

    self.result_edit = QTextEdit(self)
    self.result_edit.setGeometry(20, 500, 460, 150)

    self.show()

def readSensitiveWords(self, filename):
    with open(filename, 'r', encoding='utf-8') as f:
        words = [line.strip() for line in f.readlines()]
    return words

def detectSensitiveWord(self):
    text = self.text_edit.toPlainText()
    words = self.word_edit.toPlainText().split('\n')
    pattern = '|'.join(words)
    result = re.findall(pattern, text)
    self.result_edit.setText('\n'.join(result))

if name == 'main':
app = QApplication(sys.argv)
ex = SensitiveWordDetector()
sys.exit(app.exec_())
```

在以上示例中,我们创建了一个名为SensitiveWordDetector的QWidget子类用于显示GUI界面。与前一个示例不同的是,我们使用了QTextEdit控件来输入敏感词列表。在detectSensitiveWord()方法中,我们使用split()方法将输入的敏感词列表转换为列表,并使用join()方法将列表转换为正则表达式模式。最后,我们使用`re.findall查找文本中是否包含敏感词,并将结果显示在检测结果文本框中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于PyQT5制作一个敏感词检测工具 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Python正则表达式的小练习分享

    Python正则表达式是一种强大的工具,可以用于匹配、查找和替换文本中的模式。本攻略将分享一些Python正则表达式的小练习,帮助读者更好地掌握正则式的应用。 练习1:配邮箱地址 匹配邮箱地址是正则表达式的一个经典应用。下面是一个例子演示如何使用正则表达式匹配邮箱地址: import re email = ‘example@example.com’ patt…

    python 2023年5月14日
    00
  • python 提取文件的小程序

    下面是详细讲解“Python 提取文件的小程序”的完整攻略。 1. 确定文件路径 首先需要确定要提取的文件在哪个地方。可以使用 Python 的 os 模块中的 getcwd() 函数获取当前工作目录,然后再通过 os.path.join() 拼接出完整的文件路径。 示例代码: import os file_name = "example.txt&…

    python 2023年5月18日
    00
  • win7安装python生成随机数代码分享

    下面是“Win7安装Python生成随机数代码分享”的完整攻略: 安装Python 首先需要下载Python安装包,可以在官网 https://www.python.org/downloads/windows/ 下载适合自己系统的Python版本,推荐下载最新的稳定版。 下载完成后,点击安装包进行安装,一路默认即可。最后记得将Python的安装路径加入系统的…

    python 2023年6月3日
    00
  • python如何随机生成高强度密码

    生成高强度密码是一个很常见的需求,Python作为一门流行的编程语言,提供了许多库和模块可以帮助我们轻松地生成高难度密码。以下是详细讲解如何使用Python随机生成高强度密码的攻略: 使用Python内置的secrets模块生成密码 Python 3.6及以上版本内置的secrets模块提供了生成密码的功能。它可以生成强壮、不可预测的密码,适合用于用户账户、…

    python 2023年6月3日
    00
  • Python语音合成的项目实战(PyQt5+pyttsx3)

    下面来详细讲解“Python语音合成的项目实战(PyQt5+pyttsx3)”的完整攻略。 项目介绍 语音合成是将文字转化成语音的一种技术,常用于人机交互、无障碍辅助等领域。本项目使用Python中的Qt界面库PyQt5和语音合成库pyttsx3,开发一个简单的语音合成桌面应用程序。 实现步骤 安装必要的库 PyQt5: GUI库,提供了丰富的界面控件,可以…

    python 2023年5月19日
    00
  • 如何基于python操作excel并获取内容

    下面是关于如何基于Python操作Excel并获取内容的完整实例教程。 步骤一:安装依赖库 我们需要使用第三方库xlrd来读取Excel文档中的数据,同时还需要使用openpyxl库来操作Excel文档。 使用如下命令安装这些库: pip install xlrd openpyxl 步骤二:读取Excel中的内容 接下来我们将逐步实现代码,首先是读取Exce…

    python 2023年5月13日
    00
  • Python入门教程(二十二)Python的类和对象

    《Python入门教程(二十二)Python的类和对象》是一篇介绍Python面向对象编程中类和对象的基本概念、语法和应用的文章,其完整攻略可以包括以下几个部分: 一、类和对象的基本概念 首先,需要介绍什么是类和对象。类是一个抽象的概念,它定义了一组属性和方法,相当于一个模板,用于创建对象。而对象则是类的实例,即通过类创建出来的具体实体,具有独立的属性值和方…

    python 2023年5月31日
    00
  • Python 运行 shell 获取输出结果的实例

    想使用 Python 运行 shell 并获取输出结果,可以使用 Python 的 subprocess 模块实现。具体的步骤: 导入 subprocess 模块: import subprocess 使用 subprocess 模块的 run 函数执行命令: result = subprocess.run([‘ls’, ‘-l’], stdout=subp…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部