Python проверка орфографии (windows, linux) - PyEnchant

Автор: Igor Kirsanov

В поиске сложно найти простое решение для проверки орфографии на 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']
>>> # в читаемом виде это привит привет приват привык