funnyPhani's picture
final updates
6536c32
def data_summarizer(input_eng):
try:
import requests
from bs4 import BeautifulSoup
from googletrans import Translator
import warnings
warnings.filterwarnings("ignore")
from transformers import pipeline
sentiment = pipeline("sentiment-analysis")
from transformers import PegasusForConditionalGeneration, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("google/pegasus-xsum")
warnings.filterwarnings("ignore")
# from gensim.summarization.summarizer import summarize
from gensim.summarization import keywords
from textblob import TextBlob
translator = Translator()
# from transformers import pipeline
# summarizer = pipeline("summarization")
from transformers import PegasusForConditionalGeneration, PegasusTokenizer
from transformers import PegasusForConditionalGeneration, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("google/pegasus-xsum")
# tokenizer = PegasusTokenizer.from_pretrained("google/pegasus-xsum")
model = PegasusForConditionalGeneration.from_pretrained("google/pegasus-xsum")
translation=translator.translate(input_eng, dest = "en")
tokens = tokenizer(translation.text, truncation=True, padding="longest", return_tensors="pt")
# Summarize
summary = model.generate(**tokens)
# Decode summary
text = tokenizer.decode(summary[0]).replace("<pad> ","").replace("</s>","")
# summary = summarizer(translation.text)
# print(summary[0]['summary_text'])
translator = Translator()
# text = summary[0]['summary_text']
# print(keywords(text,words = 5,lemmatize=False))
key = keywords(text,words = 5,lemmatize=False)
# print(key)
translator = Translator()
keys = translator.translate(key, dest = translator.detect(input_eng).lang)
# print("keywords".center(50,"-"))
# print(keys.text,end = " ")
translator = Translator()
out = translator.translate(text, dest = translator.detect(input_eng).lang)
# senti = sentiment(text)[0]['label']
analysis=TextBlob(text)
#print(analysis.polarity)
# print(analysis.sentiment)
# print(f"Sentiment: {'Positive' if analysis.polarity > 0 else 'Negative' if analysis.polarity < 0 else 'Neutral' }")
# return {"Output_summary :":out.text,"Keywords":keys.text.replace("\n",","),"Sentiment":f"{'Positive' if analysis.polarity > 0 else 'Negative' if analysis.polarity < 0 else 'Neutral' }"}
# print(translation.text)
# print(translation.extra_data)
return sentiment(out.text.strip())[0]['label'], keys.text.replace("\n",","), out.text.strip()
except Exception as e:
raise e
# input_eng = input()
# data_summarizer(input_eng)
import gradio as gr
interface = gr.Interface(fn=data_summarizer,
inputs=gr.inputs.Textbox(lines=20, placeholder='Past your input text...'),outputs=['text',"text","text"])
interface.launch(inline = False)