Как стать автором
Обновить
39.11
Рейтинг

Natural Language Processing *

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Способы упрощения текстов: плюсы, минусы, альтернативы

Программирование *Машинное обучение *Natural Language Processing *

Сложно понять содержимое текста, если в нем встречается много незнакомых слов. Вариант решения этой проблемы – замена слов на близкие к ним по значению. Заменить слово на синоним можно, например, тремя способами – трансформером,  word2vec и его модификацией - RusVectores.

Зачем вообще упрощать текст? Есть, как минимум, три кейса, почему есть вероятность столкнуться с этой задачей:

- если перед вами текст на иностранном языке, то замена «сложного» слова на синоним поможет сориентироваться в сути предложения

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

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

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

Если кому-то интересно ознакомиться только с кодом, то welcome на github, там можно найти пошаговую реализацию.

Задача выделения сложных слов

Читать далее
Рейтинг 0
Просмотры 38
Комментарии 0

Новости

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

Python *Big Data *Машинное обучение *Natural Language Processing *


Open In Colab


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


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


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


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

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

Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 2.1K
Комментарии 12

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

Python *Семантика *Программирование *Машинное обучение *Natural Language Processing *

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

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

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 1.2K
Комментарии 4

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

Блог компании Wunder Fund Программирование *Алгоритмы *Математика *Natural Language Processing *
Перевод

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

Читать далее
Всего голосов 27: ↑27 и ↓0 +27
Просмотры 1.8K
Комментарии 2

Моя маленькая помощь малым языкам

Python *Data Mining *Машинное обучение *Изучение языков Natural Language Processing *

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


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


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


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


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


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


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


Colab


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


Установка


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


pip install lingtrain_aligner
Читать дальше
Всего голосов 54: ↑54 и ↓0 +54
Просмотры 9.2K
Комментарии 81

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

Машинное обучение *Natural Language Processing *
Recovery mode
Перевод

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

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

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 2.1K
Комментарии 5

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

Блог компании ВКонтакте Программирование *Машинное обучение *Искусственный интеллект Natural Language Processing *

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

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

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

Читать далее
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 6.9K
Комментарии 33

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

Поисковые технологии *Программирование *Java *Kotlin *Natural Language Processing *
Tutorial

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

Запустить процесс
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 4.7K
Комментарии 13

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

Блог компании Open Data Science Блог компании Huawei Машинное обучение *Искусственный интеллект Natural Language Processing *

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

посмотреть, что внутри
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 4.2K
Комментарии 7

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

Блог компании Сбер Машинное обучение *Искусственный интеллект Natural Language Processing *

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

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

Блог компании Открытая мобильная платформа Разработка под Linux *Natural Language Processing *

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 1.1K
Комментарии 3

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

Python *Программирование *Машинное обучение *Natural Language Processing *

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

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

Читать далее
Всего голосов 8: ↑5 и ↓3 +2
Просмотры 2.3K
Комментарии 5

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

Big Data *Машинное обучение *Развитие стартапа Natural Language Processing *Голосовые интерфейсы

quality_growth


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


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


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

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

Блог компании МТС Data Mining *Машинное обучение *Natural Language Processing *

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

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

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

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 1.2K
Комментарии 1

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

Python *Программирование *Машинное обучение *Natural Language Processing *

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

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

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

Читать далее
Всего голосов 10: ↑5 и ↓5 0
Просмотры 5.6K
Комментарии 10

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

Обработка изображений *Машинное обучение *Искусственный интеллект Изучение языков Natural Language Processing *
Tutorial

Lingtrain books


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


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


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


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


Lingtrain


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

Смотреть демо
Всего голосов 53: ↑53 и ↓0 +53
Просмотры 7.9K
Комментарии 56

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

Блог компании Сбер Машинное обучение *Искусственный интеллект Natural Language Processing *

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

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

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

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 1.3K
Комментарии 7

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

Python *Машинное обучение *Изучение языков Natural Language Processing *
Из песочницы

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

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

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

Читать далее
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 4.2K
Комментарии 33

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

Natural Language Processing *

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

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 968
Комментарии 0

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

Блог компании SkillFactory Читальный зал Научно-популярное Искусственный интеллект Natural Language Processing *
Перевод

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

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

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 2.3K
Комментарии 7

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