from transformers import GPT2LMHeadModel, GPT2Tokenizer
import streamlit as st
import torch
# import yake
# from rake_nltk import Rake
# rake_nltk_var = Rake()
st.set_page_config(
page_title="Khayal-Writing Tool App"
)
st.sidebar.success("Select an App")
#
# page_bg_img = """
#
""",
unsafe_allow_html=True
)
add_bg_from_url()
#primaryColor="#F63366"
#backgroundColor="#FFFFFF"
#secondaryBackgroundColor="#F0F2F6"
textColor="#262730"
font="Serif"
#
# base="dark"
# primaryColor="purple"
#st.title("Khayal- Writing Tool ")
st.markdown("
Khayal- Writing Tool
", unsafe_allow_html=True)
st.write("This writing tool currently has two applications within it, poem generation and text summarizer."
" To summarize text you can use 'Summarizer from the sidebar. ")
st.header("Poem Generation")
st.markdown("This is a poem generator app. you can use it to create poems by providing text to it.")
@st.cache(allow_output_mutation=True)
def get_model():
tokenizer = GPT2Tokenizer.from_pretrained("Silvers-145/khayal-generate")
model = GPT2LMHeadModel.from_pretrained("Silvers-145/khayal-generate")
return tokenizer, model
tokenizer,model = get_model()
# # load the model
# #model = GPT2LMHeadModel.from_pretrained("Silvers-145/khayal-generate")
# #tokenizer = GPT2Tokenizer.from_pretrained("Silvers-145/khayal-generate")
#model.eval()
#prompt = input("Enter the start of poem here:")
#button = st.button("Create")
prompt = st.text_input("Enter Text:",placeholder="Enter The text here")
click = st.button("Create")
if click and prompt:
generated = torch.tensor(tokenizer.encode(prompt)).unsqueeze(0)
sample_outputs = model.generate(
generated,
do_sample=True,
top_k=50,
max_length=300,
top_p=0.95,
num_return_sequences=3
)
for i, sample_output in enumerate(sample_outputs):
poemm = tokenizer.decode(sample_output, skip_special_tokens=True)
# print("{}: {}\n\n".format(i,
st.text_area("Generated Poem:", poemm,height=250)
# st.snow()
st.success("Poem Generated")
# kw_extractor = yake.KeywordExtractor()
# text = poemm
# language = "en"
# max_ngram_size = 3
# deduplication_threshold = 0.9
# numOfKeywords = 5
# custom_kw_extractor = yake.KeywordExtractor(lan=language, n=max_ngram_size, dedupLim=deduplication_threshold, top=numOfKeywords, features=None)
# keywords = custom_kw_extractor.extract_keywords(text)
# for kw in keywords:
# print(kw)
# from rake_nltk import Rake
# rake_nltk_var = Rake()
# rake_nltk_var.extract_keywords_from_text(poemm)
# kw = rake_nltk_var.get_ranked_phrases()
# st.t