sup, /dev. Не прошло и года, как я таки сподобился сделать подобие классификатора текста (на предобученном word2vec и свёрточной сети). Идея, конечно, не моя (да и реализация отчасти).
Код тут https://bitbucket.org/alex43210/pynlc/overview.
Хабропост с чутком подробностей и ссылками на то, у кого и что честно стянуто - https://habrahabr.ru/post/315118/. Вкратце - выборка из 22000 длинных текстов (5000 тестовых) на входе - ошибка (mse) около 1%, 400 коротких - 5%, 50 коротких (но там вообще всё можно свести к 1 слову на текст) - 1%. Какой-то я подозрительно везучий. Нужен в пух и прах ломающий всё датасет.
Ну и да, между делом возникли вопросы :
- есть ли в nltk возможность выделить взаимосвязи между словами (а то оно мне не выкинет «on» из «turn this machine off and wath on this schematic», ибо «turn» из «turn on» уже в тексте). Ну там чтобы «on» было узлом в дереве «turn», как-то так. Вроде нет, но вдруг я очень плохо ищу.
- есть ли готовые алгоритмы коррекции очепяток, учитывающие как расстояние, допустим, Левенштейна, так и расстояние между векторами словарного слова и обучающей выборки? Даже не представляю, как искать - google://levenshtein+word2vec+misstype не помогает, например.