thak123's picture
Update app.py
b911d1f
raw
history blame contribute delete
No virus
2.32 kB
import gradio as gr
import random
import nltk
from nltk.corpus import wordnet
import requests
# Download the Croatian WordNet data
nltk.download("wordnet")
nltk.download("omw")
nltk.download("omw-1.4")
# Function to get the English WordNet synset ID for a Croatian word
def get_english_synset_id(croatian_word):
# Convert the Croatian word to English WordNet synset IDs
synsets = wordnet.synsets(croatian_word, lang="hrv")
print(f"synsets: {synsets}")
# Check if any synsets were found
if synsets:
# Take the first synset (you can modify this to handle multiple synsets if needed)
hrv_synset = synsets[0]
english_synset_id = wordnet.synset_from_pos_and_offset("n", hrv_synset.offset())
return english_synset_id
else:
return None
# Function to get definitions and images from web
def get_definition_and_image(word):
# Define the WordNet synset ID for the concept you're interested in
synset_id = get_english_synset_id(word) #"n07753592" # Replace with the synset ID you want
if not synset_id: return None
return word + ":\n" + synset_id.definition() or ""
# Function to randomly sample a noun or verb
def sample_word_and_display_info(dummy="dummy"):
is_noun = random.choice([True, False]) # Randomly choose noun or verb
if is_noun:
pos = "n"
else:
pos = "v"
# Get a random word of the chosen part of speech from the Croatian WordNet
word = random.choice(list(wordnet.all_lemma_names(pos, lang="hrv")))
print(f"Word: {word}")
# Get the definition and image (change the function for your source)
definition = get_definition_and_image(word)
if definition:
print(f"Word: {word}")
print(f"Part of speech: {'Noun' if is_noun else 'Verb'}")
print(f"Definition: {definition}")
return definition
else:
print(f"No information found for '{word}'")
return f"No information found for '{word}'"
with gr.Blocks() as demo:
text = sample_word_and_display_info()
print(text)
with gr.Row():
text_1 = gr.Textbox(label="text")
button = gr.Button(label="Update Text")
button.click(sample_word_and_display_info,inputs=text_1, outputs=text_1)
demo.launch()