Category: россия

Category was added automatically. Read all entries about "россия".

претрейнинг для seq2seq модели incomplete utterance restoration

В продолжение поста о модели интерпретатора.

Эксперименты с обучением seq2seq модели показывают, что имеющегося набора обучающих данных (~76 тысяч сэмплов) маловато.
Хотя по мере добавления новых сэмплов (особенно в ходе итераций active learning) качество растет.

Можно предположить, что часть проблем модели вытекает из редкости некоторых слов и n-грамм.

А что, если попробовать сначала "разогреть" сетку сырыми, невалидированными данными?

У меня есть код автогенерации сэмплов из реальных текстов. С помощью набора правил и синтаксического парсера можно для произвольного утвердительного предложения сгенерировать вопрос и ответ:
Collapse )

Большие братья смотрят за тобой! Но некоторые косят. (оффтопик)

На фоне "Strava’s data lets anyone see the names (and heart rates) of people exercising on military bases" конечно мелочь, но:
Сделал заказ на Яндекс.Такси из дома с планшета - мое местоположение автоматически определилось с точностью до дома, жаль подъезд не подцепился в заказ.
Вхожу в личный кабинет Ростелекома для оплаты инета - стабильно определяет, что я в Вологде, то есть ошибка в 100 км. Хотя кому как не им знать рутинг до квартиры.

Кластеризация составляющих - промежуточные результаты

Берем из большого набора предложений фрагменты синтаксических деревьев - узел и все его потомки.
Для каждого фрагмента получаем средний вектор, складывая word2vector представления слов.
Кластеризуем получившийся набор векторов с помощью простого K-means, взяв cosine similarity в качестве метрики.

По задумке мы должны получить фреймы - типовые семантико-синтаксические модели.

Вот некоторые интересные кластеры:

Collapse )

Collapse )

Collapse )

Collapse )


Collapse )

Collapse )



Collapse )


Collapse )

Сбор коллокаций предлог+(прилагательное+существительное) из tree bank

Продолжение темы http://kelijah.livejournal.com/166962.html.
Из части tree bank собраны предложные паттерны ПРЕДЛОГ+(ПРИЛ+СУЩ).
TOP 200 с сортировкой по mutual information:

Collapse )

Интересно, что значительная часть из них имеет оттенок идеоматичности ("на моих глазах") и соответствуют обстоятельству "как", хотя много и просто частотных "аналитических локативов" (в нижегородской области) и "директивов" (в свою комнату).

Статистически устойчивые пары прилагательное+существительное

Исходный материал - tree bank размером 143,139,298 слов, полученный синтаксическим разбором примерно 1.4 Гб русского текста в utf-8.

Из синтаксических деревьев брались именные группы прилагательное+существительное. Если прилагательное отсутствовало, то в статистике такая пара отражалась с подстановочным маркером прилагательного ((null)). Слова приводились к леммам.

Далее результат был загружен в MS SQL в табличку с тремя столбцами adj, n и freq. С помощью запроса

select A_N.adj + REPLICATE(' ', 20-LEN(A_N.adj) ), A_N.n + REPLICATE(' ', 20-LEN(A_N.N)), A_N.freq
 from adj_n A_N, adj_n NULL_N
 where NULL_N.n=A_N.n
       and A_N.adj!='((null))'
       and NULL_N.adj='((null))'
       and A_N.freq>NULL_N.freq
 order by A_N.freq desc
    
выведены такие пары adj+n, для которых частотность ((null))+n ниже, чем частотность adj+n. Другими словами, в выборку попали такие существительные, которые употребляются без определения реже, чем с ним. Первые 100 записей выглядят так:

Collapse )

Коллокации предлог+прилагательное+существительное

Продолжаею тему, начатую здесь.
Собраны предложные группы, состоящие из трех слов. Прилагательное является атрибутом существительного, то есть согласовано с ним по падежу, числу, роду, одушевленности.

TOP-100 по абсолютной частоте:
Collapse )

TOP-100 по mutual information:
Collapse )

Статистика по коллокациям предлог+сущ

Из результатов синтаксического парсинга собраны предложные дополнения, содержащие только предлог и существительное.
ТОП-100 по частоте:
Collapse )

Можно заметить, что предлоги "лемматизированы", то есть для коллокации "во сне" в статистике появилось "в|сне". Формы существительного оставлены как есть, поэтому "за окно" и "за окном" являются отдельными коллокациями.

Эта же статистика, но ранжировка по mutual information:
Collapse )

Сравнение ранжировки словосочетаний adj+noun по mutual information и по частоте

Парсер обработал почти 1 Гб русского текста (в utf-8).
Результат парсинга - примерно 40 Гб в XML с частеречной разметкой и синтаксическими деревьями.
Специальная утилита разбирает эти деревья, выделяет из них словосочетания заданного типа. В данном случае мы собираем согласование прилагательное+существительное.
После сортировки по убыванию частоты словосочетаний получаем такую картину:
Collapse )

А если подсчитать mutual information и отсортировать по ее убыванию, то получается:
Collapse )
В глаза сразу бросается, что из топа пропали прилагательные "свой", "мой" и так далее.

Текучка по word2vec

Что самое главное в "обучении без учителя"? А то, что запустил с утра прокачку модели, и можно спокойно отправляться гонять на тракторе по лужам, или строить гараж из песка и досочек, или сходить покормить голубей и воробушков. В общем, отличный выбор, если вам 2-3 года и на улице хорошая погодка.

Итак, я собрал отладочный стенд для проверки word2vec в таком составе.
1. Сегментатор текста получается на вход текстовый корпус и сохраняет отдельные предложения в текстовом файле в формате "1 строка=одно предложение".
2. POS Tagger, обученный на эталонном размеченном корпусе, снимает неоднозначность и заменяет слова на леммы. Также он выкидывает из текста знаки препинания и приводит слова к нижнему регистру.
3. Результат скармливаем утилите word2vec, которая подбирает для слов векторно-непрерывное представление.
4. Проверяем разные пары слов на близость. Конкретно, ищем косинус угла между векторами, так что косинус=1 означает полное совпадение векторов (угол=0), а косинус=0 означает ортогональность.

Дальше для проверки надо попробовать создать вероятностную модель POS Tagger'а или shift-reduce парсера с использованием векторов в качестве признаков слов, но это на следующем этапе, если на текущем все заработает как хочется.

Итак, текущие результаты - близость некоторых пар, от самых близких до самых непохожих. На входе п.3 имеем файл размером примерно 174 Мб в utf-8.

Collapse )