Category: происшествия

Неудачный эксперимент: генерация морфологических признаков слов через w2v и кластеризацию

Сама идея простая. Делал её экспериментальную реализацию для для Парсера. Потом вторая попытка - для morphorueval2017. Особого эффекта добиться не удалось, но возможно в каком-то другом сценарии анализа текста она будет полезной.

Далее описываю реализацию для morphorueval.
Есть набор корпусов, предоставленных организаторами конкурса.
Мы берем из них только слова, генерируем текстовый файл в формате: одна строка - одно предложение. Слова разделены пробелами. Занимается этим простой скриптик generate_w2v_corpus.py.
Далее выполняется встраивание слов корпуса в векторное пространство через gensim - второй скриптик train_w2v.py.
Далее выполняется кластеризация слов с помощью K-Means - см. скрипт word_clusters.sklearn.py
Наконец, номера кластеров слов используем как отдельный категориальный признак в любом алгоритме.

Если посмотреть на содержимое кластеров, то обычно можно понять, какие морфологические признаки использованы для объединения:

Collapse )

Главная проблема - небольшой объем текстового корпуса, на котором обучается word2vec. Из-за этого некоторые кластеры получаются неконсистентными.

2-граммы по 3,000,000 синтаксическим деревьям

Примерно 3 миллиона предложений длиной от 6 до 11 слов обработаны синтаксическим парсером.
В полученных леревьях найдены определенные ребра и собрана статистика их встречаемости.

прилагательное + существительное
Collapse )

существительное + существительное_в_род_падеже
Collapse )

существительное_подлежащее + глагол_сказуемое
Collapse )

глагол_сказуемое + существительное_прямое_дополнение
Collapse )