Skip to content

Latest commit

 

History

57 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpellChecker

Программа для проверки орфографии русского текста с возможностью автоматического и интерактивного исправления ошибок. Поддерживает работу с текстом из файла или вводом с клавиатуры, имеет светлую и тёмную темы.

Особенности

  • Проверка орфографии — выделение слов, отсутствующих в словаре, красной волнистой линией
  • Контекстные исправления — клик по слову с ошибкой открывает меню с вариантами замены
  • Автоисправление — кнопка «Исправить» автоматически заменяет все ошибки первым вариантом
  • Отмена изменений — возможность вернуться к исходному тексту после проверки или исправлений
  • Поддержка файлов — загрузка текста из .txt файлов с автоматической обработкой UTF-8
  • Смена темы — светлая и тёмная темы оформления
  • Работа с буфером — копирование текста и сохранение в файл
  • Горячие клавиши — стандартные сочетания для работы с текстом

Использование

Запуск программы

После сборки и запуска программа выполнит:

  1. Асинхронную загрузку словаря
  2. Автоматический переход к основному интерфейсу после загрузки

Основные действия

Кнопка Действие
Проверить Запускает проверку орфографии всего текста
Исправить Автоматически заменяет все найденные ошибки первым подходящим вариантом
Отменить изменения Возвращает текст к состоянию до последней проверки или исправления
Очистить Полностью очищает поле ввода
Копировать Копирует текст в буфер обмена
Сохранить Сохраняет текст в файл (.txt)

Интерактивное исправление

  1. Нажмите левой кнопкой мыши на слово, подчёркнутое красным
  2. В появившемся меню:
    • Выберите один из предложенных вариантов исправления
    • Или выберите «Отметить как правильное», чтобы добавить слово в список игнорируемых

⚠️ Слова, добавленные в игнорируемые, запоминаются только на время сеанса работы программы.

Источники текста

  • С клавиатуры — текст вводится непосредственно в поле редактора
  • Из файла — выбор текстового файла (.txt) с диска с последующей загрузкой

Сборка проекта

❗❗❗ Требования ❗❗❗

  • CMake 3.10 или выше
  • Qt6 (Core, Widgets)
  • GTest (для тестов)
  • Компилятор с поддержкой C++11 и выше

Инструкция по сборке

git clone https://github.com/AlexeyL54/spell_checker.git
cd spell_checker

mkdir build
cd build

cmake ..  

make

./SpellChecker

Примечание: Путь к словарю настроен на ../vocab/russian-words/russian.txt. При необходимости измените путь в MainWindow.cpp.

Структура проекта

SpellChecker/
├── src/
│   ├── back/              
│   │   └── vocab.cpp/hpp                   # Загрузка словаря, поиск ошибок, предложения
│   └── front/                              
│       ├── MainWindow.cpp/hpp              # Главное окно приложения
│       ├── InputPage.cpp/hpp               # Страница ввода текста
│       ├── TextEditWithSpellCheck.cpp/hpp  # Кастомное текстовое поле
│       ├── ThemeManager.cpp/hpp            # Управление темами
│       ├── StyleManager.cpp/hpp            # Стилизация интерфейса
│       ├── LoadingPage.cpp/hpp             # Страница загрузки
│       └── InstructionText.hpp             # Текст инструкции
├── vocab/                                  
│   └── russian-words/                      # Словарь русских слов
├── tests/                                  # Тесты
├── CMakeLists.txt                          # Конфигурация сборки
└── main.cpp                                # Точка входа

Алгоритм проверки орфографии

  1. Индексация триграмм — для каждого слова в словаре строятся все возможные триграммы (перекрывающиеся последовательности из 3 символов) с маркерами начала и конца
  2. Поиск кандидатов — из индекса выбираются слова, имеющие не менее 2 совпадающих триграмм
  3. Расстояние Левенштейна — для кандидатов вычисляется минимальное количество операций вставки, удаления и замены
  4. Сортировка — кандидаты сортируются по возрастанию расстояния и длине слова
  5. Результат — возвращаются до 5 лучших вариантов исправления

Технические детали

  • Фреймворк: Qt6 (QtCore, QtWidgets)
  • Кодировка: UTF-8 (поддержка кириллицы)
  • Сборщик: CMake

Инструкция пользователя

Программа имеет встроенную инструкцию — нажмите на кнопку с вопросительным знаком «?» в верхнем левом углу для получения подробной справочной информации.

Горячие клавиши (стандартные для поля ввода)

Сочетание Действие
Ctrl+C Копировать выделенный текст
Ctrl+X Вырезать выделенный текст
Ctrl+V Вставить из буфера обмена
Ctrl+A Выделить весь текст

Тестирование

Проект включает интеграционные тесты для проверки работы:

  • Vocabulary — загрузка словаря и поиск исправлений

Запуск тестов:

cd tests/build
cmake ..
make
./vocabulary_test

TODO

  • Локализовать приложение
  • Добавить возможность интерактивного выбора словарей, языков
  • Добавить навигацию по словам с ошибкой
  • Добавить другие цветовые темы

Лицензия

Словарь взят из репозитория russian-words (лицензия MIT).

About

Простое графическое приложение для проверки орфографии.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages