Skip to content

ravali6132/Spell_Checker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ Advanced Spelling Checker

๐Ÿ“Œ Project Overview

Advanced Spelling Checker is a modern Java-based desktop application developed using Java Swing that helps users identify spelling mistakes and generate intelligent correction suggestions.

The application provides a user-friendly graphical interface where users can enter single words or complete sentences for spell checking. The system validates entered words against a dictionary file and identifies incorrect spellings. For incorrect words, the application generates the closest matching suggestions using the Levenshtein Distance Algorithm.

This project demonstrates concepts such as GUI development, file handling, event-driven programming, dynamic programming algorithms, and efficient data lookup using HashSet.


๐Ÿš€ Features

โœ… Core Features

  • Spell checking for words and sentences
  • Modern Java Swing graphical user interface
  • Fast dictionary lookup using HashSet
  • Intelligent spelling suggestions
  • Real-time word counting
  • Clear input functionality
  • Dark mode support
  • Multi-word sentence validation
  • Error highlighting through result display

๐Ÿ› ๏ธ Technologies Used

Technology Purpose
Java Core programming language
Java Swing GUI development
File Handling Reading dictionary file
HashSet Fast word lookup
Event Handling User interaction handling
Levenshtein Distance Algorithm Suggestion generation
Dynamic Programming Distance calculation optimization

๐Ÿง  Concepts Used

This project demonstrates the following programming concepts:

  • Object-Oriented Programming
  • GUI Design
  • Event-Driven Programming
  • Dynamic Programming
  • Data Structures
  • String Manipulation
  • File Handling
  • Algorithm Design

๐Ÿ“‚ Project Structure

AdvancedSpellingChecker/
โ”‚
โ”œโ”€โ”€ AdvancedSpellingCheckerGUI.java
โ”œโ”€โ”€ dictionary.txt
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ screenshots/
    โ””โ”€โ”€ home.png

โš™๏ธ System Workflow

User enters text
        โ†“
Application splits text into words
        โ†“
Words are cleaned and normalized
        โ†“
Each word is searched in dictionary
        โ†“
Correct words are validated
        โ†“
Incorrect words detected
        โ†“
Levenshtein algorithm generates suggestions
        โ†“
Results displayed to user

๐Ÿ” How Spell Checking Works

The application reads words from a dictionary file and stores them inside a HashSet.

HashSet provides:

  • fast lookup
  • efficient searching
  • constant time complexity for search operations

When the user enters text:

  1. The text is split into words.
  2. Symbols and special characters are removed.
  3. Each word is converted to lowercase.
  4. The word is searched inside the dictionary.
  5. If not found, the word is marked incorrect.
  6. Suggestions are generated.

๐Ÿงฎ Suggestion Generation Algorithm

Levenshtein Distance Algorithm

The application uses the Levenshtein Distance algorithm to generate spelling suggestions.

This algorithm calculates the minimum number of operations required to transform one word into another.

Operations include:

  • insertion
  • deletion
  • substitution

Example

scence โ†’ science
intilligence โ†’ intelligence
machne โ†’ machine

๐Ÿ“– Dictionary File Format

The dictionary file should contain one valid word per line.

Example:

hello
world
java
computer
science
artificial
intelligence
machine
learning
application

โš™๏ธ Installation Guide

Step 1: Install Java

Install JDK 8 or higher.

Verify installation:

java -version
javac -version

Step 2: Clone Repository

git clone https://github.com/ravali6132/Spell_Checker.git

Step 3: Open Project Folder

cd AdvancedSpellingChecker

Step 4: Compile the Program

javac AdvancedSpellingCheckerGUI.java

Step 5: Run the Application

java AdvancedSpellingCheckerGUI

๐Ÿ–ฅ๏ธ User Interface Components

Input Area

Allows users to enter words or sentences.


Results Area

Displays:

  • correct words
  • incorrect words
  • suggestions
  • mistake count

Buttons

Check Spelling

Checks spelling and generates suggestions.

Clear

Clears input and output fields.

Dark Mode

Switches application theme to dark mode.


Status Bar

Displays:

  • word count
  • application status
  • completion messages

๐Ÿ“ธ Screenshots

image

๐Ÿ”ฅ Sample Input

scence
intilligence
machne

๐Ÿ”ฅ Sample Output

โŒ scence -> Incorrect
Suggestion: science

โŒ intilligence -> Incorrect
Suggestion: intelligence

โŒ machne -> Incorrect
Suggestion: machine

Total Mistakes: 3

๐Ÿ“Š Time Complexity

Operation Complexity
Dictionary Lookup O(1)
Suggestion Search O(n ร— m)

Where:

  • n = number of dictionary words
  • m = word length

๐ŸŽฏ Learning Outcomes

Through this project, the following skills were developed:

  • GUI development using Java Swing
  • File handling in Java
  • Event handling mechanisms
  • Dynamic programming implementation
  • Efficient data searching using HashSet
  • String processing and validation
  • User interface design

๐Ÿšง Challenges Faced

  • Managing GUI layouts properly
  • Implementing efficient suggestion generation
  • Handling user input validation
  • Optimizing word lookup performance
  • Designing clean UI components

๐Ÿ”ฎ Future Enhancements

The following improvements can be added in future versions:

  • Grammar checking
  • Real-time spell highlighting
  • Auto-correction feature
  • Voice input support
  • Multi-language support
  • AI-based smart suggestions
  • Cloud dictionary integration
  • File upload support
  • Paragraph correction support

๐Ÿ’ก Possible Real-World Applications

  • Educational software
  • Text editors
  • Writing assistance tools
  • Learning applications
  • Email validation systems
  • Content writing platforms

๐Ÿ“Œ Why This Project Is Important

This project demonstrates:

  • strong Java fundamentals
  • problem-solving skills
  • algorithm implementation
  • GUI development experience
  • understanding of data structures
  • real-world application development

๐Ÿค Contribution

Contributions are welcome.

You can improve:

  • UI design
  • algorithm optimization
  • grammar correction
  • suggestion accuracy
  • performance improvements

๐Ÿ“œ License

This project is developed for educational and learning purposes.


๐Ÿ‘จโ€๐Ÿ’ป Author

Ravali Koppisetti


โญ Support

If you found this project useful, consider giving it a star on GitHub.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages