Skip to content

PyMultiDictionary is a dictionary module that gets meanings, translations, synonyms, and antonyms of words in 20 different languages

License

Notifications You must be signed in to change notification settings

ppizarror/PyMultiDictionary

Repository files navigation

PyMultiDictionary

@ppizarror License MIT Python 3.7 PyPi package Build status FOSSA Status Codecov Open issues PyPi downloads Total downloads Buy me a Ko-fi

PyMultiDictionary is a dictionary module for Python 3 to get meanings, translations, synonyms and antonyms of words in 20 different languages. It uses educalingo.com, synonym.com, and WordNet for getting meanings, translations, synonyms, and antonyms.

Supported languages

  • Bengali (bn)
  • German (de)
  • English (en)
  • Spanish (es)
  • French (fr)
  • Hindi (hi)
  • Italian (it)
  • Japanese (ja)
  • Javanese (jv)
  • Korean (ko)
  • Marathi (mr)
  • Malay (ms)
  • Polish (pl)
  • Portuguese (pt)
  • Romanian (ro)
  • Russian (ru)
  • Tamil (ta)
  • Turkish (tr)
  • Ukranian (uk)
  • Chinese (zh)

Install Instructions

PyMultiDictionary can be installed via pip, for both MacOS, Windows & Linux. Simply run:

$> python3 -m pip install --upgrade PyMultiDictionary

Usage

PyMultiDictionary can be utilized in 2 ways, either by creating a dictionary instance which can take words as arguments or by creating a dictionary instance with a fixed amount of words.

Create a dictionary object:

For example,

from PyMultiDictionary import MultiDictionary
dictionary = MultiDictionary()

This will create a local instance of the MultiDictionary class, and now it can be used to get meanings, translations, etc.

For Meanings,

print(dictionary.meaning('en', 'good'))

This will return a tuple containing the meanings of the word, in the format (word_type, word_meaning, word_wikipedia). For example, the above code will return:

(['Noun', 'Adjective', 'Exclamation'],
 'The first definition of good in the dictionary is having admirable  ...',
 'Good may refer to: ▪ Good and evil, the distinction between positive...')

All methods support other dictionaries, for example, 'wordnet' can be used for English words.

from PyMultiDictionary import DICT_WORDNET
dictionary = MultiDictionary()
print(dictionary.meaning('en', 'good', dictionary=DICT_WORDNET))

Will return:

{
    'Noun': ['benefit', 'moral excellence or admirableness', ...],
    'Adjective': ['morally admirable', ...],
    'Adverb': [...]
}

For Synonyms,

print(dictionary.synonym('es', 'Bueno'))

This will return a list containing the Synonyms of the word.

For Antonyms,

print(dictionary.antonym('en', 'Life'))

This will return a list containing the Antonyms of the word. Currently, only English is supported.

For Translations,

print(dictionary.translate('en', 'Range'))

This will return the word 'Range' translation in 20 different languages. You can also extend the scope of the translations by providing a target language, which will use Google Translate API, for example:

print(dictionary.translate('en', 'Range', to='ru'))

Alternatively, you can set a fixed number of words to the Dictionary Instance. This is helpful if you want to get the meanings of some words quickly without any development need.

Example:

from PyMultiDictionary import MultiDictionary, DICT_EDUCALINGO

dictionary=MultiDictionary('hotel', 'ambush', 'nonchalant', 'perceptive')
dictionary.set_words_lang('en') # All words are English

print(dictionary.get_meanings(dictionary=DICT_EDUCALINGO)) # This print the meanings of all the words
print(dictionary.get_synonyms()) # Get synonyms list
print(dictionary.get_antonyms()) # Get antonyms
print(dictionary.get_translations()) # This will translate all words to over 20 languages
print(dictionary.get_translations(to='ru')) # This will translate all words to Russian (if Google API is available)

Supported dictionaries

  • DICT_EDUCALINGO: Meaning, synonym, translation for all languages
  • DICT_SYNONYMCOM: Synonyms and Antonyms (English)
  • DICT_THESAURUS: Synonyms (English)
  • DICT_WORDNET: Meanings (English)

There are many more dictionaries to come. Just contribute to this repo!

Author

Pablo Pizarro R. | 2021 - 2024