Spaces:
Sleeping
Sleeping
File size: 2,876 Bytes
c56563a 3b911b9 c56563a 3b911b9 c56563a 3b911b9 67d6766 3b911b9 67d6766 3b911b9 c56563a 3b911b9 c56563a 3b911b9 c56563a 3b911b9 67d6766 3b911b9 c56563a 3b911b9 c56563a |
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 41 42 43 44 45 46 47 48 49 |
import torch
from transformers import (PegasusForConditionalGeneration, PegasusTokenizer, pipeline)
import gradio as gr
# Memuat model dan tokenizer untuk PEGASUS dari Hugging Face Model Hub
model = PegasusForConditionalGeneration.from_pretrained("fatihfauzan26/PEGASUS_liputan6")
tokenizer = PegasusTokenizer.from_pretrained("google/pegasus-cnn_dailymail")
# Inisialisasi pipeline untuk tugas ringkasan menggunakan model dan tokenizer yang dimuat
summarizer = pipeline("summarization", model=model, tokenizer=tokenizer)
# Fungsi untuk meringkas artikel
def summarize_article(article):
# Mengubah artikel menjadi token yang bisa diproses oleh model (konversi teks ke representasi numerik)
input_ids = tokenizer.encode(article, return_tensors='pt')
# Menghasilkan ringkasan dari artikel dengan berbagai pengaturan model untuk kualitas output
summary_ids = model.generate(input_ids,
min_length=30, # Panjang minimal ringkasan
max_length=128, # Panjang maksimal ringkasan
num_beams=8, # Beam search untuk meningkatkan hasil ringkasan
repetition_penalty=2.0, # Penalti untuk pengulangan kata
length_penalty=0.8, # Penalti terkait panjang hasil
early_stopping=True, # Menghentikan proses jika hasil cukup bagus
no_repeat_ngram_size=2, # Menghindari pengulangan frasa yang sama
use_cache=True, # Menggunakan cache untuk efisiensi
do_sample=True, # Mengambil sampel untuk variasi
temperature=1.2, # Mengontrol randomness dari hasil
top_k=50, # Mempertimbangkan 50 kemungkinan token teratas
top_p=0.95) # Mengambil token yang memiliki probabilitas kumulatif 95%
# Mengubah token output menjadi teks ringkasan (decode dari token ke teks)
summary_text = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
# Mengembalikan teks ringkasan
return summary_text
# Membuat antarmuka Gradio
iface = gr.Interface(
fn=summarize_article, # Fungsi yang dijalankan saat pengguna memberikan input
inputs=gr.Textbox(lines=10, label="Enter the article you want to summarize"), # Input berupa kotak teks
outputs=gr.Textbox(label="Summary"), # Output berupa kotak teks untuk menampilkan ringkasan
title="Summarization App using PEGASUS", # Judul aplikasi
description="Paste an article and click 'Submit' to get a summarized version using PEGASUS model." # Deskripsi aplikasi
)
# Meluncurkan aplikasi Gradio sehingga bisa diakses di browser
iface.launch()
|