|
import gradio as gr |
|
from transformers import BertTokenizer, TFBertForSequenceClassification |
|
import tensorflow as tf |
|
import numpy as np |
|
|
|
|
|
model_name = "shobrunjb/spiill-fake-review-product-v2" |
|
tokenizer = BertTokenizer.from_pretrained(model_name) |
|
model = TFBertForSequenceClassification.from_pretrained(model_name) |
|
|
|
def predict(text): |
|
|
|
inputs = tokenizer(text, return_tensors="tf", truncation=True, padding=True, max_length=400) |
|
|
|
|
|
outputs = model(inputs) |
|
|
|
|
|
sentiment_logits = outputs.logits[0].numpy() |
|
review_logits = outputs.logits[1].numpy() |
|
|
|
|
|
sentiment_probs = tf.nn.softmax(sentiment_logits).numpy() |
|
review_probs = tf.nn.softmax(review_logits).numpy() |
|
|
|
|
|
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 |
|
|
|
|
|
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, |
|
) |
|
|
|
|
|
demo.launch() |
|
|