import pandas as pd import json import numpy as np from sklearn.feature_extraction.text import CountVectorizer from sklearn.model_selection import train_test_split from sklearn.naive_bayes import BernoulliNB import streamlit as st # Load the dataset df = pd.read_json('sarcasm.json', lines=True) df = df[["headline", "is_sarcastic"]] df["is_sarcastic"] = df["is_sarcastic"].map({0: "Serious", 1: "Sarcastic/Lie"}) # Train the model x = np.array(df["headline"]) y = np.array(df["is_sarcastic"]) cv = CountVectorizer() X = cv.fit_transform(x) x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=42) model = BernoulliNB() model.fit(x_train, y_train) # Define Streamlit app def main(): st.title('Sarcasm & Lie Detector :clown_face:') st.write('Autism Special Edition') st.image('machine.png') # Input field for user to enter text user_input = st.text_input("Enter text:", "Dogs can fly now") if st.button("Check"): # Make prediction data = cv.transform([user_input]).toarray() prediction = model.predict(data) # Display prediction result st.write("This is ", prediction[0]) st.write('Reference dataframe') st.dataframe(df.head(300)) if __name__ == '__main__': main()