О проекте:
    модуль-расширение, позволяет производить лексический анализ слов из Питоновсих скрипов.
    Результатом удачной сборки проекта должна быть динамическая библиотека (DLL, SO)
    с именем (на данный момент) liblemmer_python_binding
    (расширение платформо-зависимое, для Win: '.pyd', для *NIX: '.so').

    NOTE 1: имя модуля влияет на импортирование модуля в Питоновский интерпретатор
    (модуль должен экспортировать функцию с именем 'init$(module name)', где $(module name) - имя модуля).

    NOTE 2: что бы импортировать модуль или пакет из питоновского скрипта,
    необходимо что бы модуль находился в одной из директорий, откуда интерпретатор Python загружает модули.
    В частности, модуль может находиться в той же директории где находится рабочий скрипт.
    Более подробную информацию можно найти в документации к cPython.

    NOTE 3: чтобы собрать модуль для системного питона, а не аркадийного, нужно в
    local.ymake в корне аркадии дописать USE_ARCADIA_PYTHON=no и WERROR_MODE=none 
    или пересобрать его такой командой:
    ya build -rj 16 -DUSE_ARCADIA_PYTHON=no -DWERROR_MODE=none

#-------------------------------------------------------------------------------------------
# классы определенные в модуле
#   (здесь приводится в основном свойства полей: модификатор доступа и тип объекта,
#   документации к функциям следует смотреть в хелпе к модулю):


class LemmaInfo(__builtin__.object)
    Содержит информацию о лемме.
    Определены следующие поля:

    Lemma
        unicode, READONLY
        лемма.

    RuleId
        int, READONLY
        номер правила, по которому построилась лемма

    Bastardness
        int, READONLY
        Бастардность леммы. На данный момент представляет собой битовую маску
        Актуальные значения всегда можно посмотреть в kernel/lemmer/core/lemmer.h
        QDictionary  = 0x00000000, // слово из словаря
        QBastard     = 0x00000001, // не словарное
        QSob         = 0x00000002, // из "быстрого словаря"
        QPrefixoid   = 0x00000004, // словарное + стандартный префикс (авто- мото- кино- фото-) всегда в компании с QBastard или QSob
        QFoundling   = 0x00000008, // непонятный набор букв, но проходящий в алфавит
        QBadRequest  = 0x00000010, // доп. флаг.: "плохая лемма" при наличии "хорошей" альтернативы ("махать" по форме "маша")
        QFromEnglish = 0x00010000, // переведено с английского
        QToEnglish   = 0x00020000, // переведено на английский
        QUntranslit  = 0x00040000, // "переведено" с транслита
        QOverrode    = 0x00100000, // текст леммы был перезаписан
        QFix         = 0x01000000, // слово из фикс-листа

    First
        int, READONLY

    Last
        int, READONLY

    Form
        unicode, READONLY
        форма леммы.

    FormFeature
        tuple, READONLY
        список списков свойств (tuple of lists of unicode objects).

    Language
        unicode, READONLY
        язык леммы (пример: u'en', u'ru')

    LexicalFeature
        list, READONLY
        список лексических свойств, каждый элемент списка является объектом unicode.

    Weight
        float, READONLY
        нормализованная частота леммы
        Чтобы для русского языка не всегда возвращалась
        нулевая частота, нужно раскоментировать 
        kernel/lemmer/new_dict/rus
        в CMakeLists.txt и пересобрать.

#-------------------------------------------------------------------------------------------
# функции модуля:

AnalyzeWord(word, langs=None, optlangs=None, split=True)
    возвращает список (list) из объектов класса LemmaInfo - результат лексического анализа данного слова.

    word - входное слово; должно быть объектом unicode, либо str в кодировке windows-1251.

    langs, optlangs - tuple или list состоящий из объктов unicode или str в кодировке windows-1251;
        определяют языки в контексте которых необходимо производить разбор:
        langs - определяет список языков с приоритетами (чем раньше в списке. тем приоритетней);
        optlangs - определяет дополнительные языки поиска (такие языки имеют наименьший приоритет);
        объединение языков из langs и optlangs определяет все языки в контексте которых нужно проводить анализ;
        если аргумент langs не задан, то по умолчанию используются все (известные леммеру) языки.

        Если строка не является правильным именем языка, то будет брошено исключение
        (пример правильных языков: 'en', 'ru'. Список поддерживаемых языков содержится в списке LANGUAGES).

    split - boolean. Параметр который определяет проводить ли дополнительную токенизацию слова или нет.
        Токенизация проводится по символам "'-+#".

    accept_translit - boolean. Использовать ли (де)транслитерацию: например,
        разбирать ли "mama" как русское "мама"
