Q:

English dictionary application using Python

belongs to collection: Python miscellaneous programs

0

Module used:

In this script, we will use the JSON module because we will use a JSON file and loading requires the JSON module. We will use difflib module.

What is JSON?

JSON (JavaScript Object Notation) is an inbuilt python library which provides us various functions to read and write the file with .json extension and it usually deals with the file which looks like a python dictionary.

What is difflib?

A python inbuilt module that provides us with various functions to compare various sequences in python, from this module we will use the get_close_matches() function which gives us the list of words which are very close to the user's word.

Note: There is a JSON file that you have to download which contains all the words with their meaning but as there are too many words we are not able to access them that's why we will make this script.

Creating An English Dictionary In Python

First of all, we will take the users input as now the user can give us input in any way (.lower manner.upper manner.title manner) so we have to check for every condition, sometimes what happens the user's input didn't get matched with the words in the JSON file. In this case, we will provide similar words for the user's input with the help of get_close_matches() function.

Note: The JSON file must be in the same directory otherwise you have to specify the path of the file.

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Program:

# import modules
import json
from difflib import get_close_matches

# load the data of json file
# (here file name is dict.json)
data=json.load(open("dict.json"))

# create a function to get the the meaning
def Get_meaning(word):
    if word in data:
        # as data will be in the form of dictionary
        # and this condition is to check if the 
        # meaning of the words are more than one 
        # and the value of each key is in the form of list
        if len(data[word])>1:
            # print each meaning
            for i in data[word]:
                print(i)
        # else will print the only element in the list
        else:
            print(data[word][0])
    # we will check the input in all forms
    elif word.lower() in data:
        if len(data[word.lower()])>1:
            # print each meaning
            for i in data[word.lower()]:
                print(i)
        # else will print the only element in the list
        else:
            print(data[word.lower()][0])
    elif word.upper() in data:
        if len(data[word.upper()])>1:
            # print each meaning
            for i in data[word.upper()]:
                print(i)
        # else will print the only element in the list
        else:
            print(data[word.upper()][0])
    elif word.title() in data:
        if len(data[word.title()])>1:
            # print each meaning
            for i in data[word.title()]:
                print(i)
        # else will print the only element in the list
        else:
            print(data[word.title()][0])
    # now if these three doesnt match with the input
    # then we will find the closest match
    else:
        # get close match will return us the list of all
        # close words with the input
        close_match=get_close_matches(word,data.keys())
        # if there are 1 or more elements
        if len(close_match)>0:
            # now we will print the meaning of closest words
            # that is the first element
            decide=input("Enter yes or no to move forward: ")
            if decide=="yes":
                # print the meaning of the closest word
                print(f"The closest word to this is {close_match[0]}")
                for i in data[close_match[0]]:
                    print(i)
            else:
                print("There is no word related to it")
        else:
            print("Cant Found this word")
word=input("Enter the word: ")
Get_meaning(word)

Output:

RUN 1:
Enter the word: Abhi
Enter yes or no to move forward: yes
The closest word to this is Abi
ISO 639-6 entity
A Kwa language spoken by the Abé people primarily 
in the Department of Agboville in Côte d'Ivoire.

RUN 2:
Enter the word: Hello
Expression of greeting used by two or more people who meet each other.

Python | English Dictionary Application Output

The link to Download the JSON dictionary File: https://github.com/abhinav0606/dictionary.py/blob/master/dict.json

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

Python miscellaneous programs

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now
Emotional and Sentiment Analysis with the help of ... >>
<< Corona Virus Live Updates for India (District Wise...