import streamlit as st
import sumy
# using sumy library for summarization
from sumy.parsers.plaintext import PlaintextParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.lex_rank import LexRankSummarizer
from sumy.summarizers.text_rank import TextRankSummarizer
from sumy.nlp.tokenizers import Tokenizer
import pandas as pd
import matplotlib.pyplot as plt
# import seaborn
from transformers import BartForConditionalGeneration, BartTokenizer
from transformers import T5ForConditionalGeneration, T5Tokenizer
from rouge import Rouge
import altair as at
import torch
from Text_analysis import *
from Metadata import *
from app_utils import *
HTML_BANNER = """
Summary app
"""
def main():
menu=['Summarization','Text-Analysis','Meta-Data']
choice=st.sidebar.selectbox("Menu",menu)
if choice=='Summarization':
stc.html(HTML_BANNER)
st.subheader('summarization')
raw_text=st.text_area("Enter the text you want to summarize")
if st.button("Summarize"):
with st.expander("Original Text"):
st.write(raw_text)
c1, c2 = st.columns(2)
with c1:
with st.expander("LexRank Summary"):
summary = sumy_summarizer(raw_text)
document_len={"Original":len(raw_text),
"Summary":len(summary)
}
st.write(document_len)
st.write(summary)
st.info("Rouge Score")
score=evaluate_summary(summary,raw_text)
st.write(score.T)
st.subheader(" ")
score['metrics']=score.index
c=at.Chart(score).mark_bar().encode(
x='metrics',y='rouge-1'
)
st.altair_chart(c)
with c2:
with st.expander("TextRank Summary"):
try:
text_summary=sumy_text_summarizer(raw_text)
document_len={"Original":len(raw_text),
"Summary":len(summary)
}
st.write(document_len)
st.write(text_summary)
st.info("Rouge Score")
score=evaluate_summary(text_summary,raw_text)
st.write(score.T)
st.subheader(" ")
score['metrics']=score.index
c=at.Chart(score).mark_bar().encode(
x='metrics',y='rouge-1'
)
st.altair_chart(c)
except:
st.warning('Insufficient data')
st.subheader("Bart Sumary")
with st.expander("Bart Summary"):
try:
bart_summ = bart_summary(raw_text)
document_len={"Original":len(raw_text),
"Summary":len(summary)
}
st.write(document_len)
st.write(bart_summ)
st.info("Rouge Score")
score=evaluate_summary(bart_summ,raw_text)
st.write(score.T)
st.subheader(" ")
score['metrics']=score.index
c=at.Chart(score).mark_bar().encode(
x='metrics',y='rouge-1'
)
st.altair_chart(c)
except:
st.warning('Insufficient data')
st.subheader("T5 Sumarization")
with st.expander("T5 Summary"):
T5_sum = T5_summary(raw_text)
document_len={"Original":len(raw_text),
"Summary":len(summary)
}
st.write(document_len)
st.write(T5_sum)
st.info("Rouge Score")
score=evaluate_summary(T5_sum,raw_text)
st.write(score.T)
st.subheader(" ")
score['metrics']=score.index
c=at.Chart(score).mark_bar().encode(
x='metrics',y='rouge-1'
)
st.altair_chart(c)
elif choice=='Text-Analysis':
text_analysis()
else:
metadata()
if __name__=='__main__':
main()