У нас в компании YouScan в день обрабатывается около 100 млн. сообщений, на которых применяется много правил и разных смарт-функций. Для корректной их работы нужно правильно определить язык, потому что не все функции можно сделать агностическими относительно языка. В данной статье мы коротко расскажем про наше исследование данной задачи и покажем оценку качества на датасете из соц. сетей.
Рубрика «nlp» - 9
Просто и качественно определяем язык сообщений
2018-09-24 в 9:54, admin, рубрики: language-identification, nlp, open source, python, машинное обучениеИзучаем синтаксические парсеры для русского языка
2018-08-09 в 6:00, admin, рубрики: dependency parsing, nlp, UDPipe, Блог компании Сбербанк, Компьютерная лингвистика, машинное обучение, парсеры, Программирование, синтаксисПривет! Меня зовут Денис Кирьянов, я работаю в Сбербанке и занимаюсь проблемами обработки естественного языка (NLP). Однажды нам понадобилось выбрать синтаксический парсер для работы с русским языком. Для этого мы углубились в дебри морфологии и токенизации, протестировали разные варианты и оценили их применение. Делимся опытом в этом посте.
Запускаем 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 принципиально симметричен, ведь за основу берётся совстречаемость слов в тексте, а популярная мера сходства между векторами — косинусное расстояние — также не зависит от порядка операндов.
Мы хотим поделиться с сообществом собранной нами базой ассоциаций к словам и выражениям русского языка. Этот набор данных лишён недостатков методов дистрибутивной семантики. Ассоциации хорошо сохраняют эмоциональную полярность и они по своей природе асимметричны. Подробнее расскажем в статье. Читать полностью »