Priyanka-Kumavat's picture
Update app.py
41e3df6
from heapq import nlargest
import spacy
from spacy.lang.en.stop_words import STOP_WORDS
from string import punctuation
import gradio as gr
# Stopwords
stopwords = list(STOP_WORDS)
nlp = spacy.load('en_core_web_sm')
punctuation = punctuation + '\n'
import spacy
from spacy.lang.en.stop_words import STOP_WORDS
from string import punctuation
# Prediction
def prediction(text):
doc = nlp(text)
len1 = len(text)
tokens = [token.text for token in doc]
word_frequencies = {}
for word in doc:
if word.text.lower() not in stopwords:
if word.text.lower() not in punctuation:
if word.text not in word_frequencies.keys():
word_frequencies[word.text] = 1
else:
word_frequencies[word.text] += 1
max_frequency = max(word_frequencies.values())
for word in word_frequencies.keys():
word_frequencies[word] = word_frequencies[word]/max_frequency
sentence_tokens = [sent for sent in doc.sents]
sentence_scores = {}
for sent in sentence_tokens:
for word in sent:
if word.text.lower() in word_frequencies.keys():
if sent not in sentence_scores.keys():
sentence_scores[sent] = word_frequencies[word.text.lower()]
else:
sentence_scores[sent] += word_frequencies[word.text.lower()]
select_length = int(len(sentence_tokens)*0.3)
summary = nlargest(select_length, sentence_scores, key = sentence_scores.get)
org_len = len(text.split(' '))
summary = (str(summary[0]))
sum_len = len(summary.split(' '))
return summary,org_len,sum_len
EXAMPLES = [["""What type of language is Python? Python is an interpreted, object-oriented, high-level programming language with dynamic semantics developed by
Guido van Rossum. It was originally released in 1991. Designed to be easy as well as fun, the name "Python" is a nod to the British comedy group Monty Python.
Python has a reputation as a beginner-friendly language, replacing Java as the most widely used introductory language because it handles much of the complexity
for the user, allowing beginners to focus on fully grasping programming concepts rather than minute details. Python is used for server-side web development,
software development, mathematics, and system scripting, and is popular for Rapid Application Development and as a scripting or glue language to tie existing
components because of its high-level, built-in data structures, dynamic typing, and dynamic binding. Program maintenance costs are reduced with Python due to
the easily learned syntax and emphasis on readability. Additionally, Python's support of modules and packages facilitates modular programs and reuse of code.
Python is an open source community language, so numerous independent programmers are continually building libraries and functionality for it.
"""],["""Machine learning is an application of artificial intelligence that uses statistical techniques to enable computers to learn and make decisions without
being explicitly programmed. It is predicated on the notion that computers can learn from data, spot patterns, and make judgments with little assistance from humans.
It is a subset of Artificial Intelligence. It is the study of making machines more human-like in their behavior and decisions by giving them the ability to learn and
develop their own programs. This is done with minimum human intervention, i.e., no explicit programming. The learning process is automated and improved based on
the experiences of the machines throughout the process.Good quality data is fed to the machines, and different algorithms are used to build ML models to train the
machines on this data. The choice of algorithm depends on the type of data at hand and the type of activity that needs to be automated. """],["""Natural language processing (NLP)
refers to the branch of computer science—and more specifically, the branch of artificial intelligence or AI—concerned with giving computers the ability to understand
text and spoken words in much the same way human beings can. NLP combines computational linguistics—rule-based modeling of human language—with statistical, machine
learning, and deep learning models. Together, these technologies enable computers to process human language in the form of text or voice data and to ‘understand’
its full meaning, complete with the speaker or writer’s intent and sentiment. NLP drives computer programs that translate text from one language to another,
respond to spoken commands, and summarize large volumes of text rapidly—even in real time. There’s a good chance you’ve interacted with NLP in the form of
voice-operated GPS systems, digital assistants, speech-to-text dictation software, customer service chatbots, and other consumer conveniences.
But NLP also plays a growing role in enterprise solutions that help streamline business operations, increase employee productivity, and simplify mission-critical
business processes."""]]
DESCRIPTION = """This Hugging Face's Document Summarization app utilizes a pre-trained model trained on web text to quickly and effectively condense lengthy documents
into concise one to two-paragraph summaries. This is invaluable for organizations handling vast volumes of text, such as law firms,
where the need for efficient and accurate document summarization is critical."""
outputs = [
gr.Textbox(lines =5,label = "Summarization of Document"),
gr.Number(label="Word Count of given Document"),
gr.Number(label="Word Count of Summarized Document")
]
demo_app = gr.Interface(
fn=prediction,
inputs=gr.Textbox(lines =10,label = " Enter the Text", max_lines = 20),
outputs= outputs,
title = "Document Summarization",
examples = EXAMPLES,
description = DESCRIPTION,
#cache_example = True,
#live = True,
theme = 'huggingface'
)
#if __name__ == "__main__":
demo_app.launch()
#demo_app.launch(debug=True, enable_queue = True)