欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于PyQT5制作一個(gè)敏感詞檢測(cè)工具

 更新時(shí)間:2022年02月15日 08:23:17   作者:Python 集中營  
這篇文章主要介紹了如何利用PyQT5制作簡易的敏感詞檢測(cè)工具??梢愿鶕?jù)敏感詞庫文件篩選,查看輸入的文本中是否包含敏感詞匯,從而過濾出相關(guān)的敏感詞。感興趣的可以了解一下

file

設(shè)計(jì)思路:根據(jù)敏感詞庫文件篩選,查看輸入的文本中是否包含敏感詞匯。從而過濾出相關(guān)的敏感詞。

導(dǎo)入應(yīng)用相關(guān)的模塊。

import os
import logging
import sys

導(dǎo)入U(xiǎn)I界面相關(guān)的模塊。

from PyQt5.QtWidgets import QApplication,QWidget,QVBoxLayout,QTextEdit,QGridLayout,QLineEdit,QPushButton,QFileDialog
from PyQt5.QtGui import QIcon

import resource

這個(gè)里面的resource模塊,是使用python生成的.py形式的資源文件。直接將這個(gè)文件導(dǎo)入模塊使用可以防止打包時(shí)資源文件不能打包的問題。展示一下部分的resource.py文件的代碼塊。

from PyQt5 import QtCore

qt_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界面的主線程的槽函數(shù)來完成業(yè)務(wù)邏輯的,并沒有使用單獨(dú)的QThread的子線程來實(shí)現(xiàn)。

    def init_ui(self):
        '''初始化日志管理器'''
        self.logger = logging.getLogger("敏感詞檢測(cè)工具")
        self.logger.setLevel(logging.DEBUG)

        self.setFixedWidth(600)
        self.setWindowIcon(QIcon(':sens.ico'))
        self.setWindowTitle('敏感詞檢測(cè)小工具   公眾號(hào):[Python 集中營]')

        vbox = QVBoxLayout()

        self.text_ = QTextEdit()
        self.text_.setPlaceholderText('請(qǐng)輸入要檢測(cè)的文本信息...')
        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('開始檢測(cè)')
        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)

其余的是四個(gè)槽函數(shù)部分,主要實(shí)現(xiàn)將敏感詞文件的所有敏感詞加載出來。最后將敏感詞與輸入的文件進(jìn)行比對(duì)。

    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("當(dāng)前加載的文件路徑是:" + 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 + "]解碼出現(xiàn)異常")
                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()函數(shù)啟動(dòng)整個(gè)應(yīng)用。

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

以上就是完整的實(shí)現(xiàn)過程,有需要的小伙伴直接將所有代碼復(fù)制到自己的開發(fā)工具中啟動(dòng)main()函數(shù)就可以啦!

輸入敏感詞直接在界面上進(jìn)行檢測(cè),檢測(cè)到的敏感詞會(huì)顯示在下面的文本框中。

file

到此這篇關(guān)于基于PyQT5制作一個(gè)敏感詞檢測(cè)工具的文章就介紹到這了,更多相關(guān)PyQT5敏感詞檢測(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python能開發(fā)游戲嗎

    python能開發(fā)游戲嗎

    在本篇文章里小編給大家整理的是關(guān)于python進(jìn)行游戲開發(fā)的相關(guān)知識(shí)點(diǎn),需要的朋友們參考學(xué)習(xí)下。
    2020-06-06
  • NumPy 數(shù)組屬性的具體使用

    NumPy 數(shù)組屬性的具體使用

    本文主要介紹了NumPy 數(shù)組屬性的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • python遞歸算法(無限遞歸,正常遞歸,階乘)

    python遞歸算法(無限遞歸,正常遞歸,階乘)

    本文主要介紹了python遞歸算法,包含無限遞歸,正常遞歸,階乘等,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • Python 異步之如何保護(hù)任務(wù)免于取消詳解

    Python 異步之如何保護(hù)任務(wù)免于取消詳解

    這篇文章主要為大家介紹了Python 異步之如何保護(hù)任務(wù)免于取消示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Python批量發(fā)送post請(qǐng)求的實(shí)現(xiàn)代碼

    Python批量發(fā)送post請(qǐng)求的實(shí)現(xiàn)代碼

    昨天學(xué)了一天的Python(我的生產(chǎn)語言是java,也可以寫一些shell腳本,算有一點(diǎn)點(diǎn)基礎(chǔ)),今天有一個(gè)應(yīng)用場(chǎng)景,就正好練手了
    2018-05-05
  • 詳解Python+OpenCV實(shí)現(xiàn)圖像二值化

    詳解Python+OpenCV實(shí)現(xiàn)圖像二值化

    圖像二值化就是將圖像上的像素點(diǎn)的灰度值設(shè)置為0或255,也就是將整個(gè)圖像呈現(xiàn)出明顯的黑白效果的過程。本文將通過Python+OpenCV實(shí)現(xiàn)這一過程,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • Python從臨時(shí)郵箱獲取驗(yàn)證碼的操作代碼

    Python從臨時(shí)郵箱獲取驗(yàn)證碼的操作代碼

    這篇文章主要介紹了Python從臨時(shí)郵箱獲取驗(yàn)證碼的操作代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Google開源的Python格式化工具YAPF的安裝和使用教程

    Google開源的Python格式化工具YAPF的安裝和使用教程

    Google的開發(fā)者文檔中有一套Python的代碼書寫規(guī)范,而在GitHub上同樣開源了一款名為YAPF的命令行程序用作Python的格式化,下面我們就來看下這款Google開源的Python格式化工具YAPF的安裝和使用教程
    2016-05-05
  • Python Map 函數(shù)詳解

    Python Map 函數(shù)詳解

    這篇文章主要為大家介紹了Python Map 函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • PyQt 線程類 QThread使用詳解

    PyQt 線程類 QThread使用詳解

    QThread是我們將要詳細(xì)介紹的第一個(gè)類。它也是 Qt 線程類中最核心的底層類。由于 PyQt 的跨平臺(tái)特性,QThread要隱藏掉所有平臺(tái)相關(guān)的代碼。
    2017-07-07

最新評(píng)論