shobrunjb's picture
1st
8c23fe3 verified
raw
history blame
2.64 kB
import gradio as gr
from transformers import BertTokenizer, TFBertForSequenceClassification
import tensorflow as tf
import numpy as np
# Load model and tokenizer from Hugging Face Hub
model_name = "shobrunjb/spiill-fake-review-product-v2"
tokenizer = BertTokenizer.from_pretrained(model_name)
model = TFBertForSequenceClassification.from_pretrained(model_name)
def predict(text):
# Tokenize input text
inputs = tokenizer(text, return_tensors="tf", truncation=True, padding=True, max_length=400)
# Predict with the model
outputs = model(inputs)
# Get predictions for sentiment and review label
sentiment_logits = outputs.logits[0].numpy()
review_logits = outputs.logits[1].numpy()
# Convert logits to probabilities using softmax
sentiment_probs = tf.nn.softmax(sentiment_logits).numpy()
review_probs = tf.nn.softmax(review_logits).numpy()
# Convert logits to class labels
sentiment_label_map = {0: 'negative', 1: 'neutral', 2: 'positive'}
review_label_map = {0: 'fake', 1: 'trusted', 2: 'non'}
sentiment_pred = {sentiment_label_map[i]: f"{sentiment_probs[i]*100:.2f}%" for i in range(3)}
review_pred = {review_label_map[i]: f"{review_probs[i]*100:.2f}%" for i in range(3)}
return sentiment_pred, review_pred
# Create Gradio interface
with gr.Blocks() as demo:
gr.Markdown("# Spiill- Deteksi Fake Review Produk")
gr.Markdown("Model ini memprediksi dan menganalsis review produk dengan multi task learning ")
with gr.Row():
input_text = gr.Textbox(label="Input", placeholder="Masukkan teks di sini...", lines=4)
sentiment_output = gr.JSON(label="Sentimen (dengan Presentase)")
review_output = gr.JSON(label="Label Review (dengan Presentase)")
submit_btn = gr.Button("Submit")
submit_btn.click(fn=predict, inputs=input_text, outputs=[sentiment_output, review_output])
gr.Markdown("### Contoh Kalimat:")
gr.Examples(
examples=["Bibirku lagi iritasi parah. Kering, gatal, dan mengelupas sampai luka. Diolesin mediheal ini langsung membaik dalam 2 hari. Bibirku jadi gak patchy lagi dan lukanya sembuh.",
"Lip balm dengan 100,000ppm Panthenol, shea butter, beragam plant oil yang efektif untuk melembapkan bibir sangat kering, pecah-pecah, dan menghaluskan bibir.",
"AKU CINTA BANGET BANGET beneran bantuuu rambut aku pas lagi rontok rontoknya 😭😭🀞🏻 tujuanku make cuma buat ilangin botak tapi surprisingly bikin rambut makin halus juga omg HIDDEN GEM kata aku"],
inputs=input_text,
)
# Launch the interface
demo.launch()