0% found this document useful (0 votes)
34 views17 pages

English Dictionary: Department of Computer Engineering

This micro-project report describes the development of an English dictionary application using Python. The application will include a graphical user interface with a search bar to look up words and a display area to show definitions. Definitions will be retrieved from a JSON file using the json module. The pyttsx module will be used to add text-to-speech functionality so the application can speak words and definitions. The difflib module will help find close matches for misspelled words and provide suggestions to the user. The application aims to help students learn word meanings in an easy way.

Uploaded by

irfan Nadaf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views17 pages

English Dictionary: Department of Computer Engineering

This micro-project report describes the development of an English dictionary application using Python. The application will include a graphical user interface with a search bar to look up words and a display area to show definitions. Definitions will be retrieved from a JSON file using the json module. The pyttsx module will be used to add text-to-speech functionality so the application can speak words and definitions. The difflib module will help find close matches for misspelled words and provide suggestions to the user. The application aims to help students learn word meanings in an easy way.

Uploaded by

irfan Nadaf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

Shree Ambabai Talim Sanstha’s

SANJAY BHOKARE GROUP OF INSTITUTES, MIRAJ


FACULTY OF POLYTECHNIC
Institute Code: 1552

Department Of computer Engineering


Micro Project Report
On

English Dictionary
Prepared By

Roll no. Enrolment No. Name


3309 2015520025 Irfan Mahibub Nadaf
3310 2015520016 Sanam Samir Nadaf
3311 2015520017 Noorjahan Alamgir Qazi
3312 2115520114 Prachi Pramod Potadar
3322 1915520022 Abhishek Subhash chougule

Under the Guidance of


Name Of Faculty

Submitted To

Maharashtra State Board of Technical Education, Mumbai


(Autonomous) (ISO-9001-2008) (ISO/IEC 27001:2013)
Academic Year 2020-2021

1
MAHARASHTRA STATE
BOARD OF TECHNICAL EDUCATION
Certificate
(Only for individual micro project report)

This is to certify that Mr. / Ms. ………………………………………………………


Roll No. ……………….…., of ………... Semester of Diploma
in………………….. Engineering , of Institute ATS Sanjay Bhokare Group Of
Institutes, Faculty Of Polytechnic, Miraj. (Code: 1552) has completed the Micro-
Project work satisfactorily in course ………………………………. ( ) for
the academic year 20…….. to 20…….. as prescribed in the curriculum.

Place: …………… Enrollment No:.……………

Date: …………… Exam. Seat No: ……………

Subject Teacher Head of the Department Principal

2
MAHARASHTRA STATE
BOARD OF TECHNICAL EDUCATION
Certificate
(Only for Micro Project Group report )

This is to certify that following students,

Roll no. Enrolment No. Exam Seat No. Name

3309 2015520025 Irfan Mahibub nadaf

3310 201520016 Sanam Samir nadaf

3311 2015520017 Noorjahan Alamgir qazi

3312 2115520114 Prachi Pramod potadar

3322 1915520022 Abhishek Subhash Chougule

of …….. Semester of Diploma in………………….. Engineering , of Institute


ATS Sanjay Bhokare Group Of Institutes, Faculty Of Polytechnic, Miraj.
(Code: 1552) are completed the Micro Project work satisfactorily in course
………………………………. ( ) for the academic year 20…….. to 20……
as prescribed in the curriculum.

Place: ……………
Date: ……………

Subject Teacher Head of the Department Principal

3
Annexure – I
Format for Micro-Project Proposal in about 2 to 3 pages to be submitted at end of first two weeks of
the semester

PART A – Micro-Project Proposal

English dictionary using python

1.0 Brief Introduction


In this micro-project we will prepare a GUI for an English Dictionary.
We are going to create GUI using tkinter module the GUI having search bar to search words and it
has display area to show its meaning.
We use the method json to read and load data from Json file that contains word definitions.
We use method pyttsx for text-to-speech functionality to enable the program to speak the word and
meaning.
We use method difflib to find close matches for words that are not found in the dictionary and to
provide suggestions to the user.

2.0 Aim of the Micro-Project ( in about 1 to 2 Sentences)


This Micro-Project aims at:
The aim of this project is to build an English Dictionary project for the students to know meaning of
the words in easy way.

3.0 Intended Course Outcome


a) Develop functions for given problem.
b) Develop python program to demonstrate use of Operators.
4.0 Literature Review
The age of the Internet brought online dictionaries to the desktop and, more recently, to the
smart phone. David Skinner in 2013 noted that "Among the top ten lookups on Merriam-Webster
Online at this moment are holistic, pragmatic, caveat, esoteric and bourgeois. Teaching users about
words they don't already know has been, historically, an aim of lexicography, and modern
dictionaries do this well.
A dictionary is a listing of lexemes from the lexicon of one or more specific languages, often
arranged alphabetically (or by radical and stroke for ideographic languages), which may include
information on definitions, usage, etymologies, pronunciations, translation, etc.[1][2][3] It is a
lexicographical reference that shows inter-relationships among the data.[4]

A broad distinction is made between general and specialized dictionaries. Specialized dictionaries
include words in specialist fields, rather than a complete range of words in the language. Lexical
items that describe concepts in specific fields are usually called terms instead of words, although

4
there is no consensus whether lexicology and terminology are two different fields of study. In theory,
general dictionaries are supposed[citation needed] to be semasiological, mapping word to definition,
while specialized dictionaries are supposed to be onomasiological, first identifying concepts and then
establishing the terms used to designate them. In practice, the two approaches are used for both types.
[5] There are other types of dictionaries that do not fit neatly into the above distinction, for instance
bilingual (translation) dictionaries, dictionaries of synonyms (thesauri), and rhyming dictionaries.
The word dictionary (unqualified) is usually understood to refer to a general purpose monolingual
dictionary.[6]

There is also a contrast between prescriptive or descriptive dictionaries; the former reflect what is
seen as correct use of the language while the latter reflect recorded actual use. Stylistic indications
(e.g. "informal" or "vulgar") in many modern dictionaries are also considered by some to be less than
objectively descriptive.[7]

Reference:

 Bergenholtz, Henning; Tarp, Sven, eds. (1995). Manual of Specialised Lexicography: The


Preparation of Specialised Dictionaries. Amsterdam: John Benjamins Publishing. ISBN 90-
272-1612-6.
 Erdmann, Peter; Cho, See-Young. "A Brief History of English Lexicography". Technische
Universität Berlin. Archived from the original on 9 March 2008. Retrieved 17 December 2010.

4.0 Proposed Methodology


(Procedure in brief that will be followed to do the micro-project) in about 200 to 500 ]

Program:
from tkinter import *
from tkinter import messagebox
import json
import pyttsx3
from difflib import get_close_matches

engine=pyttsx3.init()

def wordaudio():
    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[0].id)
    engine.say(enterwordentry.get())
    engine.runAndWait()

def  meaningaudio():
    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[1].id)
    engine.say(textarea.get(1.0,END))

5
    engine.runAndWait()

def iexit():
    res = messagebox.askyesno('Confirm', 'Do you want to exit?')
    if res == True:
        root.destroy()

    else:
        pass

def clear():
    textarea.config(state=NORMAL)
    enterwordentry.delete(0, END)
    textarea.delete(1.0, END)
    textarea.config(state=DISABLED)

def search():
    data = json.load(open('data.json'))
    word = enterwordentry.get()

    word = word.lower()

    if word in data:
        meaning = data[word]

        textarea.config(state=NORMAL)
        textarea.delete(1.0, END)
        for item in meaning:
            textarea.insert(END, u'\u2022' + item + '\n\n')

        textarea.config(state=DISABLED)

    elif len(get_close_matches(word, data.keys())) > 0:

        close_match = get_close_matches(word, data.keys())[0]

        res = messagebox.askyesno('Confirm', 'Did you mean ' + close_match + '


instead?')

        if res == True:

            meaning = data[close_match]
            textarea.delete(1.0, END)
            textarea.config(state=NORMAL)
            for item in meaning:
                textarea.insert(END, u'\u2022' + item + '\n\n')

6
            textarea.config(state=DISABLED)

        else:
            textarea.delete(1.0, END)
            messagebox.showinfo('Information', 'Please type a correct word')
            enterwordentry.delete(0, END)

    else:
        messagebox.showerror('Error', 'The word doesnt exist.Please double check
it.')
        enterwordentry.delete(0, END)

root = Tk()
root.geometry('1000x626+100+50')
root.title('Talking Dictionary created by irfan')

root.resizable(0, 0)

bgimage = PhotoImage(file='v.png')

bgLabel = Label(root, image=bgimage)


bgLabel.place(x=0, y=0)

enterwordLabel = Label(root, text='Enter Word', font=('castellar', 29, 'bold'),


fg='red3', bg='whitesmoke')
enterwordLabel.place(x=530, y=20)

enterwordentry = Entry(root, font=('arial', 23, 'bold'), bd=8, relief=GROOVE,


justify=CENTER)
enterwordentry.place(x=510, y=80)

enterwordentry.focus_set()

searchimage = PhotoImage(file='search.png')
searchButton = Button(root, image=searchimage, bd=0, bg='whitesmoke',
activebackground='whitesmoke', cursor='hand2',
                      command=search)
searchButton.place(x=620, y=150)

micimage = PhotoImage(file='mic.png')
micButton = Button(root, image=micimage, bd=0, bg='whitesmoke',
activebackground='whitesmoke',
                   cursor='hand2',command=wordaudio)
micButton.place(x=710, y=153)

meaninglabel = Label(root, text='Meaning', font=('castellar', 29, 'bold'),


fg='red3', bg='whitesmoke')

7
meaninglabel.place(x=580, y=240)

textarea = Text(root, font=('arial', 18, 'bold'), height=8, width=34, bd=8,


relief=GROOVE, wrap='word')
textarea.place(x=460, y=300)

audioimage = PhotoImage(file='microphone.png')
audioButton = Button(root, image=audioimage, bd=0, bg='whitesmoke',
activebackground='whitesmoke',
                     cursor='hand2',command=meaningaudio)
audioButton.place(x=530, y=555)

clearimage = PhotoImage(file='clear.png')
clearButton = Button(root, image=clearimage, bd=0, bg='whitesmoke',
activebackground='whitesmoke', cursor='hand2'
                     , command=clear)
clearButton.place(x=660, y=555)

exitimage = PhotoImage(file='exit.png')
exitButton = Button(root, image=exitimage, bd=0, bg='whitesmoke',
activebackground='whitesmoke', cursor='hand2',
                    command=iexit)
exitButton.place(x=790, y=555)

root.mainloop()

5.0 Resources Required (major resources like raw material, tools, software etc.)
S. No. Name of Resource/material Specifications Qty Remarks
1 laptop Microsoft word
2 operating system Windows 10

6.0 Action Plan (Sequence and time required for major activities for 8 Weeks)
S. No. Details of activity Planned Planned Name of
Start date Finish date Responsible Team
Members
1 Discussion and finalization of topic All members
2 Preparation of submission of All members
proposal
3 Planning layout of micro project All members
4 Content preparation All members
5 Discussion about required resources All members
6 Create the report All members
7 Final submission of project All members

8
**************

Annexure – II
PART B – Micro-Project Report

Title of Micro-Project
1.0 Rationale
Dictionary in Python is an unordered collection of data values, used to store data values like
a map, which unlike other Data Types that hold only single value as an element, Dictionary
holds key:value pair. Key value is provided in the dictionary to make it more optimized. Each key-
value pair in a Dictionary is separated by a colon :, whereas each key is separated by a ‘comma’.
A Dictionary in Python works similar to the Dictionary in a real world. Keys of a Dictionary must
be unique and of immutable data type such as Strings, Integers, and tuples, but the key-values can
be repeated and be of any type.
In this micro-project we will prepare a GUI for an English Dictionary.
We are going to create GUI using tkinter module the GUI having search bar to search words and it
has display area to show its meaning.
We use the method json to read and load data from Json file that contains word definitions.
We use method pyttsx for text-to-speech functionality to enable the program to speak the word and
meaning.
We use method difflib to find close matches for words that are not found in the dictionary and to
provide suggestions to the user.

2.0 Course Outcomes Addressed

a) Develop functions for given problem.


b) Develop python program to demonstrate use of Operators.

3.0 Literature Review


The age of the Internet brought online dictionaries to the desktop and, more recently, to the smart
phone. David Skinner in 2013 noted that "Among the top ten lookups on Merriam-Webster Online at
this moment are holistic, pragmatic, caveat, esoteric and bourgeois. Teaching users about words they
don't already know has been, historically, an aim of lexicography, and modern dictionaries do this
well.
A dictionary is a listing of lexemes from the lexicon of one or more specific languages, often
arranged alphabetically (or by radical and stroke for ideographic languages), which may include
information on definitions, usage, etymologies, pronunciations, translation, etc.[1][2][3] It is a
lexicographical reference that shows inter-relationships among the data.[4]

A broad distinction is made between general and specialized dictionaries. Specialized dictionaries
include words in specialist fields, rather than a complete range of words in the language. Lexical

9
items that describe concepts in specific fields are usually called terms instead of words, although
there is no consensus whether lexicology and terminology are two different fields of study. In theory,
general dictionaries are supposed[citation needed] to be semasiological, mapping word to definition,
while specialized dictionaries are supposed to be onomasiological, first identifying concepts and then
establishing the terms used to designate them. In practice, the two approaches are used for both types.
[5] There are other types of dictionaries that do not fit neatly into the above distinction, for instance
bilingual (translation) dictionaries, dictionaries of synonyms (thesauri), and rhyming dictionaries.
The word dictionary (unqualified) is usually understood to refer to a general purpose monolingual
dictionary.[6]

There is also a contrast between prescriptive or descriptive dictionaries; the former reflect what is
seen as correct use of the language while the latter reflect recorded actual use. Stylistic indications
(e.g. "informal" or "vulgar") in many modern dictionaries are also considered by some to be less than
objectively descriptive.[7]

Reference:

 Bergenholtz, Henning; Tarp, Sven, eds. (1995). Manual of Specialised Lexicography: The


Preparation of Specialised Dictionaries. Amsterdam: John Benjamins Publishing. ISBN 90-
272-1612-6.
 Erdmann, Peter; Cho, See-Young. "A Brief History of English Lexicography". Technische
Universität Berlin. Archived from the original on 9 March 2008. Retrieved 17 December 2010.

4.0 Actual Methodology Followed


Program:
from tkinter import *
from tkinter import messagebox
import json
import pyttsx3
from difflib import get_close_matches

engine=pyttsx3.init()

def wordaudio():
    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[0].id)
    engine.say(enterwordentry.get())
    engine.runAndWait()

def  meaningaudio():
    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[1].id)
    engine.say(textarea.get(1.0,END))
    engine.runAndWait()

10
def iexit():
    res = messagebox.askyesno('Confirm', 'Do you want to exit?')
    if res == True:
        root.destroy()

    else:
        pass

def clear():
    textarea.config(state=NORMAL)
    enterwordentry.delete(0, END)
    textarea.delete(1.0, END)
    textarea.config(state=DISABLED)

def search():
    data = json.load(open('data.json'))
    word = enterwordentry.get()

    word = word.lower()

    if word in data:
        meaning = data[word]

        textarea.config(state=NORMAL)
        textarea.delete(1.0, END)
        for item in meaning:
            textarea.insert(END, u'\u2022' + item + '\n\n')

        textarea.config(state=DISABLED)

    elif len(get_close_matches(word, data.keys())) > 0:

        close_match = get_close_matches(word, data.keys())[0]

        res = messagebox.askyesno('Confirm', 'Did you mean ' + close_match + '


instead?')

        if res == True:

            meaning = data[close_match]
            textarea.delete(1.0, END)
            textarea.config(state=NORMAL)
            for item in meaning:
                textarea.insert(END, u'\u2022' + item + '\n\n')

            textarea.config(state=DISABLED)

11
        else:
            textarea.delete(1.0, END)
            messagebox.showinfo('Information', 'Please type a correct word')
            enterwordentry.delete(0, END)

    else:
        messagebox.showerror('Error', 'The word doesnt exist.Please double check
it.')
        enterwordentry.delete(0, END)

root = Tk()
root.geometry('1000x626+100+50')
root.title('Talking Dictionary created by irfan')

root.resizable(0, 0)

bgimage = PhotoImage(file='v.png')

bgLabel = Label(root, image=bgimage)


bgLabel.place(x=0, y=0)

enterwordLabel = Label(root, text='Enter Word', font=('castellar', 29, 'bold'),


fg='red3', bg='whitesmoke')
enterwordLabel.place(x=530, y=20)

enterwordentry = Entry(root, font=('arial', 23, 'bold'), bd=8, relief=GROOVE,


justify=CENTER)
enterwordentry.place(x=510, y=80)

enterwordentry.focus_set()

searchimage = PhotoImage(file='search.png')
searchButton = Button(root, image=searchimage, bd=0, bg='whitesmoke',
activebackground='whitesmoke', cursor='hand2',
                      command=search)
searchButton.place(x=620, y=150)

micimage = PhotoImage(file='mic.png')
micButton = Button(root, image=micimage, bd=0, bg='whitesmoke',
activebackground='whitesmoke',
                   cursor='hand2',command=wordaudio)
micButton.place(x=710, y=153)

meaninglabel = Label(root, text='Meaning', font=('castellar', 29, 'bold'),


fg='red3', bg='whitesmoke')
meaninglabel.place(x=580, y=240)

12
textarea = Text(root, font=('arial', 18, 'bold'), height=8, width=34, bd=8,
relief=GROOVE, wrap='word')
textarea.place(x=460, y=300)

audioimage = PhotoImage(file='microphone.png')
audioButton = Button(root, image=audioimage, bd=0, bg='whitesmoke',
activebackground='whitesmoke',
                     cursor='hand2',command=meaningaudio)
audioButton.place(x=530, y=555)

clearimage = PhotoImage(file='clear.png')
clearButton = Button(root, image=clearimage, bd=0, bg='whitesmoke',
activebackground='whitesmoke', cursor='hand2'
                     , command=clear)
clearButton.place(x=660, y=555)

exitimage = PhotoImage(file='exit.png')
exitButton = Button(root, image=exitimage, bd=0, bg='whitesmoke',
activebackground='whitesmoke', cursor='hand2',
                    command=iexit)
exitButton.place(x=790, y=555)

root.mainloop()

5.0 Actual Resources Used (Mention the actual resources used).

S. No. Name of Resource/material Specifications Qty Remarks


1 laptop Microsoft word
2 operating system Windows 10

6.0 Outputs of the Micro-Project

13
7.0 Skill Developed / learning out of this Micro-Project
In this project we learned how to create a python English dictionary.
In this project we learnt about various libraries like pyttsx3,Tkinter.
We also learned how to add json files in python file.

8.0 Applications of this Micro-Project


Following are the applications of dictionary:
1) Learn English effectively.
2) improve your English vocabulary.
3) Not uses pages it is stored in database so it saves money and trees and produces efficiency.
4) highly feasible
5) improve your communication 
9.0 Area of Future Improvement
Primarily used for looking up unknown words in reading, writing, and vocabulary learning
activities, online dictionaries have been considered highly feasible, individual learning
materials.
Online dictionaries such as the 'type-in' or 'pop-up' types are presently in use, to facilitate
learners' efforts in language learning; making it an easier exercise for students.
So software dictionaries are considered to be very beneficial in future.

**************

14
Annexure – III

Teacher Evaluation Sheet

Name of Student: ………………………………………………………… Enrollment No.


……………………………………
Name of Programme………………………………………………… Semester:
………………………………………… Course Title
……………………………………………………………….. Code:
………………………………………………………………

Title of the Micro-Project:


…………………………………………………………………………………………………….

(For Office Use Only)


Course Outcomes Achieved
……………………………………………………………………………………………………………………
…………………………..
……………………………………………………………………………………………………………………
……………………………
……………………………………………………………………………………………………………………
…………………………….
Evaluation as per Suggested Rubric for Assessment of Micro Project
 (Please tick in appropriate cell for each characteristic)
S. Characteristic Poor Average Good Excellent
No to be assessed ( Marks 1-3 ) ( Marks 4 - 5 ) ( Marks 6 - 8 ) ( Marks 9- 10 )
.
1 Relevance to the Relate to very Related to some Take care of at- Take care of more
course few LOs Los least one CO than one CO
 ..
2 Literature Not more than At-least 5 relevant At –least 7 About 10 relevant
Survey two sources sources, at least 2 relevant sources, sources, most
/information (primary and latest most latest latest
collection secondary), very
old reference

3 Completion of Completed less Completed 50 to Completed 60 to Completed more


the Target as than 50% 60% 80% than 80 %
per project
proposal
4 Analysis of Data Sample Size Sufficient and Sufficient and Enough data
and small, data appropriate appropriate collected by
representation neither sample, enough sample, enough sufficient and
organized nor data generated but data generated appropriate sample
presented well not organized and which is organized size. Proper
not presented well. and presented well inferences drawn
No or poor but poor by organising and
inferences drawn inferences drawn presenting data
through tables,

15
S. Characteristic Poor Average Good Excellent
No to be assessed ( Marks 1-3 ) ( Marks 4 - 5 ) ( Marks 6 - 8 ) ( Marks 9- 10 )
.
charts and graphs.

5 Quality of Incomplete Just Well Well


Prototype/Mode fabrication/asse assembled/fabricat assembled/fabricat assembled/fabricat
l mbly. ed and parts are ed with proper ed with proper
not functioning functioning parts. functioning parts.
well. Not in proper In proper shape, In proper shape,
shape, dimensions within tolerance within tolerance
beyond tolerance dimensions and dimensions and
limit. good good
Appearance/finish finish/appearance. finish/appearance.
is shabby. But no creativity Creativity in
in design and use design and use of
of material material

6 Report Very short, poor Nearly sufficient Detailed, correct Very detailed,
Preparation quality sketches, and correct details and clear correct, clear
Details about about methods, description of description of
methods, material, methods, methods,
material, precautions and materials, materials,
precaution and conclusion, but precautions and precautions and
conclusions clarity is not there Conclusions. conclusions.
omitted, some in presentation. Sufficient Graphic Enough tables,
details are wrong But not enough Description. charts and sketches
graphic
description.

7 Presentation Major Includes major Includes major Well organized,


information is information but information and includes major
not included, not well organized well organized but information ,well
information is and not presented not presented well presented
not well well
organized .
8 Any other
(depending upon
nature of project:
please write
indicators by
pen)
Defense Could not reply Replied to Replied properly Replied most of
9 to considerable considerable to considerable the questions
number of number of number of properly
question. questions but not question.
very properly

16
MIcro-Project Evaluation Sheet

Process Assessment Product Assessment Total


Part A - Project Methodology Part B - Project individual Mark
Project (2 marks) Report/Working Model Presentation/Viva s
Proposal (2 marks) (4 marks) 10
(2 marks)

Note:
Every course teacher is expected to assign marks for group evolution for each group of students in first 3
columns as per rubrics & individual evaluation in 4TH column for each group of students as per rubrics based
on viva.

Comments/Suggestions about team work/leadership/inter-personal communication (if any)


………………………………………………………………………………………………
……………………………………………………………………………………………..
……………………………………………………………………………………………..
……………………………………………………………………………………………..

Any Other Comment:


……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
………………………………………………………………………………………………

Name and designation of the Faculty Member…………………………………….

Signature………………………………………………………………………………

Date:………………………..

17

You might also like