Что такое опечатка в слове python

Обновлено: 21.11.2024

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

Первая программа для проверки орфографии была написана в 1971 году для DEC PDP-10. Названный SPELL, он был способен выполнять только простые сравнения слов и обнаруживать различия в одной или двух буквах. По мере совершенствования аппаратного и программного обеспечения меняются и средства проверки орфографии. Современные средства проверки орфографии способны обрабатывать морфологию и использовать статистику для улучшения предложений.

Python предлагает множество модулей, которые можно использовать для этой цели, поэтому написание простой программы проверки орфографии занимает не более 20 минут.

Одной из этих библиотек является TextBlob, которая используется для обработки естественного языка и предоставляет интуитивно понятный API для работы.

В этой статье мы рассмотрим, как реализовать коррекцию орфографии в Python с помощью TextBlob.

Установка

Во-первых, нам нужно установить TextBlob, так как он не поставляется предварительно установленным. Откройте консоль и установите ее с помощью pip:

Это должно установить все, что нам нужно для этого проекта. После завершения установки вывод консоли должен включать что-то вроде:

TextBlob построен на основе NLTK, поэтому он также устанавливается при установке.

Функция correct()

Самый простой способ исправить введенный текст — использовать метод correct(). В качестве примера текста мы будем использовать абзац из книги Чарльза Дарвина «Происхождение видов», которая является частью общественного достояния и упакована в файл text.txt .

Кроме того, мы намеренно добавим несколько орфографических ошибок:

Он полно орфографических ошибок, почти в каждом слове. Давайте напишем простой скрипт, используя TextBlob, чтобы исправить эти ошибки и вывести их обратно в консоль:

Если вы уже работали с TextBlob, этот процесс покажется вам знакомым. Мы прочитали файл и содержимое внутри него и создали экземпляр TextBlob, передав содержимое конструктору.

Затем мы запускаем функцию correct() для этого экземпляра, чтобы исправить правописание.

После запуска приведенного выше скрипта вы должны получить результат, аналогичный следующему:

Насколько верна орфографическая коррекция TextBlob?

Как мы видим, в тексте все еще есть орфографические ошибки. Такие слова, как «abl», должны были быть «способными», а не «всеми». Хотя даже с этим он все равно лучше оригинала.

Теперь возникает вопрос, насколько это лучше?

Следующий фрагмент кода представляет собой простой скрипт, который проверяет, насколько хорошо TextBlob исправляет ошибки, на основе этого примера:

Теперь с этими двумя функциями давайте проведем быстрый анализ:

Запуск распечатает:

Как мы видим, правильный метод позволил снизить процент орфографических ошибок с 60,6 % до 15,9 %, что довольно неплохо, однако есть небольшая загвоздка. Он исправил 54,7 % слов, так почему же доля ошибок по-прежнему составляет 15,9 %?

Бесплатная электронная книга: Git Essentials

Ознакомьтесь с нашим практическим руководством по изучению Git, включающим передовые практики, общепринятые стандарты и памятку. Перестаньте гуглить команды Git и на самом деле изучите их!

Ответ: гиперкоррекция. Иногда он может изменить правильно написанное слово, например, первое слово в нашем примере текста, где «As» было исправлено на «Is». В других случаях ему просто не хватает информации о слове и контексте, чтобы определить, какое слово пользователь намеревался ввести, поэтому он предполагает, что ему следует заменить «whl» на «пока» вместо «целого».

Идеального корректора орфографии не существует, потому что большая часть разговорной речи зависит от контекста, так что имейте это в виду. В большинстве случаев ошибок гораздо меньше, чем в нашем примере, поэтому TextBlob должен работать достаточно хорошо для среднего пользователя.

Обучение TextBlob с помощью пользовательских наборов данных

Что делать, если вы хотите проверить орфографию на другом языке, который не поддерживается TextBlob по умолчанию? Или, может быть, вы хотите немного уточнить? Что ж, может быть, есть способ добиться этого. Все сводится к тому, как работает проверка орфографии в TextBlob.

TextBlob использует статистику использования слов на английском языке, чтобы делать разумные предложения по исправлению слов. Он хранит эту статистику в файле с именем en-spelling.txt , но также позволяет вам создать собственный файл статистики использования слов.

Давайте попробуем сделать его для нашего примера с Дарвином. Мы будем использовать все слова из раздела О происхождении видов для обучения. Вы можете использовать любой текст, только убедитесь, что в нем достаточно слов, которые имеют отношение к тексту, который вы хотите исправить.

В нашем случае остальная часть книги предоставит отличный контекст и дополнительную информацию, которая потребуется TextBlob для более точного исправления.

Давайте перепишем скрипт:

Если мы заглянем в файл train.txt, мы увидим:

Это указывает на то, что слово "а" встречается как слово 3389 раз, а "способно" – только 5 раз. Чтобы проверить эту обученную модель, мы будем использовать submit(text) вместо correct(text) , который представляет собой список кортежей с достоверностью слов. Первым элементом в списке будет слово, в котором он наиболее уверен, поэтому мы можем получить к нему доступ с помощью submit(text)[0][0] .

Обратите внимание, что это может быть медленнее, поэтому при проверке орфографии повторяйте слово за словом, так как сброс огромных объемов данных может привести к сбою:

И теперь это приведет к:

Это исправляет примерно 2 из 3 слов с ошибками, что очень хорошо, учитывая запуск без особого контекста.

Заключение

В этой статье мы будем использовать TextBlob для реализации базового корректора орфографии, причем оба варианта — с пользовательской моделью предсказания запасов.

Исправление искусственных орфографических ошибок стало обычной задачей для разработчиков программного обеспечения. Несмотря на то, что интеллектуальный анализ данных стал проще и эффективнее, многие орфографические ошибки требуют исправления в контексте.

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

PyCharm помогает вам убедиться, что весь ваш исходный код, включая имена переменных, текстовые строки, комментарии, литералы и сообщения фиксации, написан правильно. Для этой цели PyCharm предоставляет специальную проверку опечаток, которая включена по умолчанию.

В текстовых строках и комментариях изменяется только написание этого конкретного слова в точке вставки. Там, где доступен рефакторинг «Переименовать», проверка предлагает переименовать все вхождения символа .

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

Исправить слово с ошибкой

Поместите курсор на любое слово, выделенное при проверке опечатки.

Нажмите или нажмите Alt+Enter, чтобы отобразить доступные действия по намерению.

Выберите одно из предложенных исправлений из списка.

Чтобы перейти к следующему слову с ошибкой, нажмите F2 .

Исправить слово с ошибкой

Поместите курсор на слово, выделенное при проверке опечатки.

Нажмите или нажмите Alt+Enter, чтобы отобразить доступные действия по намерению.

Выберите действие Сохранить в словарь, чтобы добавить слово в словарь пользователя и пропустить его в будущем.

Если вы добавили слово по ошибке, нажмите Ctrl+Z, чтобы удалить его из словаря

По умолчанию PyCharm сохраняет слова в глобальном словаре уровня приложения. Вы можете сохранить слова в словаре уровня проекта, если правописание верно только для этого конкретного проекта. Дополнительные сведения см. в разделе Выбор словаря по умолчанию для сохранения слов.

Настроить проверку опечаток

По умолчанию проверка опечаток проверяет весь текст, включая элементы кода, строковые литералы и комментарии во всех областях.

Нажмите Ctrl+Alt+S, чтобы открыть настройки IDE, и выберите Редактор | Инспекции .

Разверните узел "Корректура" и нажмите "Опечатка" на центральной панели.

На правой панели настройте проверку опечаток:

Укажите уровень серьезности и область применения этого уровня.

Например, если вы хотите, чтобы опечатки выделялись больше, выберите "Ошибка" или "Предупреждение", чтобы выделить опечатки, похожие на синтаксические ошибки или предупреждения в вашем коде.

Укажите тип контента для проверки:

Код процесса: проверьте различные элементы кода.

Обработка литералов: проверка текста внутри строковых литералов.

Обработка комментариев: проверьте текст внутри комментариев.

Отключить проверку орфографии

Нажмите Ctrl+Alt+S, чтобы открыть настройки IDE, и выберите Редактор | Инспекции .

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

Словари

PyCharm включает в себя объединенные словари для всех настроенных языков. Вы не можете изменить их напрямую, но вы можете расширить возможности проверки орфографии другими способами:

Сохраняйте слова во встроенный глобальный словарь или словарь проекта.

Добавьте текстовые файлы с расширением .dic, содержащие списки слов.

Если у вас установлен и включен подключаемый модуль Hunspell, вы можете добавить словари Hunspell, которые состоят из двух файлов: файла DIC, содержащего список слов с применимыми правилами модификации, и файла AFF, в котором перечислены префиксы и суффиксы, регулируемые определенное правило модификации. Например, en_GB.dic и en_GB.aff .

Настройте словари проверки орфографии

Нажмите Ctrl+Alt+S, чтобы открыть настройки IDE, и выберите Редактор | Естественные языки | Орфография.

Настройте список пользовательских словарей:

Чтобы добавить в список новый пользовательский словарь, щелкните или нажмите клавиши Alt+Insert и укажите расположение нужного файла.

Чтобы отредактировать содержимое пользовательского словаря в PyCharm, выберите его и нажмите или нажмите Enter . Соответствующий файл откроется в новой вкладке редактора.

Чтобы удалить пользовательский словарь из списка, выберите его и щелкните или нажмите Alt+Delete .

Выберите словарь по умолчанию для сохранения слов

По умолчанию PyCharm сохраняет слова в глобальном словаре уровня приложения. Вы можете сохранить слова в словаре на уровне проекта, если правописание верно только для этого конкретного проекта.

Нажмите Ctrl+Alt+S, чтобы открыть настройки IDE, и выберите Редактор | Естественные языки | Орфография.

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

Добавить разрешенные слова вручную

Нажмите Ctrl+Alt+S, чтобы открыть настройки IDE, и выберите Редактор | Естественные языки | Орфография.

Добавить слова в список допустимых слов. PyCharm добавляет принятые вручную слова в словарь на уровне проекта.

Нельзя добавлять слова, которые уже присутствуют в одном из словарей, а также слова со смешанными регистрами, например CamelCase и snake_case .

Список допустимых слов также содержит слова, которые вы сохранили во встроенном глобальном словаре или словаре проекта. Хотя он не содержит слов, добавленных в словарь уровня проекта другими пользователями, и слов из других пользовательских словарей, проверка опечаток не выделяет их.

Где находится возможность отключить проверку орфографии в строках для PyCharm IDE? Я ненавижу неровную линию под своими комментариями и строками.

@Close Избиратели: я вижу, двое из вас предлагают перенести это в SU. Вопросы об инструментах программирования актуальны для SO, поэтому я не согласен с этими конкретными голосами.

7 ответов 7

Выберите «Файл» -> «Настройки» -> «Редактор» -> «Проверки». Разверните список в разделе Правописание в среднем окне и снимите флажок Опечатка .

Однако практически большая часть неровной линии вызвана нарушением стиля кодирования PEP 8. Если вы хотите отключить и этот параметр, в том же окне разверните список в разделе Python и снимите флажок с параметра Нарушение стиля кодирования PEP 8 .

@KellyBang Спасибо, у меня тоже так было. Возможно, в более новых версиях они изменили местоположение.

В последней версии PyCharm он отображается как ProofReading:

PyCharm не проверяет синтаксис внутри строк и комментариев. Он проверяет орфографию.

Настройки проверки правописания можно найти на странице Настройки. В разделе Настройки проекта есть страница Правописание. На этой странице в нижней части вкладки Словари вы можете включить/отключить словари. Если вы не хотите проверять орфографию, просто отключите их все.

Обратите внимание, что в средство проверки орфографии можно добавлять пользовательские слова или, если на вашем компьютере уже есть словарь, вы можете добавить его. Это может оказаться полезным, если вы хотите проверить орфографию на разных языках (например, на итальянском).

В частности, если вы используете систему Linux и установили языковой пакет для итальянского языка, у вас, вероятно, есть словарь итальянского языка в папке: /usr/share/dict/italian . Вы можете добавить каталог /usr/share/dict в каталоги, в которых выполняется поиск словарей, и включить итальянский словарь.

Недавние примеры в Интернете. Но в последние несколько недель интерес определенно возобновился, особенно после того, как Министерство финансов только что объявило, что инвестиции принесут 7,12 % прибыли в течение следующих шести месяцев (это не опечатка). !). — Эми Вагнер и Стив Спровач, The Enquirer, 18 ноября 2021 г. Представитель полиции Майами-Бич Эрнесто Родригес сообщил The Washington Post в электронном письме, что департамент обнаружил опечатку в летчик на прошлой неделе и приказал примерно 400 офицерам прекратить выдавать их водителям. — Washington Post, 16 февраля 2022 г. В разделе "Распродажа косметики" появляются скидки до 60% (это не опечатка, ребята) на такие любимые редакторами бренды, как Herbivore, Shiseido и Питер Томас Рот. — Сара Хан, Allure, 16 февраля.2022 В отличие от заболеваний, вызванных одной буквой ДНК опечатка или более существенной мутацией одного гена, не существует простых способов введения целой хромосомы в клетки в чашках Петри или на животных моделях. — Меган Молтени, STAT, 9 января 2022 г. Это происходит, когда трейдер делает неправильную ставку на актив из-за опечатки. — Брайан Худ, отчет Робба, 14 декабря 2021 г. Следуя по медвежьим следам прямо в жерло действующего вулкана из-за опечатки, вы определенно состарите душу. — Сара Хатто, The New Yorker, 17 ноября 2021 г. Сын Адамса Тревин, упорный квотербек команды, на счету которого 75 — не опечатка — тачдаунов в сезоне, сказал незнакомцы просили сфотографироваться с ним. — Лука Эванс, Los Angeles Times, 8 декабря 2021 г. Вниз по дороге в Шарлоттсвилле школьный округ изменил свой протокол для выявления одаренных учащихся, сообщив этим летом, что 86 процентов (это не опечатка ) учащихся 3–11 классов теперь считаются одаренными. — Фредерик Хесс, Forbes, 6 декабря 2021 г. Подробнее

Эти примеры предложений автоматически выбираются из различных онлайн-источников новостей, чтобы отразить текущее использование слова "опечатка". Взгляды, выраженные в примерах, не отражают точку зрения Merriam-Webster или ее редакторов. Отправьте нам отзыв.

Дополнительные или отсутствующие пробелы и знаки препинания не считаются опечатками. Algolia обрабатывает их, если включен типотолерантность (установлено значение true , min или strict ). Например:

  • Отсутствует пробел между двумя словами: "helloworld" → "hello world"
  • Лишний пробел или знак препинания объединяются: "привет, ло" → "привет"

Что такое терпимость к опечаткам?

Толерантность к опечаткам позволяет пользователям делать ошибки при наборе текста и при этом находить нужные записи. Это делается путем сопоставления слов, близких по написанию.

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

Algolia предлагает стандартную устойчивость к опечаткам, а также некоторые важные способы настройки того, насколько толерантным должен быть поиск.

Как рассчитываются опечатки

Алгоритм терпимости к опечаткам в Algolia основан на расстоянии. Под расстоянием понимается разница в написании между набранным словом и его точным совпадением в указателе. Идеальное совпадение — это расстояние = 0. Если есть идеальное совпадение или расстояние мало (ошибочно введены одна или две буквы), выполняется совпадение, и запись добавляется к результатам. .

Например, если движок получает такое слово, как "strm", это может означать "шторм" или "бряк" (расстояние = 1 / одна неверная буква), или "звезда" или "тепло" (расстояние = 2 / две буквы неверны).

Расстояние, по сути, устанавливает порог терпимости. Порог равен 2: когда слово отличается на 3 или более ошибок, оно считается «недопустимым» (не включается в результаты).

Вычисление расстояния

Расстояние включает в себя точную логику: это минимальное количество операций (добавление символов, удаление, замена или транспозиция), необходимых для преобразования одного слова в другое. Это известно как расстояние Дамерау–Левенштейна.

Ниже приведены несколько примеров того, как Algolia подсчитывает операции, необходимые для преобразования слова.

Читайте также: