| """ | |
| Module to classify text into positive or negative sentiments | |
| """ | |
| import sys | |
| import tensorflow as tf | |
| from models.models import load_sentiments_model | |
| sentiments_model = load_sentiments_model() | |
| MAX_NEG = 0.4 | |
| MIN_POS = 0.6 | |
| def classify_sentiment(input_text: str) -> str: | |
| """ | |
| Receives a string and classifies it in positive, negative or none | |
| """ | |
| result = tf.sigmoid(sentiments_model(tf.constant([input_text]))) | |
| if result < MAX_NEG: | |
| return "negative" | |
| elif result > MIN_POS: | |
| return "positive" | |
| else: | |
| return "-" | |
| if __name__ == "__main__": | |
| if len(sys.argv) < 2: | |
| print(f"Usage: python {sys.argv[0]} <text to classify>") | |
| sys.exit(1) | |
| # Get the input string from command line argument | |
| input_text = sys.argv[1] | |
| sentiment = classify_sentiment(input_text) | |
| print("Sentiment of the sentence: ", sentiment) | |