Планы работ

naturallanguage TODO.txt

Андрей Орлов  2008-02-13 13:31

Краткая формулировка плана работ по моему нейросетевому продукту, оставшемуся от прошлого.

Что надо сделать и что где есть

Что надо сделать и что где есть

Об оформлении док и прочего

Во-1-ых, как ясно по виду этого текста, доки лучше писать в виде REST. Он непосредственно из сабвершен забирается в вики, поэтому можно ставить некие вики-конструкции, о которых я расскажу еще позже. С и C++ файлы, видимо, будут пропущены через автоматический стилизатор и регулярно пропускаться через него. Кажется назывался он astyle когда-то, может щаз то новое написали (astyle немного лажался с плюсами).

Документация

Документацию обещал посмотреть Егор, что бы помочь выудить из нее рациональное зерно и подготовить к публикации. Скорее всего документация уедет в отдельный пакет.

Первичная работа по C/C++ пакетам

Если я правильно помню, из всего наработанного, первое и главное что имеет самостоятельную ценность - это пакет categorizator. Надо попытаться его пересобрать. Сам по себе он не существует, для начало нужно собрать векторную библиотеку и библиотеку конфигуратора. Вот наверно так и начнем:

libcfg
библиотека поддержки конфигурации, для начала мы ее просто пересобираем, потом смотрим, как от нее отказаться, используя вместо нее питоновскую программу;
libvector
Это моя векторная библиотека. Я не уверен что она хорошо сделана, возможно ей нужен редизайн и весьма серьезный. Ну и опять-таки часть кода из нее (особенно типа ввод-вывод) в будущих версиях должно быть отчуждено и уйти либо во friend-классы (если я правильно помню что это такое) либо в питон. Скорее всего - и туда и туда.
categorizator
Это, с учетом вышесказанного, сравнительно простой алгоритм, там всего ничего строчек.

Все перечисленное выделяется в отдельные проекты и собирается вначале "как есть", т.е. в виде всеми нами любимого C++, потом к нему дописывается отдельная обертка для вызова из питона.

Собственно план

  1. Пересобрать libcfg под GCC 4.1 (сделано)
  2. Пересобрать libvector под GCC 4.1 (сделано)
  3. Пересобрать categorizator под GCC 4.1 member/tasman
  4. Решить как все это отмапить на python member/orlov
  5. Замена libcfg на некий питоновский модуль, вероятно со сменой логики (надо обсудить как);
  6. Предположительно биндинг на python libvector;
  7. Предположительно биндинг на python categorizator;
  8. Утилита на питоне выполняющая, например, категоризацию текстов;

В этом месте будет не венец творения, но можно будет сказать "хорошо потрудились". Собственно для категоризатора есть альтернативный алгоритм - конвенциональный - который я постараюсь зарелизить при наличии библиотеки libvector;

По дальнейшим планам, видимо, надо будет попробовать оживить "второй слой" и сделать какую-то замену activedictionary (вариантов много и они общеизвестны) и собрать классификатор текстов. Если это заработает - есть несколько полукоммерческих задач на которые мы можем сразу же нацелится.

Другие пакеты

С другими пакетами несколько сложнее. Большая часть из них работает и может реально применяться, но полезность, к сожалению, требует дополнительной оценки. Те данные, которые были получены при дипломном проектировании вполне удовлетворительны, но требуют дополнительной проверки. Далее по пакетам:

activedictionary
Активный словарь - это, насколько я понимаю, громкое рекламное название. Впрочем сама теория на конфе произвела фурор. Статус кода требует изучение, чем я займусь.
correlator
Построение корреляционной матрицы контекста слов - фактически это немножко неудачный эксперимент. Формально результаты были не хуже чем у оригинала, но на практике я не смог ими воспользоваться.
libneural
Нейросетевая библиотека -- не понимаю сейчас что это :).
libtree
Деревья и очереди, во-1-ых не используется, во-2-ых в STL такого добра навалом;
preprocessors
Препроцессоры для обработки текста: не понимаю сейчас что это.

summator

Паралельный сумматор (использует pvm, работает, но морально устарел), кажется был прототипом коррелятора.

som_pack-3.1.patched

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

Заключение

Ну вот, краткий обзор и план работы. Я думаю, ее результаты не будут чем то сногсшибательным, это все скорее что бы втянутся, вспомнить что было и не начинать с нуля.

Эпицентр Zope3 Учат тут DreamBot Репозиторий Статистика Редакторам
Официальный сайт Zope3 Московская группа изучения реактивного движения The Dream Bot Site