CoolFace
Apppublic

Terdan/hate_speech

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
app.py54 linesDownload Raw Back to root
1import torch2from transformers import DistilBertTokenizer, DistilBertForSequenceClassification3 4def load_model(model_path, device):5    model = DistilBertForSequenceClassification.from_pretrained(model_path)6    model.to(device)7    model.eval()8    return model9 10def run_inference(model, tokenizer, label_decoder, device, user_input):11    model.eval()  # Set the model to evaluation mode12 13    # user_input = input("Enter a text for prediction: ")14 15    # Tokenize user input16    input_ids = tokenizer.encode(user_input, return_tensors="pt").to(device)17 18    with torch.no_grad():19        outputs = model(input_ids)20        predicted_label = torch.argmax(outputs.logits, dim=1).tolist()21 22        # Extracting the text and predicted outcome23        input_text = tokenizer.decode(input_ids[0], skip_special_tokens=True)24        predicted_outcome = label_decoder[predicted_label[0]]25 26        # Display the results27        print(f"Text: {input_text}")28        print(f"Predicted Outcome: {predicted_outcome}")29        print()30        return predicted_outcome  # Add a new line for better readability31 32# Example usage33model_path = "model6"  # Replace with the actual path to your model34device = torch.device("cuda" if torch.cuda.is_available() else "cpu")35tokenizer = DistilBertTokenizer.from_pretrained("distilbert-base-uncased")  # Replace with your desired tokenizer36 37# Load model38model = load_model(model_path, device)39 40 41label_decoder = {0: "Not Hate", 1: "Hate",}42 43 44# Assuming you have label_decoder defined45 46 47import streamlit as st48 49st.title("Hate Speech Detection")50 51user_input = st.text_input("Enter your text:")52if user_input:53    result = run_inference(model, tokenizer, label_decoder, device, user_input)54    st.write("Inference Result:", result)