Компьютерная лингвистика

Новостная лента www.solarix.ru

Датасеты по сочетаемости слов в группах из 2, 3 и 4 слов (mutual information)
kelijah
В репозитории https://github.com/Koziev/NLP_Datasets/tree/master/MutualInfo выложены датасеты со статистикой по устойчивым сочетаниям слов. Датасеты получены с помощью C# кода, выложенного тут (см. описание) и урезаны до 100,000 первых записей, так как выложить полные файлы размером более 2 Гб на гитхаб невозможно.

Внутри файлов можно увидеть такие данные:
Read more...Collapse )

PyParser - обертка синтаксического парсера для Питона (пре-альфа)
kelijah
Пока собрано и проверено только для Python 2.7 Windows 64 (Anaconda).

Исходники парсера, сильно отрефакторенные, с новой иерархией для введения абстрагирования от способа вывода результатов парсинга, лежат в репозитории. Сборка выполнена с помощью VisualStudio 2015, соответствующее решение Parser.sln лежит в этой папке. Обертка для вызова C++ кода из питоновского сделана с помощью boost::python.

В проекте пока нет установки пакета, поэтому проверить и  использовать можно только руками. В папке лежат готовые бинарники pyparser.pyd и libdesr.dll. Разумеется, также нужны файлы словарной базы (можно взять из дистрибутива парсера, выложенного тут).

Пример выполнения частеречной разметки на Питоне:
Read more...Collapse )

PS: добавлен скрипт setup.py для установки собранного модуля pyparser штатным механизмом питона. Для этого надо перейти внутрь каталога src копии репозитория (там лежит setup.py и прочие запчасти) и выполнить:

pip install .

Будет установлен пакет Solarix, в котором есть модуль pyparser.
Разумеется, делать это можно как глобально, так и для virtualenv-окружения.

Недобрые предчувствия по поводу package hell в питоне
kelijah
Преамбула такая. Я делаю сервис, который занимается извлечением ключевых атрибутов из слабоструктурированных текстов. Предметная
область - нормативно-справочная информация, машиностроение.

Read more...Collapse )

Дистрибутив синтаксического парсера под win64
kelijah
Архив (94 Мб) для MS Windows 64 со всеми актуальными моделями и русской словарной базой доступен по ссылке на странице тут.

Кроме того, выложен исходный код нового тренера модели частеречной разметки, в которой добавлена поддержка conllu-корпусов из http://universaldependencies.org/.

Новая модель для синтаксического парсинга
kelijah
Я немного расширил набор фич в модели синтаксического парсинга и сделал предварительный grid search по метапараметрам.

Пока по предварительным замерами на валидации старая модель давет точность определения родителя примерно 96.83%, а новая модель дает минимум 98.54%.

Файлы новой русской синтаксической модели (предварительные) выложены в репозиторий: syntax.codebook и syntax.model.

После того, как сработает early stopping в тренере модели я планирую погонять финальную версию на текстах и затем выложить дистр на сайте.

Chunker - новая модель в парсере для разбора предложений на составляющие
kelijah
Иногда анализ текста сводится к определению групп слов, образующих составляющие первого уровня относительно корня в терминах дерева зависимостей (см. описание shallow parsing).

Read more...Collapse )

Тетрадка Colaboratory с экспериментами для вариационными и обычными автоэнкодерами для предложений
kelijah
Рабочая тетрадка, которую я сейчас использую в Colaboratory для проверки различных архитектурных параметров двух генеративных текстовых моделей для чатбота:

1) простой сжимающий автоэнкодер на базе sequence2sequence архитектуры
2) вариационный автоэнкодер (немного переработан код отсюда https://github.com/twairball/keras_lstm_vae/blob/master/lstm_vae/vae.py)

Тетрадь доступна по ссылке: https://drive.google.com/file/d/1aWwJeve9yuH9RrrfO0gq5dpuPKxDw0cC/view?usp=sharing

В тетрадке для удобства работы сделана загрузка готовых датасетов из моего гуглодиска внутрь докер-контейнера. Эти два файла (vtexts.npz и word2vec.pkl) были подготовлены скриптом https://github.com/Koziev/pushkin/blob/master/prepare_vae_dataset.py, так что при необходимости можно взять другие  векторы слов вместо word2vec или тренироваться на другом наборе предложений.

Код для автоэнкодеров в нормальном виде лежит тут: https://github.com/Koziev/pushkin/blob/master/lstm_ae.py

Обучение выглядит примерно так (осторожно, большой скрин):
Read more...Collapse )

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

Colaboratory - бесплатно, медленно, сгодится для экспериментов с подбором гиперпараметров ML моделей
kelijah
За три дня экпериментов с Colaboratory лично убедился что:

1) Заливка датасетов туда и обратно немного напрягает. 400-метровый CSV с датасетом скачивается внутрь контейнера из google drive минут 5. Воспользовался рецептом, описанным в официальном howto здесь, то есть залил файлик в свой GD, определил его file ID через расшаривание по ссылке, скачал через googleapiclient и так далее. Потом перекачал скачанные байты во временный файл внутри контейнера. В общем, минут на 15-20, если делать все второй раз после превращения контейнера в тыкву по истечении 12 часов.

2) Для модели, размечающей данные с помощью рекуррентной сеточки с использованием keras_contrib.layers.CRF, обучение на Tesla K80 в Colaboratory идет медленнее примерно в 2 раза в сравнении с железным 4-ядерным i7-4790 4 ГГц. Сравнил по времени, затраченному на одну эпоху обучения модели. Спасибо tensorflow, модель на CPU съедает все четыре ядра почти на 100%.

3) Определенное удобство - возможность оставить модель на ночь обучаться, например для подбора гиперпараметров или архитектуры. Тут бесплатному GPU в зубы не смотрим, берем что есть.

Запустил обучение модели wordchar2vector на Tesla K80 в гугловском Colaboratory
kelijah
Описание халявы тут https://habrahabr.ru/post/348058/
Запустил там обучение своей модельки wordchar2vector из репозитория https://github.com/Koziev/chatbot:
Так вот ты какая, Tesla K80...Collapse )
Судя по бенчмарку ETA работает это чудо примерно в 4-5 раз медленнее, чем моя железная GTX 980. Вообще ощущение, что физически эта штука там неслабо так делится между халявщиками уважаемыми пользователями сервиса.

?

Log in

No account? Create an account