Обновить
113.44

Natural Language Processing *

Компьютерный анализ и синтез естественных языков

Сначала показывать
Порог рейтинга
Уровень сложности

Мы опубликовали модель, расставляющую знаки препинания и заглавные буквы в тексте на четырех языках

Время на прочтение8 мин
Охват и читатели16K


Open In Colab


При разработке систем распознавания речи мы сталкиваемся с заблуждениями среди потребителей и разработчиков, в первую очередь связанными с разделением формы и сути. Одним из таких заблуждений является то, что в устной речи якобы "можно услышать" грамматически верные знаки препинания и пробелы между словами, когда по факту реальная устная речь и грамотная письменная речь очень сильно отличаются (устная речь скорее похожа на "поток" слегка разделенный паузами и интонацией, поэтому люди так не любят монотонно бубнящих докладчиков).


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


По этой причине мы бы хотели поделиться с сообществом системой, которая:


  • Расставляет заглавные буквы и основные знаки препинания (точка, запятая, дефис, вопросительный знак, восклицательный знак, тире для русского языка);
  • Работает на 4 языках (русский, английский, немецкий, испанский);
  • По построению должна работать максимально абстрактно на любом тексте и не основана на каких-то фиксированных правилах;
  • Имеет минимальные нетривиальные метрики и выполняет задачу улучшения читабельности текста;

На всякий случай явно повторюсь — цель такой системы — лишь улучшать читабельность текста. Она не добавляет в текст информации, которой в нем изначально не было.

Читать дальше →

Многозадачная модель T5 для русского языка

Время на прочтение7 мин
Охват и читатели41K

Модель T5 – это нейросеть, которая уже обучена хорошо понимать и генерировать текст, и которую можно дообучить на собственную задачу, будь то перевод, суммаризация текстов, или генерация ответа чат-бота.

В этом посте я рассказываю про первую многозадачную модель T5 для русского языка и показываю, как её можно обучить на новой задаче.

Читать далее

Перплексия в языковых моделях

Время на прочтение10 мин
Охват и читатели32K

В этом материале я хочу сделать подробный обзор такого понятия, как «перплексия» («коэффициент неопределённости»), так как оно применяется в обработке текстов на естественном языке (Natural Language Processing, NLP). Я расскажу о двух подходах, которые обычно используются для определения этого понятия, и о тех идеях, которые лежат в основе этих подходов.

Читать далее

Выравнивание параллельных текстов для малоресурсных языков

Время на прочтение8 мин
Охват и читатели14K

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


Upd. 04.12.2021 — Наш телеграм канал


На территории России проживает большое количество народов, говорящих более чем на 270 языках. Около 150 языков насчитывает менее 1 тысячи носителей, а за последние 20 лет 7 языков уже исчезло.


Этот проект — мои "пять копеек" по поддержке языкового разнообразия. Его цель — помощь исследователям в области машинного перевода, лингвистам, а также энтузиастам, радеющим за свой родной язык. Помогать будем добыванием параллельных корпусов, — своеобразного "топлива", при помощи которого современные модели все успешнее пытаются понять человеческий язык.


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


Экспериментировать мы будем в среде Colab'а, чтобы любой исследователь при желании смог повторить этот подход для своего языка.


I. Извлекаем параллельный корпус


Для выравнивания двух текстов я написал на python'е библиотеку lingtrain_aligner. Код у нее открыт. Она использует ряд предобученных моделей, можно подключать и свои. Одной из самых удачных мультиязыковых моделей сейчас является LaBSE. Она обучалась на 109 языках. Так как соотношение текстов смещено в сторону популярных языков, то для них качество эмбеддингов (эмбеддингом называют вектор чисел применительно к данным, которые он описывает) будет лучше.


Colab


Попробовать извлечь корпус на нужном языке можно в этом Colab'e. Дальше пройдемся по шагам более подробно.


Установка


Установим библиотеку командой


pip install lingtrain_aligner
Читать дальше

Гид по предварительной обработке текста с помощью BERT

Время на прочтение6 мин
Охват и читатели11K

Современные NLP-приложения, например, для анализа настроения, поиска ответов на вопросы, смарт-ассистенты и т. п., используют огромное количество данных. Такой объём данных можно напрямую передать в модель машинного обучения. Почти все текстовые приложения требуют большой предварительной обработки текстовых данных — создания вложенных векторов с нуля с использованием счётчика частоты слов. На это уходит много сил и времени. Чтобы избежать этого, для всех сложных задач предварительной обработки используются модели Transfer Learning. Им нужно просто передать необработанный текст, об остальном модель позаботится сама.

Небольшая ремарка. Данный материал является переводом, и мы не несем ответственности за факты, представленные автором в первоисточнике.

Ключевая тенденция рынка чат-ботов — это работа над эффективностью в определении намерений пользователя. Для себя мы поставили данную задачу во главе узла: нам критически важно сделать продукт удобным и практичным именно для разработчиков. Поэтому мы сейчас думаем о том, чтобы внедрить BERT в нашу работу. Технология для нас новая, мы читаем и переводим очень много информации по данному вопросу. Наиболее интересными материалами мы поделимся с вами в рамках данного блога.

В этой статье мы обсудим один из фреймворков трансферного обучения — BERT. Рассмотрим, как использовать модуль предварительной обработки BERT, чтобы создавать вложения слов без усилий. Основные моменты, которые будут рассмотрены в этой статье...

Читать далее

Читать не надо слушать: как работает распознавание речи ВКонтакте

Время на прочтение12 мин
Охват и читатели17K

Прочитать текстовое сообщение — быстрее, чем прослушать голосовое. Ещё по тексту удобнее искать и уточнять детали. Воспринимать числа, адреса, номера телефонов и подобную информацию тоже проще в написанном виде. С другой стороны, записать голосовое зачастую удобнее, чем напечатать сообщение — ведь это можно делать параллельно с другими занятиями, на ходу или за рулём. 

Автоматическое распознавание речи помогает преодолеть этот разрыв. Технология переводит устную речь в текст, а дальше с ним можно делать что вздумается: хоть выводить расшифровку, хоть передавать в поиск, хоть преобразовывать в команды для техники. Или, как в нашем случае, помогать пользователям общаться. 

Меня зовут Надя Зуева, я занимаюсь голосовыми технологиями ВКонтакте. В этой статье расскажу, как работает наше распознавание голосовых сообщений: какие модели мы используем, на каких данных их обучаем и какие оптимизации применили для быстрой работы в проде. 

Читать далее

Обработка русского языка на Java

Время на прочтение4 мин
Охват и читатели13K

Рассказ пойдет об одной новой, общедоступной Java/Kotlin библиотеке, для работы с русским языком. Она позволяет получить исходные формы + морфологическую информацию для большинства слов русского языка. Статья предназначена для тех, кто создает ботов, обрабатывает сообщения и занимается поиском. Для справки, ключевое отличие лемматизации от стеммизации (урезания до нормализованной формы) состоит в том, что лемма удовлятворяет правилам языка, например для слова "яблоками" леммой будет "яблоко", а не просто урезанный корень. Лемма может быть и более сложной, например для слова люди, начальная форма – человек. В этой статье мы рассмотрим способ быстрого извлечения такой информации из морфологического словаря.

Запустить процесс

Новый запуск курса Natural Language Processing

Время на прочтение2 мин
Охват и читатели8.4K

TL;DR: Этой осенью сообщество Open Data Science и компания Huawei делают новый запуск курса. Регистрироваться на сайте ODS.ai

посмотреть, что внутри

Как мы фронтиры науки с помощью тематического моделирования искали

Время на прочтение13 мин
Охват и читатели3.7K

Некоторое время назад перед нашей NLP-командой была поставлена необычная задача: построения системы определения фронтиров науки. Некоторые из нас до постановки задачи ни разу даже не слышали слово «фронтир», и мы начали с того, что стали разбираться, что оно значит. Буквальное историческое определение слова frontier – это граница между освоенными и неосвоенными поселенцами свободными землями на Диком Западе. Естественно, от этого буквального определения нам была интересна только часть про границу между освоенным и неосвоенным, она же «передний край науки». Получается, перед нами была поставлена задача автоматически определить, где проходит этот передний край.
Читать дальше →

Распознаем речь в Авроре

Время на прочтение4 мин
Охват и читатели4.1K

Аврора, созданная во многом с прицелом на корпоративное использование, часто используется в не совсем привычных для нормального человека условиях. Когда мобильное устройство — корпоративное, а передаваемая информация имеет не только ту ценность, которую охраняет закон о персональных данных №152-ФЗ, но и коммерческую составляющую, — на передний план выходит конфиденциальность и возможность обрабатывать данные, не отходя от кассы.

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

Читать далее

Распознавание и анализ речи с помощью библиотеки SPEECH RECOGNITION, PYAUDIO и LIBROSA

Время на прочтение4 мин
Охват и читатели62K

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

Если простыми словами скрытую марковскую модель можно объяснить на примере.

Читать далее

Последние обновления моделей распознавания речи из Silero Models

Время на прочтение2 мин
Охват и читатели7.3K

quality_growth


Мы опубликовали уже пятую версию наших моделей для распознавания английского языка и четвертую — для немецкого. На картинке выше — прогресс роста качества для английского языка.


В этот раз мы можем порадовать вас:


  • Как большими, так и маленькими моделями;
  • Постоянным ростом качества на всех доменах аудио, снижением размера и ускорением моделей;
  • Как обычно — качество на уровне премиум моделей Google (причем в этот раз к премиум моделями 2020 года подобрались уже даже маленькие Community Edition модели);
  • Супер компактными моделями (small и скоро ожидается xsmall) и их квантизованными версиями;
Читать дальше →

Смещение в датасетах

Время на прочтение11 мин
Охват и читатели5K

Эта статья – дистиллят моих разведочных исследований о смещении в датасетах. В ней я расскажу, что такое смещение и как оно влияет на работу модели. А еще – о том, как мы воспринимаем результаты работы модели и какие есть подходы для борьбы со смещением. Детальнее расскажу о двух способах избавления от него.

Смещение в датасетах (артефакты) – нежелательные взаимосвязи между входными и выходными данными, в частности, между признаками и метками, которые могут эксплуатироваться моделями машинного обучения в качестве опоры при предсказании. Часто они возникают там, где совсем не ожидаешь.

Простой пример смещения можно представить следующим образом: нам нужно определить оскорбительные посты в социальной сети. Высока вероятность, что оскорбительные посты будут содержать нецензурные слова и модель будет опираться на них при принятии решения. Некоторые пользователи могут использовать нецензурные слова и в обычных, нейтральных постах. Те же нецензурные слова могут быть использованы и для выражения позитивных эмоций. В результате, модель, обученная на датасете, в котором мало других примеров: нейтральных или позитивных, будет считать пост оскорбительным, когда в нем есть нецензурные слова. Если тестирование модели провести на похожей тестовой выборке, где нецензурные слова представлены только в оскорбительных постах, то тест подтвердит высокое качество модели. При реальном использовании эта модель будет давать ложно положительные срабатывания. Из-за смещения складывается ложное чувство, что модель работает хорошо, но это происходит ровно до того, как она начинает использоваться в реальности.

Читать далее

Ближайшие события

Как заменить регулярные выражения нейронной сетью

Время на прочтение4 мин
Охват и читатели7.8K

Наиболее часто используемый инструмент для поиска подстроки определенного вида в тексте – это регулярные выражения. Но можно ли вместо регулярного выражения использовать нейронную сеть, которая бы выполняла ту же самую задачу?

Задача: найти в тексте описание стоимости недвижимости, то есть численное обозначение и стоимость, записанную прописью. Например, 2 050 000 (два миллиона пятьдесят тысяч) руб., 00 коп. Задача усложняется тем, что «рубли» и «копейки» могут быть в любом месте (перед скобками или после) и могут быть сокращены.

Чтобы решить данную задачу, будем использовать NLP (Natural Language Processing), морфологический анализатор и нейронную сеть. Подключаем соответствующие библиотеки:

Читать далее

Сделай себе книгу для изучения языка с нейросетевыми иллюстрациями

Время на прочтение12 мин
Охват и читатели12K

Lingtrain books


Upd. 04.12.2021. Наш телеграм канал


Upd 10.09.2021. Добавил ещё одну подборку Colab'ов для генерации картинок


Upd 21.09.2021. Добавил пару иллюстраций к Дюне для примера


Статья будет интересна всем любителям программирования, иностранных языков и красивых книг. Сначала мы сделаем параллельную книгу, имея на руках два обычных текста. Затем мы проиллюстрируем ее картинками в стиле pixel art на основе лишь текстовых подсказок.


Книгу можно сделать более чем на сотне языков с восстановлением и подсветкой связей между предложениями:


Lingtrain


А теперь давайте сделаем такую книгу сами.

Смотреть демо

Видеосказки от ИИ: разбор бейзлайна трека Creative AI в рамках AIIJC

Время на прочтение9 мин
Охват и читатели3.3K

Привет, Хабр!

Сегодня мы, команда Sber AI, расскажем про бейзлайн генерации сказок с озвучкой и картинками, который мы предложили в рамках трека по Creative AI международного соревнования для школьников Artificial Intelligence International Junior Contest (AIIJC): рассмотрим аспекты обучения conditional ruGPT-3, генерацию музыки, генерацию изображения по текстовой строке, а также обсудим некоторые проблемы, с которыми пришлось столкнуться во время обучения и дообучения моделей.

В этом посте мы хотим разобрать (и разобраться сами), как можно использовать и объединять генеративные (и не только) модели для решения одной большой задачи — генерации контента. Мы подобрали большое количество материалов про каждую конкретную модель, чтобы ими можно было пользоваться сразу.

Читать далее

Расставляем ударения с помощью Natasha и Spacy

Время на прочтение8 мин
Охват и читатели20K

Представьте себя на месте изучающего русский язык иностранца. Ударение станет одним из ваших самых страшных ночных кошмаров.

Однажды я написал приложение для изучения русского, одной из функций которого была расстановка ударений. Я просто проверял каждое слово по словарю. Однако, это часто приводило к ситуации неоднозначности, когда ударение зависит от контекста. Например: "два сло́ва", но "длинные слова́".

Время подключать нейросети.

Читать далее

Декларативный и императивный подходы к построению QA чатбота

Время на прочтение8 мин
Охват и читатели2.3K

В статье рассматривается теоретический и практический аспекты двух подходов к построению вопросно-ответной системы. Первый подход — императивный, он предполагает полное описание инструкций для решения каждой задачи, когда как второй подход, декларативный, требует лишь правильно сформулированной задачи и набора базовых логический правил. Практический аспект обоих подходов изучается на основе реального приложения для автоматизации ответов на вопросы студентов и сотрудников университета.

Читать далее

Не стоит ждать, что в обозримом будущем системы ИИ полностью овладеют человеческим языком

Время на прочтение9 мин
Охват и читатели3.3K

Представьте себе: при помощи SkillFactory вы стали инженером машинного обучения или специалистом в Data Science. Это далось вам нелегко, даже тяжело, и вы часто слышали нотки недоверия в словах ваших друзей и знакомых, но, несмотря ни на что, решились. А через несколько лет в искусственном интеллекте произошёл прорыв, после которого смысл вашего труда почти сошёл на нет, ваша зарплата упала, а все перспективы исчезли.

Простые и ясные примеры этого материала рассказывают, почему ничего подобного не случится ни сегодня, когда у знаменитой GPT-3 появились превосходящие её конкуренты — LaMDA и MUM, — ни в обозримом будущем, то есть ИИ останется мощным вспомогательным инструментом, которому для работы необходимы люди.

Читать далее

Как превратить книгу о Гарри Поттере в граф знаний

Время на прочтение12 мин
Охват и читатели11K

Обработка естественного языка — это не только нейронные сети, а данные — это не только строки, числа и перечисления. Область работы с данными простирается намного дальше. К старту флагманского курса по Data Science представляем вашему вниманию перевод из блога разработчиков графовой базы данных neo4j о том, как при помощи SpaCy и Selenium извлечь из книги граф взаимоотношений героев. Подробности и код, как всегда, под катом.

Читать далее

Вклад авторов