File size: 1,843 Bytes
05f6d24 e0a7e1b 05f6d24 e0a7e1b 05f6d24 e0a7e1b 05f6d24 e0a7e1b 05f6d24 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
import streamlit as st
import pandas as pd
from py_thesaurus import Thesaurus
import random
from transformers import GPT2LMHeadModel, GPT2Tokenizer
# Load GPT-2 model and tokenizer
model = GPT2LMHeadModel.from_pretrained("gpt2")
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
# Function to generate random text using GPT-2
def generate_text(prompt):
inputs = tokenizer.encode(prompt, return_tensors="pt")
outputs = model.generate(inputs, max_length=50, num_return_sequences=1)
return tokenizer.decode(outputs[0])
# Function to replace a random word with its synonym
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!')
# Create thumbs up and thumbs down buttons
thumbs_up = st.button('π')
thumbs_down = st.button('π')
# Initialize upvote and downvote counts
upvotes = 0
downvotes = 0
# Increment upvote or downvote count when corresponding button is clicked
if thumbs_up:
upvotes += 1
elif thumbs_down:
downvotes += 1
# Display upvote and downvote count
st.write(f'π {upvotes} | π {downvotes}')
# Create scoreboard using pandas and display it
scoreboard = pd.DataFrame({'Upvotes': [upvotes], 'Downvotes': [downvotes]})
st.write(scoreboard)
# Save scoreboard to output CSV file
scoreboard.to_csv('output.csv', index=False)
# Generate a random text using GPT-2
prompt = "Tell me a joke:"
original_text = generate_text(prompt)
modified_text = replace_with_synonym(original_text)
# Display the modified text
st.write(f'π€£ {modified_text}')
|