abdulmatinomotoso's picture
Update app.py
9a94dba verified
#importing the necessary library
import re
import nltk
import torch
import numpy as np
import gradio as gr
from nltk.tokenize import sent_tokenize
from transformers import pipeline
nltk.download("punkt")
#initailizing the model pipeline
from transformers import BartTokenizer, BartForConditionalGeneration
model = BartForConditionalGeneration.from_pretrained("facebook/bart-large-cnn")
tokenizer = BartTokenizer.from_pretrained("facebook/bart-large-cnn")
# Defining a function to read in the text file
def read_in_text(url):
with open(url, "r") as file:
article = file.read()
return article
#Defining a function to get the summary of the article
def final_summary(file):
#reading in the text and tokenizing it into sentence
text = read_in_text(file.name)
chunks = sent_tokenize(text)
output = []
#looping through the sentences in a batch of 10 and summarizing them
for i in range(0,len(chunks), 10):
sentence = ' '.join(chunks[i:i+10])
inputs = tokenizer(sentence, max_length=1024, return_tensors="pt")
summary_ids = model.generate(inputs["input_ids"])
summary = tokenizer.batch_decode(summary_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
output.append(summary)
#joining all the summary output together
summary = " ".join(output)
lines1 = sent_tokenize(summary)
for i in range(len(lines1)):
lines1[i] = "* " + lines1[i].strip().replace(" .", ".")
summ_bullet1 = "\n".join(lines1)
return summ_bullet1
#creating an interface for the headline generator using gradio
demo = gr.Interface(final_summary, inputs=[gr.File(label="Drop your .txt file here")],
title = "ARTICLE SUMMARIZER",
outputs=[gr.Textbox(label="Summary")],
theme= "darkhuggingface")
#launching the app
if __name__ == "__main__":
demo.launch(debug=True)