Typo in word python что это
Where is the option to disable the spell check on the strings for the PyCharm IDE? I hate the jagged line under my comments and strings.
7 Answers 7
Go to File -> Settings -> Editor -> Inspections . Expand the list under Spelling in the middle window and uncheck the option Typo .
However, practically most of the jagged line is caused by violations of the PEP 8 coding style. If you would like to disable this option too, in the same window, expand the list under Python and uncheck the option PEP 8 coding style violation .
2,538 2 2 gold badges 13 13 silver badges 15 15 bronze badges 1,531 1 1 gold badge 12 12 silver badges 6 6 bronze badges I just put that on the line above the line with the false spelling error. Does that help you? @KellyBang Thanks, that seemed to be the case for me too. Maybe in the newer versions they changed the location.In the latest version of PyCharm it appears as ProofReading:
PyCharm does not check the syntax inside strings and comments. It checks spelling.
You can find the settings of the spell-checker under the Settings. page. There is a Spelling page inside Project Settings. Inside this page, at the bottom of the Dictionaries tab you can enable/disable dictionaries. If you don't want spell checking simply disable all of them.
Note that it is possible to add custom words in the spell checker, or, if you already have a dictionary on your computer, you can add it. This can turn out useful if you want to spell check different languages (for example Italian).
In particular if you are using a Linux system and you have installed the Italian language pack, you probably have the Italian dictionary under: /usr/share/dict/italian . You can add the /usr/share/dict directory to the directories searched for dictionaries and enable the italian dictionary.
Орфографические ошибки являются обычным явлением, и большинство людей привыкло к программному обеспечению, указывающему, была ли ошибка допущена. От автокоррекции на наших телефонах до красного подчеркивания в текстовых редакторах - проверка орфографии является важной функцией для многих различных продуктов.
Первая программа, реализующая проверку орфографии, была написана в 1971 году для DEC PDP-10. Названный SPELL, он был способен выполнять только простые сравнения слов и обнаруживать различия в одной или двух буквах. По мере развития аппаратного и программного обеспечения появляются и средства проверки орфографии. Современные средства проверки правописания способны обрабатывать морфологию и использовать статистику для улучшения предложений.
Python предлагает множество модулей для этих целей, что делает написание простой проверки орфографии легким 20-минутным испытанием.
Одной из этих библиотек является TextBlob, которая используется для обработки естественного языка и предоставляет интуитивно понятный API для работы.
В этой статье мы рассмотрим, как реализовать исправление орфографии в Python с помощью TextBlob.
Установка
Во-первых, нам нужно установить TextBlob, поскольку он не предустановлен. Откройте консоль и установите его с помощью pip:
Это должно установить все, что нам нужно для этого проекта. По окончании установки вывод консоли должен включать что-то вроде:
TextBlob построен на основе NLTK, поэтому он также поставляется с установкой.
Функция correct()
Кроме того, мы добавим несколько умышленных орфографических ошибок:
Если вы раньше работали с TextBlob, этот алгоритм будет вам знаком. Мы прочитали файл и его содержимое и создали экземпляр TextBlob , передав содержимое конструктору.
Затем мы запускаем функцию correct() в этом экземпляре для исправления орфографии.
После запуска приведенного выше сценария вы должны получить примерно такой результат:
Насколько верна коррекция орфографии TextBlob?
Как видим, в тексте все еще есть орфографические ошибки. Слова вроде "abl" должны были быть "able" , а не "all" . Хотя даже с ними все равно лучше оригинала.
Следующий фрагмент кода представляет собой простой сценарий, который проверяет, насколько хорошо TextBlob исправляет ошибки, на основе этого примера:
Теперь, используя эти две функции, давайте проведем быстрый анализ:
Запустив его, вы распечатаете:
Как мы видим, методу correct удалось уменьшить процент орфографических ошибок с 60,6% до 15,9%, что довольно неплохо, однако есть небольшая загвоздка. Он исправил 54,7% слов, так почему все еще остается 15,9% ошибок?
Ответ - чрезмерное исправление. Иногда он может изменить слово, которое написано правильно, например, первое слово в нашем примере текста, где "As" было исправлено "Is" . В других случаях ему просто не хватает информации о слове и контексте, чтобы сказать, какое слово пользователь намеревался ввести, поэтому он догадывается, что его следует заменить "whl" на "while" вместо "whole" .
Не существует идеального корректора орфографии, потому что большая часть разговорной речи зависит от контекста, так что имейте это в виду. В большинстве случаев ошибок гораздо меньше, чем в нашем примере, поэтому TextBlob должен работать достаточно хорошо для обычного пользователя.
Обучающий TextBlob с настраиваемыми наборами данных
Что, если вы хотите проверить орфографию на другом языке, который не поддерживается TextBlob из коробки? Или, может быть, вы хотите быть немного точнее? Что ж, может быть способ добиться этого. Все сводится к тому, как работает проверка орфографии в TextBlob.
В нашем случае остальная часть книги предоставит отличный контекст и дополнительную информацию, которая потребуется TextBlob для более точного исправления.
Если мы заглянем в файл train.txt , то увидим:
Это означает, что слово "a" отображается как слово 3389 раз, а "ably" только 5 раз. Чтобы проверить эту обученную модель, мы будем использовать suggest(text) вместо correct(text) , который представляет собой список кортежей доверия слов. Первым элементом в списке будет слово, в котором он уверен, поэтому мы можем получить к нему доступ через suggest(text)[0][0] .
Обратите внимание, что это может быть медленнее, поэтому проверяйте орфографию слово за словом, так как сброс огромных объемов данных может привести к сбою:
И теперь это приведет к:
Это исправляет примерно 2 из 3 слов с ошибками, что довольно хорошо, учитывая запуск без особого контекста.
В этой статье вы будете сопровождать меня в путешествии по автоматической генерации строк документации в стиле Google из подсказок типов Python. Мы рассмотрим следующие элементы.
- Подсказки типов Python
- Вставка подсказки типа в строки документации функции
- Автоматизация с помощью хуков Git перед фиксацией
Начиная с Python 3.5+, мы увидели следующее поколение документации по коду: намеки на типы переменных в аргументах функций/классов и операторах возврата. Это позволяет программам форматирования, линтерам и IDE обеспечивать поддержку проверки типов во время выполнения.
Зачем нужны подсказки
Проще говоря, типовые подсказки улучшают документацию исходного кода и читаемость. Они являются частью Python Enhancement Protocols (PEP), эволюционной структуры для повышения ясности и логики кода Python.
Как использовать подсказки типа
Подсказки можно импортировать из модуля typing . Формат <variable name> : <variable type> и может быть непосредственно вставлен в аргументы функции. Вы можете включить оператор возврата с расширением -> <return variable> .
Проверка типов
Обратите внимание, что подсказки типов не являются обязательными, и поэтому интерпретатор Python полностью игнорирует их (код Python с неправильно отформатированными подсказками типов все еще выполняется). Однако такие IDE, как Pycharm, уже интегрируют проверку типов, а инструмент статической проверки типов, такой как mypy , вычерпывает ошибки типа как баги.
Чтобы извлечь аргументы и их подсказки по типу из определений функций, мы собираемся
- использовать abstract syntax trees для анализа скриптов Python и чтения функций и их аргументов
- используйте библиотеку typing , чтобы получить подсказки типа переменных из аргументов нашей функции
- используйте regular expressions для сопоставления типа переменной с форматом строки документации в стиле Google
Абстрактные синтаксические деревья (AST)
Модуль ast помогает приложениям Python обрабатывать деревья абстрактного синтаксиса грамматики Python. Вместо того, чтобы читать скрипт Python в виде текстовых файлов, теперь мы можем программно читать грамматику через ast nodes . Полезный пакет для распечатки и понимания этих узлов - это astpretty . Мы используем модуль ast , чтобы получить имена функций или классов в скрипте.
Модуль pathlib.Path создает объектно-ориентированный путь в файловой системе, для которой вы можете запросить атрибуты, такие как .stem , последний компонент пути, без суффикса. Мы можем импортировать функции или классы в виде строки с расширением importlib.import_module .
getattr извлекает именованный атрибут из объекта, в данном случае из функции в нашем модуле Python, таким же образом, как и мы from module import attribute .
Печать
Метод get_type_hints() из модуля typing возвращает словарь, содержащий подсказки типа для функции, метода, модуля или объекта класса. get_type_hints не работает со строками, поэтому мы используем библиотеку ast для анализа методов из модуля.
Последним key в этом словаре является «return» и включает в себя указание типа возвращаемой переменной, если оно есть, в противном случае - None. Мы можем исключить этот ключ из словаря с помощью метода .pop .
Регулярные выражения
Мы используем следующие регулярные выражения, чтобы понять, где аргументы функции определены в наших строках документации в стиле Google.
Во- первых, мы get_docstring из нашего функционального узла и ищем три атрибута Args , Example[s] и Return[s] (строка 8). Затем мы перебираем каждый аргумент функции (строка 31), используем его для выбора значения в нашем словаре type_hints (строка 38), удаляем часть <class ''> напечатанного type_hint (строка 39) и вставляем его между круглыми скобками (строка 43).
Пожалуйста, посмотрите здесь полный сценарий, чтобы увидеть, как мы делаем то же самое для подсказок типа возвращаемых аргументов функции и перезаписываем наш скрипт Python нашим недавно отформатированным литералом строки документации.
С помощью хуков Git, мы можем запустить линтинг и форматирование инструментов, таких как mypy , autoflake , flake8 , isort , black перед каждой фиксацией и отправкой в наш репозиторий. Это позволяет нам автоматически создавать «стандарт кодирования» в нашем проекте Python. Эти перехватчики Git предоставляются пакетом pre-commit , который использует файл pre-commit-config.yaml , который указывает, какие пакеты включать в конвейер предварительной фиксации.
Помимо инструментов линтинга и форматирования, вы также можете включить выполнение скриптов Python в эти перехватчики Git с помощью команд bash, что позволяет нам автоматизировать эту функцию docstring_from_type_hints() . При этом при каждой фиксации подсказки типов вставляются в нашу строку документации.
Сделав еще один шаг, мы можем автоматически создавать красивую документацию в MkDocs со всеми функциями в наших скриптах Python.
Читайте также: