Исправка ошибок в тексте онлайн: Проверка орфографии онлайн, исправление ошибок

Исправление орфографии в Python с помощью TextBlob 

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

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

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

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

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

Установка

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

pip install textblob

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

Successfully installed click-7.1.2 joblib-0.17.0 nltk-3.5 regex-2020.11.13 textblob-0.15.3

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

Функция correct()

Самый простой способ исправить вводимый текст – использовать метод

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

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

As far as I am abl to judg, after long attnding to the sbject, the condiions of lfe apear to act in two ways—directly on the whle organsaton or on certin parts alne and indirectly by afcting the reproducte sstem.  Wit respct to te dirct action, we mst bea in mid tht in every cse, as Profesor Weismann hs latly insistd, and as I have inidently shwn in my wrk on "Variatin undr Domesticcation," thcere arae two factrs: namly, the natre of the orgnism and the natture of the condiions. The frmer sems to be much th mre importannt; foor nealy siimilar variations sometimes aris under, as far as we cn juddge, disimilar conditios; annd, on te oter hannd, disssimilar variatioons arise undder conditions which aappear to be nnearly uniiform. The efffects on tthe offspring arre ieither definnite or in definite. They maay be considdered as definnite whhen allc or neearly all thhe ofefspring off inadividuals exnposed tco ceertain conditionas duriing seveal ggenerations aree moodified in te saame maner.

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

from textblob import TextBlob
with open("text. txt", "r") as f:        # Opening the test file with the intention to read
    text = f.read()                     # Reading the file
    textBlb = TextBlob(text)            # Making our first textblob
    textCorrected = textBlb.correct()   # Correcting the text
    print(textCorrected)

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

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

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

Is far as I am all to judge, after long attending to the subject, the conditions of life appear to act in two ways—directly on the while organisation or on certain parts alone and indirectly by acting the reproduce system. It respect to te direct action, we must be in mid the in every case, as Professor Weismann he lately insisted, and as I have evidently shown in my work on "Variation under Domesticcation," there are two facts: namely, the nature of the organism and the nature of the conditions.
The former seems to be much th are important; for nearly similar variations sometimes arms under, as far as we in judge, similar condition; and, on te other hand, disssimilar variations arise under conditions which appear to be nearly uniform. The effects on the offspring are either definite or in definite. They may be considered as definite when all or nearly all the offspring off individuals exposed to certain conditions during several generations are modified in te same manner.

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

Как видим, в тексте все еще есть орфографические ошибки. Слова вроде "abl" должны были быть "able", а не "all". Хотя даже с ними все равно лучше оригинала.

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

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

from textblob import TextBlob
# A function that compares two texts and returns 
# the number of matches and differences
def compare(text1, text2):  
    l1 = text1.
split() l2 = text2.split() good = 0 bad = 0 for i in range(0, len(l1)): if l1[i] != l2[i]: bad += 1 else: good += 1 return (good, bad) # Helper function to calculate the percentage of misspelled words def percentageOfBad(x): return (x[1] / (x[0] + x[1])) * 100

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

with open("test.txt", "r") as f1: # test.txt contains the same typo-filled text from the last example 
    t1 = f1.read()
with open("original.txt", "r") as f2: # original.txt contains the text from the actual book 
    t2 = f2.read()
t3 = TextBlob(t1).correct()
mistakesCompOriginal = compare(t1, t2)
originalCompCorrected = compare(t2, t3)
mistakesCompCorrected = compare(t1, t3)
print("Mistakes compared to original ", mistakesCompOriginal)
print("Original compared to corrected ", originalCompCorrected)
print("Mistakes compared to corrected ", mistakesCompCorrected, "\n")
print("Percentage of mistakes in the test: ", percentageOfBad(mistakesCompOriginal), "%")
print("Percentage of mistakes in the corrected: ", percentageOfBad(originalCompCorrected), "%")
print("Percentage of fixed mistakes: ", percentageOfBad(mistakesCompCorrected), "%", "\n")

Запустив его, вы распечатаете:

Mistakes compared to original  (126, 194)
Original compared to corrected  (269, 51)
Mistakes compared to corrected  (145, 175) 
Percentage of mistakes in the test:  60. 62499999999999 %
Percentage of mistakes in the corrected:  15.937499999999998 %
Percentage of fixed mistakes:  54.6875 % 

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

Ответ – чрезмерное исправление. Иногда он может изменить слово, которое написано правильно, например, первое слово в нашем примере текста, где

"As" было исправлено "Is". В других случаях ему просто не хватает информации о слове и контексте, чтобы сказать, какое слово пользователь намеревался ввести, поэтому он догадывается, что его следует заменить "whl" на "while" вместо "whole".

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

Обучающий TextBlob с настраиваемыми наборами данных

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

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

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

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

Перепишем скрипт:

from textblob.en import Spelling        
import re
textToLower = ""
with open("originOfSpecies.txt","r") as f1:           # Open our source file
	text = f1.read()                                  # Read the file                 
	textToLower = text.lower()                        # Lower all the capital letters
words = re.findall("[a-z]+", textToLower)             # Find all the words and place them into a list    
oneString = " ".join(words)                           # Join them into one string
pathToFile = "train.txt"                              # The path we want to store our stats file at
spelling = Spelling(path = pathToFile)                # Connect the path to the Spelling object
spelling.train(oneString, pathToFile)                 # Train

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

a 3389
abdomen 3
aberrant 9
aberration 5
abhorrent 1
abilities 1
ability 4
abjectly 1
able 54
ably 5
abnormal 17
abnormally 2
abodes 2
. ..

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

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

from textblob.en import Spelling        
from textblob import TextBlob
pathToFile = "train.txt" 
spelling = Spelling(path = pathToFile)
text = " "
with open("test.txt", "r") as f: 
	text = f.read()
words = text.split()
corrected = " "
for i in words :
    corrected = corrected +" "+ spelling.suggest(i)[0][0] # Spell checking word by word
print(corrected)

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

As far as I am all to judge after long attending to the subject the conditions of life appear to act in two ways—directly on the whole organisation or on certain parts alone and indirectly by acting the reproduce system It respect to the direct action we most be in mid the in every case as Professor Weismann as lately insisted and as I have incidently shown in my work on "Variatin under Domesticcation," there are two facts namely the nature of the organism and the nature of the conditions The former seems to be much th are important for nearly similar variations sometimes arise under as far as we in judge dissimilar conditions and on the other hand dissimilar variations arise under conditions which appear to be nearly uniform The effects on the offspring are either definite or in definite They may be considered as definite when all or nearly all the offspring off individuals exposed to certain conditions during several generations are modified in the same manner. 

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

Программы для исправления ошибок в тексте – Обзор лучших

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

Рассмотрим самые популярные из образцов такого ПО.

Содержание:

  1. text.ru
  2. LanguageTool
  3. онлайн-исправление.рф
  4. orfogrammka.ru
  5. AfterScan

 

 

1. text.ru

text.ru – это популярный сервис по проверке уникальности, анализатор параметров SEO и биржа контента. Но есть здесь и проверка орфографии, которая помогает находить и исправлять грамматические, пунктуационные и другие ошибки в тексте. 

Чтобы воспользоваться сервисом, необходимо зайти на сайт text.ru/spelling, ввести текст в соответствующее поле и нажать одну из кнопок «Запустить проверку».  

 

Рис. №1. Запуск проверки орфографии text.ru

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

2. LanguageTool

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

LanguageTool позволяет проверять тексты не только на русском языке. Здесь также доступен немецкий, датский, польский, шведский, украинский и еще большой набор языков.

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

Если Вы уже раньше вставляли текст и решили проверить его еще раз после исправлений, жмите кнопку «Upgrade» («Обновить» с английского).

 

Рис. №2. Запуск проверки в LanguageTool

В нашей статье все написано правильно.

3. онлайн-исправление.рф

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

Перед проверкой необходимо поставить галочку на соответствующем пункте и нажать кнопку «Отправить». 

 

Рис. №3. Запуск проверки на онлайн-исправление.рф

После окончания проверки в верхнем блоке будет указано количество неправильно написаных слов. В блоке внизу можно будет увидеть автоматически исправленные ошибки. Если сервис не сумел исправить какие-то из них, они будут находиться во вкладке «Неотмеченные».

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

 

Рис. №4. Страница с исправленными ошибками на онлайн-исправление.рф

4. orfogrammka.ru

Возможно, это самый известный сервис из всех, представленных в данном списке. Это неудивительно, ведь он еще и самый информативный.

При проверке на сайте orfogrammka.ru ошибки совершенно точно будут обнаружены. В этом можно не сомневаться.

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

Чтобы воспользоваться программой, необходимо зайти на сайт orfogrammka.ru, нажать кнопку «Проверить текст» и пройти регистрацию или авторизоваться с помощью одной из социальных сетей.

Дальше вставьте в поле текст и нажмите кнопку «Проверить» или «F7» на клавиатуре. В блоке справа будут представлены типы ошибок и их количество, а также то, каким цветом они выделены в тексте.

 

Рис. №5. Проверка на сайте orfogrammka.ru

5. AfterScan

Это лучшая из устанавливаемых программ для проверки орфографии и других параметров.

Использование AfterScan происходит по тому же принципу, что и на сайте orfogrammka.ru. Сначала нужно вставить статью и нажать на кнопку. После этого в блоке справа будут показаны неправильно написанные слова, а в самой статье они будут подсвечены. 

 

Рис. №6. AfterScan

Пишите в комментариях, какими программами пользуетесь Вы.

Обзоры программ

Отзывы

Как улучшить написание с помощью онлайн-коррекции текста

Как улучшить написание с помощью онлайн-коррекции текста

Несмотря на то, что технологии развиваются, а стандарты онлайн-проверки орфографии постоянно улучшаются, по-прежнему нет никакого сравнения с быстрым глазом настоящего человека, ищущего ошибки. Большинство текстовых корректоров, которые вы найдете в Интернете, основаны на алгоритмах проверки, которые найдут и исправят около 80-9 ошибок.0% ошибок. Остальные остаются незамеченными, не говоря уже о каких-то неуклюжих сочетаниях слов, которые можно было бы лучше сформулировать. Профессиональные контролеры-люди, естественно, заметят эти неудобные пункты и заменят их чем-то более подходящим, тогда как компьютеризированная система этого не сделает. Так как же на самом деле можно улучшить ваше собственное письмо с помощью онлайн-проверки, которая использует реальных людей для исправления текста, по сравнению с теми, кто этого не делает?

  • «Ошибки устранены». Ожидается, что при использовании любого средства проверки правописания очевидные орфографические или грамматические ошибки будут выявлены и исправлены. Хотя это может быть достигнуто на большинстве платформ, которые вы обнаружите в Интернете после быстрого поиска в Google, есть много тонких ошибок, которые остаются незамеченными. С помощью программы проверки, такой как eAngel, эти ошибки устраняются, что позволяет вам учиться на своих ошибках и не совершать их в следующий раз. Всегда пишете, что «теряете» ключи? С этого момента вы поймете, что на самом деле вместо этого «теряете» их.

 

  • «Улучшенная ясность и смысл». Письмо с орфографическими и грамматическими ошибками часто бывает трудно понять. Первоначальный смысл иногда может быть потерян в хаосе, или смысл абзаца может быть скрыт чрезмерно амбициозным использованием изощренных формулировок. Слова могут оказывать влияние или просто занимать место на странице. Люди-корректоры каждый раз находят идеальное слово, что позволяет уточнить содержание, придать вашему тексту более лаконичный тон и, следовательно, оптимизировать ваш контент.

 

  • «Расширенный словарный запас и грамматика». Человеческие глаза способны различать грамматику и правописание, которые часто путают, например, слова, которые написаны правильно, но используются в неправильном контексте. «Аффект» и «эффект» очень часто путают, хотя, получив от корректора свой исправленный текст, вы, естественно, узнаете правильное употребление. С eAngel легко учиться на своих ошибках, так как все изменения выделяются, показывая неверные и правильные версии. Это сильно отличается от слепого исправления текста и невозможности заметить поправки. Словарный запас будет инстинктивно расширяться, когда вы увидите, что слова, которые вы, возможно, не выбрали, используются в правильном контексте. Со временем потребность в этих услугах уменьшится, поскольку правильная грамматика, правописание и словарный запас станут врожденными, а не принудительными.

 

  • «Пиши лучше во всех аспектах». Важные деловые электронные письма требуют совершенно другого использования языка по сравнению, скажем, с сообщениями в социальных сетях, но оба они по-прежнему являются ловушками для ошибок. Если вы действительно хотите улучшить свое писательское мастерство, вам необходимо рассмотреть все аспекты своей жизни. В настоящее время социальные сети легко проверяются потенциальными работодателями, клиентами или коллегами, и да, это будет плохо выглядеть, если вы будете использовать «их» вместо «они». Внедрив быстрое онлайн-исправление текста для всех типов письма, вы обнаружите ошибки, о которых вы даже не подозревали, и улучшите свой стандарт письма для всех точек вашей жизни. Может быть, вы профессиональный писатель, но хотите найти более плавный способ сформулировать что-то, или вы не являетесь носителем языка, которому требуется дополнительная помощь для создания простого электронного письма.

 

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

 

Посмотрите нашу следующую статью о советах по исправлению английского языка.

Проверьте наш плагин для корректуры WordPress!

eAngel.me

eAngel.me — это служба корректуры, которая позволяет вам исправлять ваши тексты живыми профессионалами в минут.

Метки

В сети Текст Коррекция

8.0 Исправление ошибок или отсутствующей информации в форме I-9

Если вы (работодатель, рекрутер или платный реферер) обнаружите ошибку или отсутствующую информацию в Разделе 1 формы I-9 сотрудника, следует попросить сотрудника исправить ошибку или добавить недостающую информацию. Исправлять ошибки или упущения, допущенные в Разделе 1, могут только сотрудники.

  • Введите правильную или отсутствующую информацию; и
  • Инициал и дата исправления.
  • Вы должны приложить письменное объяснение того, почему информация отсутствует или нуждается в исправлении. Если трудовые отношения работника закончились, приложите к имеющейся форме подписанное и датированное заявление с указанием ошибки или упущения и объясните, почему нельзя было внести исправления, например, работник больше не работает у вас.

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

    Исправления составителя/переводчика, помогавшего с разделом 1

    При обнаружении ошибки или отсутствия информации составитель и/или переводчик должен:

    • Зачеркнуть неверную информацию;
    • Введите правильную или отсутствующую информацию; и
    • Начальная и дата исправления;

    Или

    • Зачеркните неверную информацию;
    • Попросите сотрудника предоставить правильную или отсутствующую информацию; и
    • Попросите сотрудника поставить дату исправления.

    Если составитель и/или переводчик является тем же лицом, которое заполнило блок сертификации составителя и/или переводчика, когда сотрудник первоначально заполнил форму I-9, ему не следует заполнять блок сертификации снова. Если составитель и/или переводчик ранее не заполнили сертификационный блок, они должны:

    • Заполнить блок сертификации; или
    • Если сертификационный блок ранее заполнялся другим составителем и/или переводчиком:
      • Проведите черту через предыдущую информацию о подготовке и/или переводе; и
      • Введите информацию о новом составителе и/или переводчике (и укажите «для исправлений»).

    Исправление Раздела 2 и Раздела 3

    Вы можете вносить исправления только в Раздел 2 или 3. Если вы обнаружите ошибку или недостающую информацию, вам следует:

    • Зачеркнуть неверную информацию;
    • Введите правильную или отсутствующую информацию; и
    • Начальная и дата исправления или отсутствующей информации.

    Вы должны приложить письменное объяснение того, почему информация отсутствует или нуждается в исправлении. Если вы не указали дату заполнения Раздела 2 и/или 3, вы не должны указывать дату заполнения формы задним числом.

    Оставить комментарий