Spaces:
Runtime error
Runtime error
File size: 3,248 Bytes
ae4ea47 053844b e1c22c9 053844b 3e994a1 053844b 7099fbc ae4ea47 053844b a36aeae 81136e1 3e994a1 81136e1 6bf846d |
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
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")
# Check if any synsets were found
if synsets:
# Take the first synset (you can modify this to handle multiple synsets if needed)
english_synset_id = synsets[0].name()
return english_synset_id
else:
return None
# Function to get definitions and images from web
def get_definition_and_image(word):
# try:
# # You may need to adjust this URL based on the source of definitions and images
# url = f"https://your-dictionary-website.com/{word}"
# response = requests.get(url)
# soup = BeautifulSoup(response.text, "html.parser")
# # Extract definition and image (assuming they are in specific HTML elements)
# definition = soup.find("div", {"class": "definition"}).text
# image_url = soup.find("img", {"class": "word-image"})["src"]
# return definition, image_url
# except Exception as e:
# return None, None
# 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
# URL for the ImageNet API
base_url = "http://www.image-net.org/api/text/imagenet.synset.geturls?wnid="
# Combine the base URL and the synset ID to get a list of image URLs
url = base_url + synset_id
# Send a GET request to the URL
response = requests.get(url)
if response.status_code == 200:
# Parse the response to get a list of image URLs
image_urls = response.text.splitlines()
# Print the first 10 image URLs
for i, url in enumerate(image_urls[:10], start=1):
print(f"Image {i}: {url}")
else:
print(f"Failed to retrieve image URLs. Status code: {response.status_code}")
# Function to randomly sample a noun or verb
def sample_word_and_display_info():
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(wordnet.all_lemma_names(pos, lang="hrv"))
# Get the definition and image (change the function for your source)
definition, image_url = get_definition_and_image(word)
if definition and image_url:
print(f"Word: {word}")
print(f"Part of speech: {'Noun' if is_noun else 'Verb'}")
print(f"Definition: {definition}")
print(f"Image URL: {image_url}")
return image_url ,definition
else:
print(f"No information found for '{word}'")
return none,none
def sample():
return sample_word_and_display_info()
iface = gr.Interface(fn=sample, inputs="text", outputs="image, text")
iface.launch()
|