|
import streamlit as st |
|
import nltk |
|
import pandas as pd |
|
from py_thesaurus import Thesaurus |
|
import random |
|
|
|
|
|
@st.cache |
|
def load_nltk_data(): |
|
nltk.download('book') |
|
from nltk.book import text1 |
|
|
|
return text1 |
|
|
|
|
|
def generate_text(): |
|
text = load_nltk_data() |
|
words = [word.lower() for word in text if word.isalpha()] |
|
random_text = ' '.join(nltk.choice(words) for _ in range(10)) |
|
|
|
return random_text |
|
|
|
|
|
def replace_with_synonym(sentence): |
|
words = sentence.split() |
|
index = random.randint(0, len(words) - 1) |
|
word = words[index] |
|
synonyms = Thesaurus(word).get_synonym() |
|
|
|
if synonyms: |
|
replacement = random.choice(synonyms) |
|
words[index] = replacement |
|
|
|
return ' '.join(words) |
|
|
|
st.title('Joke Parts Voting Game') |
|
st.write('Upvote or downvote the funny joke parts generated below!') |
|
|
|
|
|
thumbs_up = st.button('π') |
|
thumbs_down = st.button('π') |
|
|
|
|
|
upvotes = 0 |
|
downvotes = 0 |
|
|
|
|
|
if thumbs_up: |
|
upvotes += 1 |
|
elif thumbs_down: |
|
downvotes += 1 |
|
|
|
|
|
st.write(f'π {upvotes} | π {downvotes}') |
|
|
|
|
|
scoreboard = pd.DataFrame({'Upvotes': [upvotes], 'Downvotes': [downvotes]}) |
|
st.write(scoreboard) |
|
|
|
|
|
scoreboard.to_csv('output.csv', index=False) |
|
|
|
|
|
original_text = generate_text() |
|
modified_text = replace_with_synonym(original_text) |
|
|
|
|
|
st.write(f'π€£ {modified_text}') |
|
|