Python проверка орфографии (windows, linux) - PyEnchant
В поиске сложно найти простое решение для проверки орфографии на python, а оно есть, причем как для 2, так и для 3 версии питона.
Эта библиотека называется PyEnchant
Для начала нужно установить библиотеку pyenchant и настроить её.
easy_install pyenchant
теперь нужно добавить словари для русского языка, по умолчанию в виндовс версии доступны только
en_GB: British English
en_US: American English
de_DE: German
fr_FR: French
файлы можно взять из офисных пакетов openoffice и libreoffice
называются они
ru_RU.dic
ru_RU.aff
их нужно скопировать в папку c:/Python27/Lib/site-packages/enchant/share/enchant/myspell
Библиотека содержит достаточное количество функций для проверки орфографии, основные из них проверка правильности написания и варианты в случае неверного написания.
Пример работы (англ):
>>> import enchant
исходники библиотеки и словари с русским языком прикреплены во вложении
>>> d = enchant.Dict("en_US") # создание словаря для US English (англ язык)
>>> d.check("enchant") # проверка орфографии (верно)
True
>>> d.check("enchnt") # проверка орфографии (не верно)
False
>>> d.suggest("enchnt")
['enchant', 'enchants', 'enchanter', 'penchant', 'incant', 'enchain', 'enchanted']
Пример работы (русский)
>>> import enchant
>>> c = enchant.Dict("ru_RU") # подключаем словарь
>>> # Строки в юникоде, буква u перед словом или кодировка utf-8
>>> c.check(u"привет")# проверка орфографии (верно).
True
>>> c.check(u"привт") # проверка орфографии (не верно)
False
>>> c.suggest(u"привт") # возвращает данные в юникоде, просто разбирайте список в for, перекодируется автоматом
[u'\u043f\u0440\u0438\u0432\u0438\u0442', u'\u043f\u0440\u0438\u0432\u0435\u0442', u'\u043f\u0440\u0438\u0432\u0430\u0442', u'\u043f\u0440\u0438\u0432\u044b\u043a']
>>> # в читаемом виде это привит привет приват привык