Skip to content

imshawan/PyDictAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyDictAPI GitHub license Latest Version Downloads

PyDictionaryAPI

A simple web-scraping based Dictionary Module for Python

PyDictAPI is a Dictionary Module for Python 3+ to get a detailed and well-structured meanings of a queried word in JSON format. This module can also be used along with Flask/Django backends to make a full-fledged API server.

PyDictAPI searches for the query on the web, if the query matches than it returns the Definitions/Examples/Synonyms/Antonyms as specified by the user. And incase of incorrect words, the response is returned as a suggestion of the correct word.

Sources: Dictionary.com, Thesaurus, Lexico

This module uses Requests and bs4 dependencies to scrape the web and find the definitions and return it in a well-structured JSON document

Installation

PyDictAPI can be easily installed through PIP

pip install PyDictAPI

Dictionary searches

Dictionary searches can be performed by creating a Finder instance which can take a word as argument

For example,

from PyDictAPI import Finder
Meanings = Finder()
print(Meanings.findMeanings('apple'))

This is will create a local instance of the MeaningsFinder class and will return a dictionary containing the meanings of the word.
The Output can be seen as:

{
    'word': 'Apple', 
    'meanings': [
            {
                'partOfSpeech': 'Noun', 
                'definitions': [
                        {
                            'definition': 'The usually round, red or yellow, edible fruit of a small tree, Malus sylvestris, of the rose family.', 
                            'example': ''
                        }
                    ]
            }, 
            {
                'partOfSpeech': 'Noun', 
                'definitions': [
                    {
                        'definition': 'A rosaceous tree, Malus sieversii, native to Central Asia but widely cultivated in temperate regions in many varieties, having pink or white fragrant flowers and firm rounded edible fruits', 
                        'example': ''
                    }
                ]
            }
        ]
}                                                                       

Exceptions

Case - 1: If the word is spelt incorrectly

print(Meanings.findMeanings('helloooo'))

Incase of incorrect words, the response is returned as a suggestion of the correct word
The Response can be seen as:

{
    'message': 'Couldn't find results for helloooo, Did you mean hello?'
}

Case - 2: If the word doesn't exist

print(Meanings.findMeanings('abcdefghijkl'))

The Response can be seen as:

{
    'message': 'Couldn't find any results for ABCDEFGHIJKL, try searching the web...'
}

Finding Examples, Synonyms and Antonyms

print(Meanings.findUsage('help', 2)) #Finding Examples
# Here 2 defines the maximum number of examples to be included in the response, 
# by default it is set to 5

print(Meanings.findSynonyms('help', 4)) #Finding Synonyms
print(Meanings.findAntonyms('help', 4)) #Finding Antonyms

Outputs for Examples, Synonyms and Antonyms

Examples:

{
    'help': ['She helped him find a buyer', 'Long-term funding is desperately being sought for a voluntary service that helps local victims of domestic violence.']
}

Synonyms:

{'help': ['Advice', 'Aid', 'Benefit', 'Comfort']}

Antonyms:

{'help': ['Blockage', 'Encumbrance', 'Handicap', 'Hindrance']}

Using the Translator

from PyDictAPI import Translate
t = Translate()
print(t.languages_help()) # Prints all supported languages

print(t.languages_help(pretty=True))
# Pretty=true returns the list in a well structured manner. By default Pretty is set to False

print(t.translateItems("Hello, How are you?", "hi"))	#	hi: Hindi

# Translates text according to the language code

Output:

{'query': 'Hello, How are you?', 'language_detected': 'Hindi', 'translation': 'नमस्कार किसे हो आप?'}

About

Copyright (c) 2021 Shawan Mandal.