Professional treatment in each sentence find one spelling error

Two minutes NLP — Five Correcting Spelling Errors approaches Norvig algorithm, n-grams, language models, and SymSpell Grammatical Error Correction (GEC) is the task of correcting different kinds of errors in text like spelling mistakes, incorrect use of articles, prepositions, pronouns, nouns, or even poor sentence construction. It is typically formulated as a sentence correction […]

Содержание

  1. Two minutes NLP — Five Correcting Spelling Errors approaches
  2. Norvig algorithm, n-grams, language models, and SymSpell
  3. Norvig’s approach
  4. Considering context with n-grams language models
  5. Improving speed with SymSpell optimizations
  6. Improving memory usage with hashing and quantization
  7. Improving accuracy with machine learning
  8. билим Ленд 6класс Professional treatment In each sentence, find one spelling error. 1. If you have chikenpox, you must take antiviral drug. 2. When you have a fever, drink a lot of a likuids
  9. Ответы
  10. Avoid spelling errors! by Matt McGann ’00
  11. Grammar Checker & Rephraser
  12. Check spelling, grammar and style for English texts
  13. Refine your style with our paraphrasing tool
  14. Check your grammar, spelling and punctuation in one click
  15. Rewrite and enhance any sentence with our paraphraser
  16. Students
  17. Sales
  18. Writers
  19. Marketing
  20. Make the most out of our online grammar checker
  21. Double-click on a word to find its synonyms
  22. Avoid unintentional plagiarism
  23. Mix and match Rephraser suggestions
  24. Learn new ways to express yourself
  25. Enjoy AI-based translation from and to English
  26. With Rephraser, fix errors that grammar checkers can’t detect
  27. Обзор открытых решений для исправления опечаток
  28. Проверка качества работы
  29. Готовые решения
  30. Выбор Naumen

Two minutes NLP — Five Correcting Spelling Errors approaches

Norvig algorithm, n-grams, language models, and SymSpell

Grammatical Error Correction (GEC) is the task of correcting different kinds of errors in text like spelling mistakes, incorrect use of articles, prepositions, pronouns, nouns, or even poor sentence construction. It is typically formulated as a sentence correction task. A GEC system takes a potentially erroneous sentence as input and transforms it to its corrected version.

Let’s see different ways of performing grammatical error correction, starting from simple to better but more complex solutions.

Norvig’s approach

Peter Norvig (director of research at Google) described the following approach to spelling correction:

  1. Collect a dictionary of all the possible valid words in a language, along with their frequency in the language (i.e. a unigram language model).
  2. Generate a list of candidate edits of the word you want to correct by insertions, deletions, characters permutations, and character replacement.
  3. Repeat the candidate generation procedure for a second time to get candidate words with a bigger edit distance (for cases with two errors).
  4. The candidate which is a valid word in the dictionary and has the highest frequency (i.e. the highest probability from the unigram language model) is the proposed corrected word.

This approach is rather accurate and fast, but it can be improved.

Considering context with n-grams language models

Using an n-gram language model, e.g. from 1-grams up to 3-grams, gets a better accuracy at the cost of higher memory usage (since our dictionary must store all the n-grams and their frequencies) and higher computational complexity (since each candidate correction is ranked according to several n-grams frequencies instead of 1-grams frequencies only).

Improving speed with SymSpell optimizations

It turns out that the candidate edits, normally obtained through insertions, deletions, characters permutations, and replacement, can be all obtained with only character deletions on the dictionary words (that can be pre-computed and stored in the dictionary) and on the word to correct (performed at lookup time).

This approach is called SymSpell (Symmetric Delete Spelling Correction) and brings a huge speedup in computation times.

Improving memory usage with hashing and quantization

Storing the n-grams, their frequencies, and the SymSpell edits in a dictionary occupies a huge memory space. It’s possible to use hashing techniques to store n-grams frequencies without the n-grams themselves and to apply quantization to the frequencies to occupy far less memory space. Refer to this article for more details about these optimizations.

This is a summary of the improvements brought by the optimizations.

Improving accuracy with machine learning

Sometimes a user makes an error writing a word that is, still, a valid word. This can be managed by training a binary classifier on a grammatical error correction dataset to predict whether a word is wrong or not, despite being a valid word.

Moreover, the n-grams language model can be improved by replacing it with neural-network-based language models such as GPT-2.

The author of this article trained two Catboost models from scratch on available datasets for these two tasks. The two models further improved the overall accuracy of the algorithm.

Thank you for reading! If you are interested in learning more about NLP, remember to follow NLPlanet on Medium, LinkedIn, and Twitter!

Источник

билим Ленд 6класс Professional treatment In each sentence, find one spelling error. 1. If you have chikenpox, you must take antiviral drug. 2. When you have a fever, drink a lot of a likuids

Ответы

23. sally was lying in bed when her mother entered the room.

24. this used to be a station and all the london trains stopped there. but two years ago they closed the station and gave us a bus service instead.

25. i went to jack’s house but didn*t find him in .his mother said that she didn*t know what he was doing but thought he probably was playing football.

26. we were cycling along the road when we saw a huge lorry.

27. “ what were you doing between 9.00 and 10.00 yesterday? ” asked the detective . – “i was cleaning my house”, said mrs.jones. “i always clean my house on saturday mornings.”

28.although he agreed with me on most points, there remained one on which ne was unwilling to yield.

29. we arrived as they were leaving.

30. she was weeping bitterly while she was telling her story.

31. as mary got out of the boat her foot slipt and she fell into the water.

32. while i was waiting for the bus i noticed a group of tourists who was listening intently to a guide.

33. i tried to explain the situation to my parents , but they didn*t understand what i was talking about.

34. she injured her ankle while she was jogging in the park.

35. i felt rather worried. it got darker and colder, but there was still no sign on the rescue helicopter.

36. how often did you visit your cousins when you were in the states last year?

37.john’s children used to be well-behaved but now they are quite naughty.

38. while i was rowing across the lake i lost one oar.

39. at school i disliked the maths teacher because he always picked on me.

40. nobody was watching, so thee little boy took a packet of sweets from the shelf and put it in his pocket.

41. the plane crashed into a bridge because it was flying too low.

42. as the sun was rising, a morning mist hanged suspended in the air.

43.last fall i was driving along a free way when i ran out of gas. luckily a passing truck stopped and the driver offered to give me a lift.

44. when they were walking through the countryside they saw a ruined mansion.

45.while we were cleaning the attic , we came across out grandmother’s old school books.

46. the driver fell asleep as he was driving along.

47. i didn*t understand what go on. several people were shouting at me and one was waving a newspaper in front of my face.

48. the article said that crime was growing at a rapid rate, especially in urban areas.

49. at six o’clock this morning i was having a wonderful dream, but then the alarm went off.

50. laura was not wearing her glasses that morning , so she didn*t notice what kind of car the man was driving.

51. we didn*t go to the skating rink, because the ice was too thin.

52. while travelling about england last summer, i found myself in a quiet sleepy village in norfolk.

53. she said she was getting more forgetful as she grew older.

54. the only thing i disliked about him when we were studing at college was that he always borrowed my things without asking.

55. while the boys were skating they slipped on the thin ice and fell into the water.

56. the sun was shining so brightly that maria had to put on her sunglasses.

57. bobby always made up excuses for being late when he studied at school.

Источник

Avoid spelling errors! by Matt McGann ’00

The most commonly misspelled words I see on MIT applications.

September 25, 2008

As you begin your MIT application and other college applications, I thought I’d give some tips on how to avoid simple spelling errors.

Most errors I see are not in the essay portion. People are pretty good about using spell check for that. More often, I see spelling errors in the activity list, list of honors and awards, self-reported coursework form, or short answer essays. So be careful in these sections, too!

What happens if you do have a spelling error? It’s certainly not fatal, but it’s something to avoid if you can. It’s unlikely to be the difference between getting in and not getting in, but you’d rather look your best throughout the application.

My favorite spelling error on MIT applications is students who talk about taking “discreet math.” Is this math that you do without showing off? (I think these students mean “discrete math“)

I also like “duel enrollment” courses. Perhaps these students are preparing to join MIT’s national champion Pistol Team? (Probably you mean “dual enrollment”)

Both of these examples, of course, don’t get caught by spell check, since both discreet and duel are actual words. So don’t just rely on Microsoft Word to proofread your essay — you’ll want to take a keen look at it yourself.

Here is a non-scientific list of the most commonly misspelled words I see on applications. And, thanks to GoogleBattle, I’ll tell you how often people on the Web make the same mistake.

  • independent [independant, 6% of the time]
  • calculus [calculous, 2%]
  • honor roll [honor role, 2%]
  • principal [principle, n/a]
  • extracurricular [extracuricular, Share on Twitter

Источник

Grammar Checker & Rephraser

Check spelling, grammar and style for English texts

Check your grammar, spelling and punctuation
in one click

Whether you’re writing an email, a presentation or an essay, your resume or a cover letter in English, don’t let mistakes get in the way of your success.

Reverso detects and corrects all types of grammar and spelling mistakes: wrong verb tenses, lack of agreement between subject and verb, incorrect prepositions, confusion between words with similar spelling, typos and punctuation errors.

Rewrite and enhance any sentence with our paraphraser

Rephraser is designed to help you instantly enhance your writing, strike the right tone, or simply find inspiration. Just enter your text and our AI will suggest useful and reliable alternatives: shorter or longer, more or less formal, idiomatic or creative…

Add style and clarity to your essays, while avoiding unintentional plagiarism.

Students

Add style and clarity to your essays, while avoiding unintentional plagiarism.

Sales

Write compelling and professional emails — avoid repetition with regular clients.

Writers

Let your ideas flow, unleash your creativity, and find inspiration anytime.

Marketing

Engage your audience with impactful social media posts and emails.

Make the most out of our online grammar checker

Double-click on a word to find its synonyms

With our all-in-one writing assistant, no need to open a new tab every time you need a synonym or definition. Simply double-click on any word and enjoy a rich variety of synonyms from our comprehensive thesaurus and precise word definitions. You can even look up English verb conjugations.

Avoid unintentional plagiarism

If you have doubts if your text resembles a lot already existing publications, Reverso is at your service to prevent plagiarism. Rephraser will reword your creation to ensure its uniqueness while preserving your line of thought.

Mix and match Rephraser suggestions

Rephraser offers a wide variety of alternatives to your text while preserving the intended meaning. Feel free to mix and match the suggestions to create the perfect combination. After all, it’s up to you to decide what tone and style best fits your needs.

Learn new ways to express yourself

Tired of using the same old statements with your regular clients? Trying to find a better way to conclude an email? Use Rephraser to revamp your vocabulary and discover new idiomatic expressions for commonly-used ideas.

Enjoy AI-based translation from and to English

Not a native English speaker? Use Reverso’s AI translator to enjoy natural-sounding and accurate translations from and to English.

With Rephraser, fix errors that grammar checkers can’t detect

Grammar checkers are effective at correcting rule-based mistakes such as subject-verb agreement or wrong prepositions. This is not always enough to make your ideas shine. Use Rephraser to bring enhancements at the sentence level, making your text more fluid and pleasant to read: fix word order, reduce repetitions, replace simple words with idioms, and boost your overall style.

This tool enables you to correct the most cumbersome mistakes, with a high degree of accuracy and speed, and to improve your written English. When several corrections are possible, you are prompted to choose one of them. There are cases when mistakes are skipped in order to limit the display of warnings or when the suggested corrections are not perfectly adapted to the context. Therefore, we advise you to review the text yourself after the correction. To improve your English spelling, you can also consult our online grammar module and our conjugator. Do not hesitate to send us your feedback on the results of the spelling and grammar check. This way, you will enable us to improve our service. Contact us if you want to implement a spell-checking tool adapted to your company (for French, English or other languages). If you are looking for a PC product, we recommend Ginger.

The concept of an automatic and interactive online spell-checker was created and developed by Reverso Technologies Inc. in addition to the online translation service. It makes use of the best technologies developed by Ginger Software with an interface, settings and complementary processings specifically devised by Reverso Technologies Inc. for the Reverso website and the corporate products.

Helping millions of people and large organizations communicate more efficiently and precisely in all languages.

Источник

Обзор открытых решений для исправления опечаток

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

Задача исправления опечаток, на первый взгляд, кажется довольно несложной. Но если отталкиваться от разнообразия ошибок, реализация решения может оказаться трудной. В целом, исправление опечаток разделяется на контекстно-независимое и контекстно-зависимое (где учитывается словарное окружение). В первом случае ошибки исправляются для каждого слова в отдельности, во втором – с учетом контекста (например, для фразы «она пошле домой» в контекстно-независимом случае исправление происходит для каждого слова в отдельности, где мы можем получить «она пошел домой», а во втором случае правильное исправление выдаст «она пошла домой»).

В поисковых запросах русскоязычного пользователя можно выделить четыре основные группы ошибок только для контекстно-независимого исправления [1]:
1) ошибки в самих словах (пмрвет → привет), к этой категории относятся всевозможные пропуски, вставки и перестановки букв – 63,7%,
2) слитно-раздельное написание слов – 16,9%,
3) искаженная раскладка (ghbdtn → привет) – 9,7 %,
4) транслитерация (privet → привет) – 1,3%,
5) смешанные ошибки – 8,3%.

Пользователи совершают опечатки приблизительно в 10-15% случаях. При этом 83,6% запросов имеют одну ошибку, 11,7% –две, 4,8% – более трёх. Контекст важен в 26% случаев.

Эта статистика была составлена на основе случайной выборки из дневного лога Яндекса в далеком 2013 году на основе 10000 запросов. В открытом доступе есть гораздо более ранняя презентация от Яндекса за 2008 год, где показано похожее распределение статистики [2]. Отсюда можно сделать вывод, что распределение разновидностей ошибок для поисковых запросов, в среднем, с течением времени не изменяется.

В общем виде механизм исправления опечаток основывается на двух моделях: модель ошибок и языковая модель. Причем для контекстно-независимого исправления используется только модель ошибок, а в контекстно-зависимом – сразу две. В качестве модели ошибок обычно выступает либо редакционное расстояние (расстояние Левенштейна, Дамерау-Левенштейна, также сюда могут добавляться различные весовые коэффициенты, методы на подобие Soundex и т. д. – в таком случае расстояние называется взвешенным), либо модель Бриля-Мура, которая работает на вероятностях переходов одной строки в другую. Бриль и Мур позиционируют свою модель как более совершенную, однако на одном из последних соревнований SpellRuEval подход Дамерау-Левенштейна показал результат лучше [3], несмотря на тот факт, что расстояние Дамерау-Левенштейна (уточнение – невзвешенное) не использует априори информацию об опечаточной статистике. Это наблюдение особо показательно в том случае, если для разных реализаций автокорректоров в библиотеке DeepPavlov использовались одинаковые обучающие тексты.

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

Также контекстно-зависимое исправление для корректировки опечаток в запросах очень требовательно по ресурсам. Например, в одном из выступлений Яндекса список пар для исправления опечаток (биграмм) слов отличался в 10 раз по сравнению с количеством слов (униграмм), что тогда говорить про триграммы? Очевидно, что это существенно зависит от вариативности запросов. Немного странно выглядит, когда автокорректор занимает половину памяти от предлагаемого продукта компании, целевое назначение которого не ориентировано на решение проблемы правописания. Так что вопрос внедрения контекстно-зависимого исправления в поисковых системах программных продуктов может быть весьма спорным.

На первый взгляд, складывается впечатление, что существует много готовых решений под любой язык программирования, которые можно использовать без особого погружения в подробности работы алгоритмов, в том числе – в коммерческих системах. Но на практике продолжается разработка своих решений. Например, сравнительно недавно в Joom было сделано собственное решение по исправлению опечаток с использованием языковых моделей для поисковых запросов [4]. Действительно ли ситуация непроста с доступностью готовых решений? С этой целью был сделан, по возможности, широкий обзор существующих решений. Перед тем как приступить к обзору, определимся с тем, как проверяется качество работы автокорректора.

Проверка качества работы

Вопрос проверки качества работы автокорректора весьма неоднозначен. Один из простых подходов проверки — через точность (Precision) и полноту (Recall). В соответствии со стандартом ISO, точность и полнота дополняются правильностью (на англ. «corectness»).

Полнота (Recall) рассчитывается следующим образом: список из правильных слов подается автокорректору (Total_list_true), и, количество слов, которое автокорректор считает правильными (Spellchecker_true), разделенное на общее количество правильных слов (Total_list_true), будет считаться полнотой.

Для определения точности (Precision) на вход автокорректора подается список из неправильных слов (Total_list_false), и, количество слов, которое автокорректор считает неправильным (Spell_checker_false), разделенное на общее количество неправильных слов (Total_list_false), определяют как точность.

Насколько вообще эти метрики информативны и как могут быть полезны, каждый определяет самостоятельно. Ведь, фактически, суть данной проверки сводится к тому, что проверяется вхождение слова в обучающий словарь. Более наглядной метрикой можно считать correctness, согласно которой автокорректор для каждого слова из тестового множества неправильных слов формирует список кандидатов-замен, на которые можно исправить это неправильное слово (следует иметь в виду, что здесь могут оказаться слова, которые не содержатся в обучающем словаре). Допустим, размер такого списка кандидатов-замен равен 5. Исходя из того, что размер списка равен 5, будет сформировано 6 групп, в одну из которых мы будем помещать наше каждое исходное неправильное слово по следующему принципу: в 1-ую группу — если в списке кандидатов-замен предполагаемое нами правильное слово стоит 1-ым, во 2-ую если стоит 2-ым и т. д., а в последнюю группу — если предполагаемого правильного слова в списке кандидатов-замен не оказалось. Разумеется, чем больше слов попало в 1-ую группу и чем меньше в 6-ую, тем лучше работает автокорректор.

Рассмотренного выше подхода придерживались авторы в статье [5], в которой сравнивались контекстно-независимые автокорректоры с уклоном на стандарт ISO. Там же приведены ссылки на другие способы оценки качества.

С одной стороны, такой подход не базируется на опечаточной статистике, в основу которого может быть положена модель ошибок Бриля-Мура [6], либо модель ошибок взвешенного расстояния Дамерау-Левенштейна.

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

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

Готовые решения

Рассмотрение готовых решений проводилось с уклоном на собственное использование, и приоритет отдавался автокорректорам, которые удовлетворяют трем критериям:
1) язык реализации,
2) тип лицензии,
3) обновляемость.

В продуктовой разработке язык Java считается одним из самых популярных, поэтому приоритет при поиске библиотек отдавался ему. Из лицензий актуальны: MIT, Public, Apache, BSD. Обновляемость — не более 2-х лет с последнего обновления. В ходе поиска фиксировалась дополнительная информация, например, о поддерживаемой платформе, требуемые дополнительные программы, особенности применения, возможные затруднения при первом использовании и т. д. Ссылки с основными и полезными ресурсами на источники приведены в конце статьи. В целом, если не ограничиваться вышеупомянутыми критериями, количество существующих решений велико. Давайте кратко рассмотрим основные, а более подробно уделим внимание лишь некоторым.

Исторически одним из самых старых автокорректоров является Ispell (International Spell), написан в 1971 на ассемблере, позднее перенесен на C и в качестве модели ошибок использует редакционное расстояние Дамерау-Левенштейна. Для него даже есть словарь на русском языке. В последующем ему на замену пришли два автокорректора HunSpell (ранее MySpell) и Aspell. Оба реализованы на на C++ и распространяются под GPL лицензиями. На HunSpell также распространяется GPL/MPL и его используют для исправления опечаток в OpenOffice, LibreOffice, Google Chrome и других инструментах.

Для Интернета и браузеров есть целое множество решений на JS (сюда можно отнести: nodehun-sentences, nspell, node-markdown-spellcheck, Proofreader, Spellcheck-API — группа решений, базирующаяся на автокорректоре Hunspell; grunt-spell — под NodeJS; yaspeller-ci — обертка для автокорректора Яндекс.Спеллер, распространяется под MIT; rousseau — Lightweight proofreader in JS — используется для проверки правописания).

В категорию платных решений входят: Spellex; Source Code Spell Checker — как десктопное приложение; для JS: nanospell; для Java: Keyoti RapidSpell Spellchecker, JSpell SDK, WinterTree (у WinterTree можно даже купить исходный код за $5000).

Широкой популярностью пользуется автокорректор Питера Норвига, программный код на Python которого находится в публичном доступе в статье «How to Write a Spelling Corrector» [7]. На основе этого простого решения были построены автокорректоры на других языках, например: Norvig-spell-check, scala-norvig-spell-check (на Scala), toy-spelling-correctorGolang Spellcheck (на GO), pyspellchecker (на Python). Разумеется, здесь никакой речи не идет о языковых моделях и контекстно-зависимом исправлении.

Для текстовых редакторов, в частности для VIM сделаны vim-dialect, vim-ditto — распространяются под публичной лицензией; для Notepad++ разработан DspellCheck на C++, лицензия GPL; для Emacs сделан инструмент автоматического определения языка при печати, называется guess-language, распространяется под публичной лицензией.

Есть отдельные сервисы от поисковых гигантов: Яндекс.Спеллер — от Яндекса, про обертку к нему было сказано выше, google-api-spelling-java (соответственно, от Google).

Бесплатные библиотеки для Java: languagetool (лицензируется под LGPL), интегрируется с библиотекой текстового поиска Lucene и допускает использование языковых моделей, для работы необходима 8 версия Java; Jazzy (аналог Aspell) распространяется под лицензией LGPLv2 и не обновлялась с 2005 года, а в 2013 была перенесена на GitHub. По подобию этого автокорректора сделано отдельное решение [8]; Jortho (Java Orthography) распространяется под GPL и разрешает бесплатное использование исключительно в некоммерческих целях, в коммерческих — за дополнительную плату; Jaspell (лицензируется под BSD и не обновлялся с 2005 года); Open Source Java Suggester — не обновлялся с 2013 года, распространяется SoftCorporation LLC и разрешает коммерческое применение; LuceneSpellChecker — автокорректор библиотеки Lucene, написана на Java и распространяется под лицензией Apache.

На протяжении длительного времени вопросом исправления опечаток занимался Wolf Garbe, им были предложены алгоритмы SymSpell (под MIT лицензией) и LinSpell (под LGPL) с реализациями на C# [9], которые используют расстояние Дамерау-Левенштейна для модели ошибок. Особенность их реализации в том, что на этапе формирования возможных ошибок для входного слова, используются только удаления, вместо всевозможных удалений, вставок, замен и перестановок. По сравнению с реализацией автокорректора Питера Норвига оба алгоритма за счет этого работают быстрее, при этом прирост в скорости существенно увеличивается, если расстояние по Дамерау-Левенштейну становится больше двух. Также за счет того, что используются только удаления, сокращается время формирования словаря. Отличие между двумя алгоритмами в том, что LinSpell более экономичен по памяти и медленнее по скорости поиска, SymSpell — наоборот. В более поздней версии SymSpell исправляет ошибки слитно-раздельного написания. Языковые модели не используются.

К числу наиболее свежих и перспективных для пользования автокорректоров, работающих с языковыми моделями и исправляющих контекстно-зависимые опечатки относятся Яндекс.Спеллер, JamSpell [10], DeepPavlov [11]. Последние 2 распространяются свободно: JamSpell (MIT), DeepPavlov (под Apache).

Яндекс.Спеллер использует алгоритм CatBoost, работает с несколькими языками и исправляет всевозможные разновидности ошибок даже с учетом контекста. Единственное из найденных решение, которое исправляет ошибки неверной раскладки и транслитерацию. Решение обладает универсальностью, что делает его популярным. Его недостатком является то, что это удаленный сервис, а про ограничения и условия пользования можно прочитать здесь [12]. Сервис работает с ограниченным количеством языков, нельзя самостоятельно добавлять слова и управлять процессом исправления. В соответствии с ресурсом [3] по результатам соревнований RuSpellEval этот автокорректор показал самое высокое качество исправлений. JamSpell — самый быстрый из известных автокорректор (C++ реализация), здесь есть готовые биндинги под другие языки. Исправляет ошибки только в самих словах и работает с конкретным языком. Использовать решение на уровне униграмм и биграмм нельзя. Для получения приемлемого качества требуется большой обучающий текст.
Есть неплохие наработки у DeepPavlov, однако интеграция этих решений и последующая поддержка в собственном продукте может вызвать затруднения, т. к. при работе с ними требуется подключение виртуального окружения и использование более ранней версии Python 3.6. DeepPavlov предоставляет на выбор три готовых реализации автокорректоров, в двух из которых применены модели ошибок Бриля-Мура и в двух языковые модели. Исправляет только ошибки орфографии, а вариант с моделью ошибок на основе расстояния Дамерау-Левенштейна может исправлять ошибки слитного написания.

Упомяну ещё про один из современных подходов к исправлению опечаток, который основан на применении векторных представлений слов (Word Embeddings). Достоинством его является то, что на нем можно построить автокорректор для исправления слов с учетом контекста. Более подробно про этот подход можно прочитать здесь [13]. Но чтобы его использовать для исправления опечаток поисковых запросов вам потребуется накопить большой лог запросов. Кроме того, сама модель может оказаться довольно емкой по потребляемой памяти, что отразится на сложности интеграцию в продукт.

Выбор Naumen

Из готовых решений для Java был выбран автокорректор от Lucene (распространяется под лицензией от Apache). Позволяет исправлять опечатки в словах. Процесс обучения быстрый: например, формирование специальной структуры данных словаря – индекса для 3 млн. строк составило 30 секунд на процессоре Intel Core i5-8500 3.00GHz, 32 Gb RAM, Lucene 8.0.0. В более ранних версиях время может быть больше в 2 раза. Размер обучающего словаря – 3 млн. строк (

73 Mb txt-файл), структура индекса

235 Mb. Для модели ошибок можно выбирать расстояние Джаро-Винклера, Левенштейна, Дамерау-Левенштейна, N-Gram, если нужно, то можно добавить свое. При необходимости есть возможность подключения языковой модели [14]. Модели известны с 2001 года, но их сравнение с известными современными решениями в открытом доступе не было обнаружено. Следующим этапом будет проверка их работы.

Полученное решение на основе Lucene исправляет только ошибки в самих словах. К любому подобному решению несложно добавить исправление искаженной раскладки клавиатуры путем соответствующей таблицы перевода, тем самым сократить возможность нерелевантной выдачи до 10% (в соответствии с опечаточной статистикой). Кроме того, несложно добавить раздельное написание слитых 2-х слов и транслитерацию.

В качестве основных недостатков решения можно выделить необходимость знания Java, отсутствие подробных кейсов использования и подробной документации, что отражается на снижении скорости разработки решения для Data-Science специалистов. Кроме того, не исправляются опечатки с расстоянием по Дамерау-Левенштейну более 2-х. Опять же, если отталкиваться от опечаточной статистики, более 2-х ошибок в слове возникает реже, чем в 5% случаев. Обоснована ли необходимость усложнения алгоритма, в частности, увеличение потребляемой памяти? Тут уже зависит от кейса заказчика. Если есть дополнительные ресурсы, то почему бы их не использовать?

Основные ресурсы по доступным автокорректорам:

Источник

Приложения:


bahacfc666:
даите ответ плс

Ответы

Автор ответа: ajsultantemirshinov





56

Ответ:

1) chickenpox

2)liquids

Объяснение:написано chikenpox a правилно chiCkenpox

написано likuids а правилно liQuids


anakosanenko19:
спасибо большое!

samiratulegenova5:
правильно

giornodc24:
спасибо правильно

milanazevald:
Спасибо, правильно))

Автор ответа: abulhajyrajdyn





21

Ответ:

1-chikenpox

2-likuids


abulhajyrajdyn:
ПРАВИЛЬНО Я САМ ПРАВЕРИЛ!!!!!!

zhirnovnikita04:
да правильно

bekmaganovb:
спасибо ооооооо

ajtmurzakausar:
правильно,спасибо

Интересные вопросы

Предмет: Геометрия,
автор: anastasiyaprokhorova

Предмет: Физика,
автор: lenamihajlenko28234

Предмет: История,
автор: bogdanowakrist


Английский язык,


вопрос задал milisskim,


4 года назад

Приложения:


izokostya2706:
1 hunger

2 sickness

Ответы на вопрос

Ответил tattev





22

Ответ:

1 hunger

2 sickness

Объяснение:

pay attention to the missing letters. i’ve written them in bold


milisskim:
Thank you

tattev:
My pleasure!

baqytmaqsat:
Thank you

yulia2455:
Thank you

Предыдущий вопрос

Следующий вопрос

Новые вопросы

Физика,
6 месяцев назад

1) Найдите силу тяжести, действующую на
а) человека массой 80кг,
б) автомобиль массой 2т,
в) кубик массой 200 г.
(во всех расчётах силы тяжести масса должна быть выражена в СИ (кг).)…

Физика,
6 месяцев назад

3. Температура глицерина 280 градусов. Какое количество тепла необходимо подвести к глицерину , чтобы он закипел. Температура кипения глицерина 290 градусов, масса глицерина 0.5 кг, удельная теплота…

Қазақ тiлi,
4 года назад

3-тапсырма. Көп нүктенің орнына тиісті қосымшаларды жаз. Менің күртеше… Сенің күртеше… Оның күртеше… Менің пәлте… Сенің пәлте… Оның пәлте… Менің жемпір… Сенің жемпір… Оның жемпір…

История,
4 года назад

10 тестовых вопросов с вариантами ответов по Казахстан в составе Монгольской империи 10 вопросов с 3 вариантами ответов срочно​…

Химия,
6 лет назад

Помогите 1 и 2 ,пожалуйста…

Математика,
6 лет назад

для пошива 40 мужских плащей требуется 200 метров ткани сколько таких плащей можно сшить из 60 метров ткани…

  • Предмет: Английский язык
  • Автор: nurbols
  • Вопрос задан 6 месяцев назад

Professional treatment
in each sentence, find one spelling error
spelling erro​

Приложения:

Ответы

Ответ дал: sadartinova





58

Ответ:

neumonia,throut

Объяснение:

правильно в онлайн мектеп


Аноним:
наставим лафйков он старался для нас

adyblnaelmira10:
Всё правильно!

adyblnaelmira10:
2 тоже правильно!

sosnitskaimariana13:
правильно спасибо!

Аноним:
так правильно или не правильно,

Ответ дал: moldabaevaslan07





33

Приложения:


Аноним:
Спасибо, правильно.

kuskinbaevfarhad:
и в одно время написали,так что это не плагиат,а совпадение

Аноним:
ты разницу в картинках видеш

Аноним:
точтоу этого длиней а у 1 ответа кароче

Аноним:
вобше у него нету ккартинки

Аноним:
такчто он не плагиатитэ

serikovislambek:
от души душевно в душу

AdiyaIbraim:
Комментарий удален

Похожие вопросы

Понравилась статья? Поделить с друзьями:
  • Production of dumps traces error messages and other debugging and error detecting aids
  • Product registration error please go by browser to do registration msi
  • Product id windows 10 как изменить
  • Product configuration is missing как исправить
  • Product category woocommerce как изменить