def SetDatabase(self):
        filter = "sql(*.sql)"
        caption = "Please Select a Valid Project Database"
        path = str(
            QSettings('CompanyName', 'ProjectName').value('LastProject'))
        if len(path) > 0:
            path = osPath.dirname(path)
        else:
            path = str(QDir.currentPath())

        IsProject = False
        dbContinue = True
        while dbContinue:
            FindProj = QFileDialog()
            FindProj.setModal(True)
            FindProj.setFixedSize(self.size())
            filePathName = FindProj.getOpenFileName(None, caption, path,
                                                    filter)[0]

            # Is this a legitimate file
            if osPath.isfile(filePathName):
                filPthNam, fileExt = ntSplitext(filePathName)
                # Does it have a legitimate file extension
                if fileExt == '.sql':
                    IsProject = True

            if not IsProject:
                ValidMsg = QMessageBox()
                ValidMsg.setIcon(QMessageBox.Warning)
                ValidMsg.setWindowTitle('CompanyName - ProjectName Project')
                ValidMsg.setText(
                    'This is not a Valid Project Database would you like to try again?'
                )
                ValidMsg.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
                ValidMsg.setDefaultButton(QMessageBox.No)
                ValidMsg.setWindowFlags(Qt.WindowStaysOnTopHint)

                MsgReply = ValidMsg.exec_()
                if MsgReply == QMessageBox.No:
                    dbContinue = False
                    filePathName = ''
            else:
                QSettings('CompanyName',
                          'ProjectName').setValue("LastProjectPath",
                                                  osPath.dirname(filePathName))
                dbContinue = False

        return filePathName
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        screen = app.primaryScreen()
        screenHeight = screen.size().height()
        screenWidth = screen.size().width()
        MainWindow.setObjectName("MainWindow")
        MainWindow.setFixedSize(1125, 800)
        MainWindow.setAutoFillBackground(False)
        myappid = u'Risk_Identefier'  # arbitrary string
        ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
        self.setWindowIcon(QtGui.QIcon('logo.png'))
        self.filedialog = QFileDialog()
        self.filedialog.setFixedSize(500, 500)
        self.fileName = ""
        self.msg = QMessageBox()
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.centralwidget.setStyleSheet("background: #707070;")
        self.progressBar = QProgressBar(self.centralwidget)
        self.progressBar.setGeometry(QtCore.QRect(50, 835 - 103, 200, 23))
        self.progressBar.setProperty("value", 0)
        self.progressBar.setObjectName("progressBar")
        self.progressBar.hide()
        self.progressBarLabel = QLabel(self.centralwidget)
        self.progressBarLabel.setWordWrap(True)
        self.progressBarLabel.setGeometry(QtCore.QRect(500, 835 - 103, 300,
                                                       25))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.progressBarLabel.setFont(font)
        self.progressBarLabel.setObjectName("progressBarLabel")
        self.progressBarLabel.setStyleSheet("color: #effeff;")
        self.hideProgNumLabel = QLabel(self.centralwidget)
        self.hideProgNumLabel.setGeometry(QtCore.QRect(215, 835 - 103, 50, 23))
        self.hideProgNumLabel.setObjectName("hideProgNumLabel")
        self.hideProgNumLabel.setStyleSheet("background: #707070;")
        self.radioButtonML = QtWidgets.QRadioButton(self.centralwidget)
        self.radioButtonML.setGeometry(QtCore.QRect(30, 640 - 103, 180, 23))
        self.radioButtonML.setObjectName("radioButtonML")
        self.radioButtonML.setFont(font)
        self.radioButtonML.setStyleSheet(
            "QRadioButton{color:#effeff} QRadioButton:indicator { image: url('images/uncheckedRadio.png'); width:20px; height: 150px;} QRadioButton:indicator:checked {image: url('images/radioChecked.png');}"
        )
        self.radioButtonML.setCursor(
            QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.radioButtonML.setChecked(True)
        self.radioButtonSearch = QtWidgets.QRadioButton(self.centralwidget)
        self.radioButtonSearch.setGeometry(QtCore.QRect(
            30, 700 - 103, 171, 23))
        self.radioButtonSearch.setObjectName("radioButtonSearch")
        self.radioButtonSearch.setFont(font)
        self.radioButtonSearch.setStyleSheet(
            "QRadioButton{color:#effeff} QRadioButton:indicator { image: url('images/uncheckedRadio.png'); width:20px; height: 150px;} QRadioButton:indicator:checked {image: url('images/radioChecked.png');}"
        )
        self.radioButtonSearch.setCursor(
            QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.browseButton = QPushButton(self.centralwidget)
        self.browseButton.setGeometry(QtCore.QRect(30, 460 - 103, 171, 41))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.browseButton.setFont(font)
        self.browseButton.setAutoDefault(False)
        self.browseButton.setFlat(False)
        self.browseButton.setObjectName("browseButton")
        self.browseButton.setStyleSheet(
            "QPushButton{background: #914ed4; border-radius: 10px; color: #effeff; border: 3px outset black;} QPushButton:hover{background : #4838e8; border: 3px outset white;};"
        )
        self.browseButton.setCursor(QtGui.QCursor(
            QtCore.Qt.PointingHandCursor))
        self.titlePicture = QLabel(self.centralwidget)
        self.titlePicture.setGeometry(QtCore.QRect(0, 0, 1154, 347))
        self.titlePicture.setText("")
        self.titlePicture.setStyleSheet(
            "background-image: url('images/background.jpg')")
        self.titlePicture.setObjectName("titlePicture")
        self.logoPicture = QLabel(self.centralwidget)
        self.logoPicture.setGeometry(QtCore.QRect(975, 0, 150, 90))
        self.logoPicture.setText("")
        self.logoPicture.setStyleSheet(
            "background-image: url('images/logo.png')")
        self.logoPicture.setObjectName("logoPicture")
        self.title = QLabel(self.centralwidget)
        self.title.setGeometry(QtCore.QRect(50, 200, 381, 61))
        self.title.setStyleSheet("background: transparent; color: #effeff;")
        font = QtGui.QFont()
        font.setFamily("Times New Roman")
        font.setPointSize(40)
        font.setBold(True)
        font.setWeight(75)
        self.title.setFont(font)
        self.title.setObjectName("title")
        self.runButton = QPushButton(self.centralwidget)
        self.runButton.setGeometry(QtCore.QRect(282, 735 - 103, 561, 81))
        font = QtGui.QFont()
        font.setPointSize(20)
        self.runButton.setFont(font)
        self.runButton.setObjectName("runButton")
        self.runButton.setStyleSheet(
            "QPushButton{background: #914ed4; border-radius: 10px; color: #effeff; border: 3px outset black;} QPushButton:hover{background : #4838e8; border: 3px outset white;};"
        )
        self.runButton.setDefault(True)
        self.runButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.positiveCheckBox = QCheckBox(self.centralwidget)
        self.positiveCheckBox.setGeometry(QtCore.QRect(860, 530 - 103, 191,
                                                       20))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.positiveCheckBox.setFont(font)
        self.positiveCheckBox.setChecked(True)
        self.positiveCheckBox.setObjectName("positiveCheckBox")
        self.positiveCheckBox.setStyleSheet(
            "QCheckBox{color:#effeff} QCheckBox:indicator { image: url('images/unchecked.png'); width:20px; height: 150px;} QCheckBox:indicator:checked {image: url('images/checked.png');}"
        )
        self.positiveCheckBox.setCursor(
            QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.negativeCheckBox = QCheckBox(self.centralwidget)
        self.negativeCheckBox.setChecked(True)
        self.negativeCheckBox.setGeometry(QtCore.QRect(860, 650 - 103, 191,
                                                       20))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.negativeCheckBox.setFont(font)
        self.negativeCheckBox.setAutoFillBackground(False)
        self.negativeCheckBox.setChecked(True)
        self.negativeCheckBox.setObjectName("negativeCheckBox")
        self.negativeCheckBox.setStyleSheet(
            "QCheckBox{color:#effeff} QCheckBox:indicator { image: url('images/unchecked.png'); width:20px; height: 150px;} QCheckBox:indicator:checked {image: url('images/checked.png');}"
        )
        self.negativeCheckBox.setCursor(
            QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.positiveInput = QTextEdit(self.centralwidget)
        self.positiveInput.setGeometry(QtCore.QRect(500, 510 - 103, 331, 71))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.positiveInput.setFont(font)
        self.positiveInput.setObjectName("positiveInput")
        self.positiveInput.setStyleSheet(
            "background: white; border-radius: 10px;")
        self.positiveInput.setText(",".join(positiveList))
        self.negativeInput = QTextEdit(self.centralwidget)
        self.negativeInput.setGeometry(QtCore.QRect(500, 630 - 103, 331, 71))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.negativeInput.setFont(font)
        self.negativeInput.setObjectName("negativeInput")
        self.negativeInput.setStyleSheet(
            "background: white; border-radius: 10px")
        self.negativeInput.setText(",".join(negativeList))
        self.sheetInput = QLineEdit(self.centralwidget)
        self.sheetInput.setGeometry(QtCore.QRect(30, 580 - 103, 171, 31))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.sheetInput.setFont(font)
        self.sheetInput.setObjectName("sheetInput")
        self.sheetInput.setStyleSheet("background: white; border-radius: 10px")
        self.columnInput = QLineEdit(self.centralwidget)
        self.columnInput.setGeometry(QtCore.QRect(250, 580 - 103, 171, 31))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.columnInput.setFont(font)
        self.columnInput.setText("")
        self.columnInput.setObjectName("columnInput")
        self.columnInput.setStyleSheet(
            "background: white; border-radius: 10px")
        self.sheetNameLabel = QLabel(self.centralwidget)
        self.sheetNameLabel.setGeometry(QtCore.QRect(30, 550 - 103, 131, 21))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.sheetNameLabel.setFont(font)
        self.sheetNameLabel.setObjectName("sheetNameLabel")
        self.sheetNameLabel.setStyleSheet("color: #effeff;")
        self.columnNameLabel = QLabel(self.centralwidget)
        self.columnNameLabel.setGeometry(QtCore.QRect(250, 550 - 103, 131, 16))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.columnNameLabel.setFont(font)
        self.columnNameLabel.setObjectName("columnNameLabel")
        self.columnNameLabel.setStyleSheet("color: #effeff;")
        self.positiveWordsLabel = QLabel(self.centralwidget)
        self.positiveWordsLabel.setGeometry(
            QtCore.QRect(500, 480 - 103, 601, 21))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.positiveWordsLabel.setFont(font)
        self.positiveWordsLabel.setObjectName("positiveWordsLabel")
        self.positiveWordsLabel.setStyleSheet("color: #effeff;")
        self.negativeWordsLabel = QLabel(self.centralwidget)
        self.negativeWordsLabel.setGeometry(
            QtCore.QRect(500, 600 - 103, 611, 21))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.negativeWordsLabel.setFont(font)
        self.negativeWordsLabel.setObjectName("negativeWordsLabel")
        self.negativeWordsLabel.setStyleSheet("color: #effeff;")
        self.selectedFileLabel = QLabel(self.centralwidget)
        self.selectedFileLabel.setGeometry(
            QtCore.QRect(225, 470 - 103, 270, 25))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.selectedFileLabel.setFont(font)
        self.selectedFileLabel.setText("")
        self.selectedFileLabel.setObjectName("selectedFileLabel")
        self.selectedFileLabel.setStyleSheet("color: #effeff;")
        self.searchInput = QTextEdit(self.centralwidget)
        self.searchInput.setGeometry(QtCore.QRect(500, 580 - 103, 601, 100))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.searchInput.setFont(font)
        self.searchInput.setObjectName("sheetInput")
        self.searchInput.setStyleSheet(
            "background: white; border-radius: 10px")
        self.searchInputLabel = QLabel(self.centralwidget)
        self.searchInputLabel.setGeometry(QtCore.QRect(500, 550 - 103, 611,
                                                       21))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.searchInputLabel.setFont(font)
        self.searchInputLabel.setObjectName("searchInputLabel")
        self.searchInputLabel.setStyleSheet("color: #effeff;")
        self.searchInput.hide()
        self.searchInputLabel.hide()

        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1125, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.stop_words = stopwords.words('english')
        extended_stop_words = ['from', 're', 'use', 'any', 'also', 'known']
        self.stop_words.extend(extended_stop_words)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Risks Identifier"))
        self.browseButton.setText(_translate("MainWindow", "Browse For File"))
        self.radioButtonML.setText(_translate("MainWindow",
                                              "Machine Learning"))
        self.radioButtonSearch.setText(
            _translate("MainWindow", "Normal Search"))
        self.title.setText(_translate("MainWindow", "Risks Identifier"))
        self.runButton.setText(_translate("MainWindow", "Run Tool"))
        self.positiveCheckBox.setText(
            _translate("MainWindow", "Default Positive Words"))
        self.negativeCheckBox.setText(
            _translate("MainWindow", "Default Negative Words"))
        self.sheetNameLabel.setText(_translate("MainWindow", "Sheet Name:"))
        self.columnNameLabel.setText(_translate("MainWindow", "Column Name:"))
        self.progressBarLabel.setText(_translate("MainWindow", ""))
        self.positiveWordsLabel.setText(
            _translate(
                "MainWindow",
                "Positive words separated by commas (words must exist in documents):"
            ))
        self.negativeWordsLabel.setText(
            _translate(
                "MainWindow",
                "Negative words separated by commas (words must exist in documents):"
            ))
        self.searchInputLabel.setText(
            _translate("MainWindow",
                       "Words to search for seperated by commas:"))