Există o modalitate de a nu primi falsă pentru definiția unui cuvânt cu modulul de vocabular? (Programare, Python, Python 3.X, Vocabular)

PhonieZGaminZ a intrebat.

Fac un script care ia un cuvânt aleatoriu și obține definiția cuvântului, apoi l-ar converti în vorbire și l-ar reda, dar din anumite motive, de fiecare dată când încerc să obțin definiția cuvântului, acesta returnează doar fals, există vreo modalitate de a rezolva acest lucru?

Notă: Folosesc vocabularul pentru a obține definiția cuvântului și cuvinte aleatorii pentru a obține cuvântul aleatoriu care va fi definit.

Script:

from gtts import gTTS
import subprocess
import time
import os
from random_word import RandomWords
from vocabulary.vocabulary import Vocabulary as vb
#Defining some variables and stuff
r = RandomWords()
#this gets the random word and checks if it has a dictionary definition, and makes the audio file
randword = r.get_random_word(hasDictionaryDef="true")
file = randword+' Definition.mp3'
#this part gets the meaning and converts the meaning into a string so it can say the text
todefine = vb.meaning(randword)
texty = str(todefine)
#What makes the text, then plays it
def PlayText():
        #this part makes the file
        language = 'en'
        myobj = gTTS(text=texty, lang=language, slow=False) 
        myobj.save(file)
        time.sleep(1)
        #these prints are for debugging, randword is the random word, todefine is the definition
        print(randword)
        #texty is probably false, unless this has been fixed, and actaully define sthe word.
        print(texty)
        subprocess.call(file, shell=True)

#this just calls the function where everything is happening
PlayText()

Mulțumesc pentru că ați citit acest lucru, iar dacă ați încercat să ajutați, super mulțumesc!

Comentarii

  • Atunci când aveți probleme cu o bibliotecă terță parte, vă rugăm să verificați întotdeauna mai întâi documentația și issue tracker-ul acelei biblioteci. În acest caz, se pare că raportați o problemă deschisă: github.com/tasdikrahman/vocabulary/issues/70 –  > Por Adriaan Tijsseling.
  • Oh, da, îmi pare rău pentru greșeala de scriere a definiției din titlu –  > Por PhonieZGaminZ.
  • Oh ok, nu știam asta, mulțumesc! –  > Por PhonieZGaminZ.
1 răspunsuri
PhonieZGaminZ

Ei bine, se pare că vocabularul este de fapt stricat, deoarece API-ul pe care se bazează pentru a obține definiția a tăiat suportul de la el, așa că soluția este de fapt să folosești altceva, cum ar fi pydictionary, mulțumesc tuturor celor care au încercat să ajute și să ai o zi bună, sau o noapte bună, în funcție de unde ești. Aici este linkul către locul de unde am obținut informațiile, mulțumesc lui Adriaan pentru că mi-a oferit acest lucru, https://github.com/tasdikrahman/vocabulary/issues/70.

Aici este codul fixat:

#The things i import
from gtts import gTTS
import subprocess
import time
import os
from random_word import RandomWords
from PyDictionary import PyDictionary
#Defining some variables and stuff
r = RandomWords()
#this gets the random word and checks if it has a dictionary definition, and makes the audio file
dictionary=PyDictionary()
randword = r.get_random_word(hasDictionaryDef="true")
file = randword+' Definition.mp3'
#this part gets the meaning and converts the meaning into a string so it can say the text
todefine = dictionary.meaning(randword)
texty = str(todefine)
#What makes the text, then plays it
def PlayText():
        #this part makes the file
        language = 'en'
        myobj = gTTS(text=texty, lang=language, slow=False) 
        myobj.save(file)
        time.sleep(1)
        #these prints are for debugging, randword is the random word, todefine is the definition
        print(randword)
        #texty is probably false, unless this has been fixed, and actaully define sthe word.
        print(texty)
        subprocess.call(file, shell=True)

#this just calls the function where everything is happening
PlayText()