Spaces:
Runtime error
Runtime error
| import urllib.request | |
| import random | |
| import gradio | |
| def download_data(): | |
| page = urllib.request.urlopen('https://raw.githubusercontent.com/mazyvan/most-common-spanish-words/master/most-common-spanish-words-v5.txt').read().decode() | |
| words = page.split('\n') | |
| len_to_words = {} | |
| for word in words: | |
| if len(word) not in len_to_words: | |
| len_to_words[len(word)] = [word] | |
| else: | |
| len_to_words[len(word)].append(word) | |
| len_to_words[2] = get_syllabes() | |
| return len_to_words | |
| def get_syllabes(): | |
| syllabes = set() | |
| vowels = 'aeiou' | |
| consonants = 'bcdfghjklmnpqrstvwxyz' | |
| for consonant in consonants: | |
| for vowel in vowels: | |
| if consonant in 'gq' and vowel in 'ei': | |
| syllabes.add(consonant + 'u' + vowel) | |
| else: | |
| syllabes.add(consonant + vowel) | |
| remove = ['qu', 'qa', 'qi', 'qo', 'qu'] | |
| syllabes = sorted(list(syllabes.difference(remove))) | |
| print(syllabes) | |
| return syllabes | |
| def get_random_word(n_letters, forbidden_letters='', required_letters=''): | |
| random.shuffle(LEN_TO_WORDS[n_letters]) | |
| for word in LEN_TO_WORDS[n_letters]: | |
| lower_word = word.lower() | |
| if any(letter in lower_word for letter in forbidden_letters.lower()): | |
| continue | |
| if required_letters: | |
| if all(letter in lower_word for letter in required_letters.lower()): | |
| return '# ' + word | |
| else: | |
| return '# ' + word | |
| LEN_TO_WORDS = download_data() | |
| description = """ | |
| Genera palabras aleatorias con el número deseado de letras para aprender a leer. | |
| Se puede forzar a que las palabras tengan o no tengan determinadas letras | |
| """ | |
| interface = gradio.Interface( | |
| get_random_word, | |
| inputs=[gradio.Slider(2, 15, value=5, step=1, label='Número de letras'), | |
| gradio.Textbox(label='Letras prohibidas'), | |
| gradio.Textbox(label='Letras obligatorias')], | |
| #outputs=[gradio.Textbox(label='')], | |
| outputs=[gradio.Markdown(label='')], | |
| title='Aprende a leer', | |
| description=description, | |
| allow_flagging=False) | |
| interface.launch(server_name="0.0.0.0") | |