Ваш вопрос помечен как NodeJS и Python.Это специфическая часть NodeJS, но я думаю, что она очень похожа на python.
Windows (начиная с Windows 8 и Mac OS X) имеют встроенные механизмы проверки орфографии.
- Windows: «Windows Spell Checking API» - это C / C ++ API.Чтобы использовать его с NodeJS, вам нужно создать привязку.
- Mac OS X: «NSSpellChecker» является частью AppKit, используемой для приложений с графическим интерфейсом.Это API-интерфейс Objective-C, поэтому вам снова потребуется создать привязку.
- Linux: здесь нет "API для конкретной ОС".Большинство приложений используют Hunspell, но есть альтернативы.Это снова библиотека C / C ++, поэтому необходимы привязки.
К счастью, уже существует модуль под названием spellchecker , который имеет привязки для всего вышеперечисленного.При этом будет использоваться встроенная система для платформы, на которой она установлена, но есть несколько недостатков:
1) Должны быть собраны собственные расширения.На этом закончены двоичные файлы через node-pre-gyp, но они должны быть установлены для определенных платформ.Если вы разрабатываете в Mac OS X, запустите npm install
, чтобы получить пакет, а затем разверните свое приложение в Linux (с каталогом node_modules
), оно не будет работать.
2) Использование build-при проверке орфографии будут использоваться настройки по умолчанию, установленные ОС, что может не соответствовать вашим ожиданиям.Например, используемый язык может быть продиктован выбранным языком ОС.Для приложения пользовательского интерфейса (например, сборки с Electron) это может быть хорошо, но если вы хотите выполнять проверку орфографии на стороне сервера на языках, отличных от языка ОС, это может оказаться затруднительным.
Набазовый уровень, проверка орфографии некоторого текста сводится к следующему:
- Токенизация строки (например, пробелами)
- Проверка каждого токена на соответствие списку известных правильных слов
- (Бонус) Собирайте предложения по неверным токенам и предлагайте пользователю варианты.
Вы можете написать часть 1 самостоятельно.Часть 2 и 3 требуют «список известных правильных слов» или словарь.К счастью, есть формат и инструменты для работы с ним:
СТаким образом, вы можете выбрать язык, вам не нужно создавать / загружать какой-либо нативный код, и ваше приложение будет работать одинаково на всех платформах.Если вы проверяете орфографию на сервере, это может быть вашим наиболее гибким вариантом.