File size: 1,597 Bytes
7f8de92 0934d02 d077642 70f481c 3754612 0f64e73 5d5484f d077642 0f64e73 17bb76c 854d0de a2a9b24 0934d02 17bb76c be6580d a2a9b24 34b533c 17bb76c be6580d 5d5484f 61af1a8 5d5484f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
import streamlit as st
from transformers import pipeline
st.title("Milestone #2 offensive statement prediction with pre-trained models")
st.write("in this basic demo you can select a model to judge whether or not the text below is offensive")
text = "The mail man looks dumb"
st.write(text)
options = ["zero-shot-classification", "cardiffnlp/twitter-roberta-base-offensive", "Greys/milestonemodel"]
model = st.selectbox("Select a pre-trained model", options)
con = st.button("Submit")
if con:
if model == "zero-shot-classification":
classifier = pipeline(model)
res = classifier(text, candidate_labels=["offensive"])
label = res['labels'][0]
score = res['scores'][0]
st.write(f"Prediction: {label}, Score: {score*100}% chance")
if model == "cardiffnlp/twitter-roberta-base-offensive":
classifier = pipeline('text-classification', model='cardiffnlp/twitter-roberta-base-offensive', tokenizer='cardiffnlp/twitter-roberta-base-offensive')
result = classifier(text)
label = result[0]['label']
score = result[0]['score']
st.write(f"Prediction: {label}, Score: {score*100}% chance")
if model == "Greys/milestonemodel":
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("Greys/milestonemodel")
def classify_sentence(sentence):
inputs = tokenizer(sentence, return_tensors="pt")
outputs = model(**inputs)
probs = outputs.logits.softmax(dim=1)
return probs.detach().numpy()[0]
probs = classify_sentence(text)
print(probs)
|