Привет! Меня зовут Денис Кирьянов, я работаю в Сбербанке и занимаюсь проблемами обработки естественного языка (NLP). Однажды нам понадобилось выбрать синтаксический парсер для работы с русским языком. Для этого мы углубились в дебри морфологии и токенизации, протестировали разные варианты и оценили их применение. Делимся опытом в этом посте.
Рубрика «nlp» - 8
Изучаем синтаксические парсеры для русского языка
2018-08-09 в 6:00, admin, рубрики: dependency parsing, nlp, UDPipe, Блог компании Сбербанк, Компьютерная лингвистика, машинное обучение, парсеры, Программирование, синтаксисЗапускаем LDA в реальном мире. Подробное руководство
2018-07-14 в 7:35, admin, рубрики: data mining, data science, LDA, nlp, python, искусственный интеллект, машинное обучение, Программирование, тематическое моделированиеПредисловие
На просторах интернета имеется множество туториалов объясняющих принцип работы LDA(Latent Dirichlet Allocation — Латентное размещение Дирихле) и то, как применять его на практике. Примеры обучения LDA часто демонстрируются на "образцовых" датасетах, например "20 newsgroups dataset", который есть в sklearn.
Особенностью обучения на примере "образцовых" датасетов является то, что данные там всегда в порядке и удобно сложены в одном месте. При обучении продакшн моделей, на данных, полученных прямиком из реальных источников все обычно наоборот:
- Много выбросов.
- Неправильная разметка(если она есть).
- Очень сильные дисбалансы классов и 'некрасивые' распределения каких-либо параметров датасета.
- Для текстов, это: грамматические ошибки, огромное кол-во редких и уникальных слов, многоязычность.
- Неудобный способ харнения данных(разные или редкие форматы, необходимость парсинга)
Исторически, я стараюсь учиться на примерах, максимально приближенных к реалиям продакшн-действительности потому, что именно таким образом можно наиболее полно прочувстовать проблемные места конкретного типа задач. Так было и с LDA и в этой статье я хочу поделиться своим опытом — как запускать LDA с нуля, на совершенно сырых данных. Некоторая часть статьи будет посвящена получению этих самых данных, для того, чтобы пример обрел вид полноценного 'инженерного кейса'.
На переднем крае науки: анализ статей arxiv.org
2018-07-01 в 8:40, admin, рубрики: arxiv, cond-mat, data mining, nlp, визуализация данных, физика
Моя специальность — физика конденсированного состояния. Разумеется, в процессе погружения в нее требуется изучать много научных статей, однако на разбор хотя бы одной может уйти немало времени. На arxiv в разделе cond-mat публикуется более тысячи статей в месяц. Складывается ситуация, когда многие исследователи, особенно начинающие, не обладают целостным видением своей области науки. Описанный в этой статье инструмент резюмирует содержимое базы научных статей и призван ускорить работу с литературой.
Читать полностью »
Обработка текстов на естественных языках
2018-05-18 в 7:31, admin, рубрики: data mining, data science, machine learning, natural language processing, nlp, Блог компании Mail.Ru Group, машинное обучение, Семантический анализ текста
Сегодня мы затрагиваем такую интересную тему, как естественные языки. Сейчас в эту область вкладываются очень большие деньги и в ней решают немало разнообразных задач. Она привлекает внимание не только индустрии, но и научного сообщества.
Читать полностью »
Как решить 90% задач NLP: пошаговое руководство по обработке естественного языка
2018-04-05 в 9:10, admin, рубрики: big data, machine learning, nlp, word2vec, анализ данных, Блог компании Конференции Олега Бунина (Онтико), классификатор текстов, машинное обучениеНеважно, кто вы — зарекомендовавшая себя компания, или же только собираетесь запустить свой первый сервис — вы всегда можете использовать текстовые данные для того, чтобы проверить ваш продукт, усовершенствовать его и расширить его функциональность.
Обработкой естественного языка (NLP) называется активно развивающаяся научная дисциплина, занимающаяся поиском смысла и обучением на основании текстовых данных.
Как вам может помочь эта статья
За прошедший год команда Insight приняла участие в работе над несколькими сотнями проектов, объединив знания и опыт ведущих компаний в США. Результаты этой работы они обобщили в статье, перевод которой сейчас перед вами, и вывели подходы к решению наиболее распространенных прикладных задач машинного обучения.
Мы начнем с самого простого метода, который может сработать — и постепенно перейдем к более тонким подходам, таким как feature engineering, векторам слов и глубокому обучению.
После прочтения статьи, вы будете знать, как:
- осуществлять сбор, подготовку, и инспектирование данных;
- строить простые модели, и осуществлять при необходимости переход к глубокому обучению;
- интерпретировать и понимать ваши модели, чтобы убедиться, что вы интерпретируете информацию, а не шум.
Пост написан в формате пошагового руководства; также его можно рассматривать в качестве обзора высокоэффективных стандартных подходов.
Читать полностью »
Зачем нужна обработка естественного языка в медицине: современные задачи и вызовы
2018-03-28 в 17:00, admin, рубрики: nlp, Блог компании DOC+, докплюс, Здоровье гика, обработка естественного языка, СофтКак пишут в The Huffington Post, 80% данных электронных медицинских карт хранится в неструктурированном виде — так называемом «текстовом пузыре». В текстовом виде хранятся не только данные ЭМК, но и большое количество другой медицинской информации — это научные статьи, клинические рекомендации, описание болезней и жалоб. И даже если данные в них частично структурированы, общепринятых форматов их хранения нет.
Извлечь полезные знания из «текстового пузыря» проблематично — простейшие алгоритмы способны проверить документ на вхождение тех или иных слов или словосочетаний, однако этого оказывается недостаточно: врачу всегда важны подробности. Ему нужно не только знать о том, что у больного температура, но и понимать динамику: к примеру, «температура поднимается по вечерам до 39 и держится уже четвертый день».
Помочь извлечь ценную информацию из медицинских текстов и электронных медкарт способны технологии обработки естественного языка (Natural Language Processing, NLP). Далее мы расскажем, как NLP-технологии упрощают работу врачей: поговорим про распознавание речи и текстов, наполненных медицинскими терминами, и помощь в принятии клинических решений.
Наташа — библиотека для извлечения структурированной информации из текстов на русском языке
2018-03-14 в 13:12, admin, рубрики: big data, data mining, ner, nlp, python, yargy, машинное обучение, наташаЕсть стандартная задача извлечения именованных сущностей из текста (NER). На входе текст, на выходе структурированные, нормализованные объекты, например, с именами, адресами, датами:
Задача старая и хорошо изученная, для английского языка существует масса коммерческих и открытых решений: Spacy, Stanford NER, OpenNLP, NLTK, MITIE, Google Natural Language API, ParallelDots, Aylien, Rosette, TextRazor. Для русского тоже есть хорошие решения, но они в основном закрытые: DaData, Pullenti, Abbyy Infoextractor, Dictum, Eureka, Promt, RCO, AOT, Ahunter. Из открытого мне известен только Томита-парсер и свежий Deepmipt NER.
Я занимаюсь анализом данных, задача обработки текстов одна из самых частых. На практике оказывается, что, например, извлечь имена из русского текста совсем непросто. Есть готовое решение в Томита-парсере, но там неудобная интеграция с Питоном. Недавно появилось решение от ребят из iPavlov, но там имена не приводятся к нормальной форме. Для извлечения, например, адресов («ул. 8 Марта, д.4», «Ленинский проезд, 15») открытых решений мне не известно, есть pypostal, но он чтобы парсить адреса, а не искать их в тексте. C нестандартными задачами типа извлечения ссылок на нормативные акты («ст. 11 ГК РФ», «п. 1 ст. 6 Закона № 122-ФЗ») вообще непонятно, что делать.
Год назад Дима Веселов начал проект Наташа. С тех пор код был значительно доработан. Наташа была использована в нескольких крупных проектах. Сейчас мы готовы рассказать о ней пользователям Хабра.
Наташа — это аналог Томита-парсера для Питона (Yargy-парсер) плюс набор готовых правил для извлечения имён, адресов, дат, сумм денег и других сущностей.
В статье показано, как использовать готовые правила Наташи и, самое главное, как добавлять свои с помощью Yargy-парсера.
Читать полностью »
Датасет: ассоциации к словам и выражениям русского языка
2017-10-31 в 18:33, admin, рубрики: nlp, word2vec, ассоциации, датасеты, дистрибутивная семантика, открытые данные, русский языкВ последнее время для оценки семантического сходства широкое распространение получили методы дистрибутивной семантики. Эти подходы хорошо показали себя в ряде практических задач, но они имеют ряд жёстких ограничений. Так, например, языковые контексты оказываются сильно схожими для эмоционально полярных слов. Следовательно, антонимы с точки зрения word2vec часто оказываются близкими словами. Также word2vec принципиально симметричен, ведь за основу берётся совстречаемость слов в тексте, а популярная мера сходства между векторами — косинусное расстояние — также не зависит от порядка операндов.
Мы хотим поделиться с сообществом собранной нами базой ассоциаций к словам и выражениям русского языка. Этот набор данных лишён недостатков методов дистрибутивной семантики. Ассоциации хорошо сохраняют эмоциональную полярность и они по своей природе асимметричны. Подробнее расскажем в статье. Читать полностью »
Transformer — новая архитектура нейросетей для работы с последовательностями
2017-10-30 в 6:34, admin, рубрики: deep learning, machine translation, nlp, RNN, машинное обучениеНеобходимое предисловие: я решил попробовать современный формат несения света в массы и пробую стримить на YouTube про deep learning.
В частности, в какой-то момент меня попросили рассказать про attention, а для этого нужно рассказать и про машинный перевод, и про
sequence to sequence, и про применение к картинкам, итд итп. В итоге получился вот такой стрим на час:
Я так понял по другим постам, что c видео принято постить его транскрипт. Давайте я лучше вместо этого расскажу про то, чего в видео нет — про новую архитектуру нейросетей для работы с последовательностями, основанную на attention. А если нужен будет дополнительный бэкграунд про машинный перевод, текущие подходы, откуда вообще взялся attention, итд итп, вы посмотрите видео, хорошо?
Новая архитектура называется Transformer, была разработана в Гугле, описана в статье Attention Is All You Need (arxiv) и про нее есть пост на Google Research Blog (не очень детальный, зато с картинками).
Поехали.