| | from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QVBoxLayout, QPushButton |
| | from PyQt5.QtGui import QFont |
| | from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QVBoxLayout, QPushButton, QComboBox |
| | import tensorflow as tf |
| | import numpy as np |
| | import tensorflow_hub as hub |
| | import tensorflow_text as text |
| |
|
| | print ("Loading Models.....") |
| | Model2=tf.keras.models.load_model("./Bert_uncased_model_Tiwtter.h5",custom_objects={'KerasLayer':hub.KerasLayer}) |
| |
|
| | Model1=tf.keras.models.load_model("./Bert_uncased_model_Reddit.h5",custom_objects={'KerasLayer':hub.KerasLayer}) |
| | classes=['Neutral', 'Positive', 'Negative'] |
| |
|
| | def show_message(): |
| | message = input_box.text() |
| | selected_option = dropdown.currentIndex() |
| | Model=Model2 |
| | if (selected_option==1): |
| | Model=Model1 |
| | ans=Model.predict([message]) |
| | i=np.argmax(ans) |
| | catagorie=classes[i] |
| | percentage=str(int(ans[0][i]*100))+" %" |
| | show_text=catagorie+" - "+percentage |
| | label.setText(show_text) |
| |
|
| | app = QApplication([]) |
| | window = QWidget() |
| | window.setWindowTitle("Sentiment Analysis") |
| | window.setFixedSize(600, 300) |
| |
|
| | layout = QVBoxLayout() |
| |
|
| | label1 = QLabel("Enter a text:") |
| | label1.setFont(QFont("Arial", 14)) |
| | layout.addWidget(label1) |
| |
|
| | dropdown = QComboBox() |
| | dropdown.addItem("Bert uncased model Tiwtter (Model 2)") |
| | dropdown.addItem("Bert uncased model Reddit (Model 1)") |
| | dropdown.setFont(QFont("Arial", 12)) |
| | layout.addWidget(dropdown) |
| |
|
| | input_box = QLineEdit() |
| | input_box.setFont(QFont("Arial", 14)) |
| | layout.addWidget(input_box) |
| |
|
| | button = QPushButton("Classify") |
| | button.clicked.connect(show_message) |
| | button.setFont(QFont("Arial", 14)) |
| | layout.addWidget(button) |
| |
|
| | layout.addStretch() |
| |
|
| | label = QLabel("") |
| | label.setFont(QFont("Arial", 12)) |
| | layout.addWidget(label) |
| | label.setContentsMargins(150, 0, 250, 0) |
| |
|
| |
|
| | layout.addStretch() |
| |
|
| | window.setLayout(layout) |
| | window.show() |
| | app.exec_() |
| |
|