Какая предобработка текста нужна для генерации речи
Перейти к содержимому

Какая предобработка текста нужна для генерации речи

  • автор:

Обзор существующих алгоритмов преобразования текста в речь Текст научной статьи по специальности «Компьютерные и информационные науки»

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Киреев Н.С., Ильюшин Е.А.

Ученые достаточно давно работают над алгоритмами, позволяющими транслировать текст, написанный на естественном языке, в речь. Но качество работы этих алгоритмов оставляло желать лучшего до момента, когда применение методов глубокого обучения не стало возможным. С появлением необходимых вычислительных ресурсов и накопления достаточного количества данных для обучения, эти методы стали широко применять в машинном обучении в целом и, конечно, в синтезе речи в частности. Существенное улучшение качества работы алгоритмов трансляции текста в речь привело к их повсеместному применению, а именно в мобильных устройствах, умных колонках, голосовых помощниках и т.д. Но стоит отметить, что алгоритмы данного класса, разработанные на данный момент, не всегда корректно справляются с поставленной задачей. К примеру, не всегда могут правильно поставить ударение или озвучить нужные участки текста с необходимой интонацией. Таким образом исследование методов и средств, позволяющих синтезировать речь, приобрело еще большую актуальность. Существует множество различных способов синтеза речи по тексту, такие как параметрический синтез, компиляционный синтез, предметно-ориентированный синтез и полный синтез речи по правилам. Целью данной работы является обзор существующих алгоритмов трансляции текста в речь и проведение их сравнительного анализа. В качестве основных были рассмотрены алгоритмы: WaveNet, DeepVoice, Tacatron, DeepVoice 2, DeepVoice 3 и Tacatron 2. В ходе их сравнения было определено, что лучшими на текущий момент являются DeepVoice 3 и Tacatron 2, так как оценки качества их работы наиболее близки к профессионально записанной речи.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Киреев Н.С., Ильюшин Е.А.

REVIEW OF EXISTING TEXT-TO-SPEECH ALGORITHMS

Scientists have long been working on algorithms for translate text written in natural language into speech . But the quality of work these algorithms left much to be desired until the moment when the application of deep learning methods was not possible. With the advent of the necessary computing resources and the accumulation of a sufficient amount of data for training, these methods have become widely used in machine learning in general and, of course, in speech synthesis in particular. A significant improvement in the quality of the work of text-to-speech algorithms has led to their widespread use, namely in mobile devices, smart speakers, voice assistants, etc. But it is worth noting that the algorithms of this class, developed at the moment, do not always correctly cope with the task. For example, they cannot always correctly emphasize or voice the necessary parts of the text with the necessary intonation. Thus, the study of methods and means of synthesizing speech has become even more relevant. There are many different ways to synthesize speech by text, such as parametric synthesis, compilation synthesis, subject-oriented synthesis, and full speech synthesis by the rules. The purpose of this work is to review existing algorithms for translating text to speech and conducting their comparative analysis. The main algorithms were considered: WaveNet, DeepVoice, Tacatron, DeepVoice 2, DeepVoice 3 and Tacatron 2. In the course of their comparison, it was determined that the best at the moment are DeepVoice 3 and Tacatron 2, since the assessments of the quality of their work are closest to professionally recorded speech .

Текст научной работы на тему «Обзор существующих алгоритмов преобразования текста в речь»

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

Н.С. Киреев, Е.А. Ильюшин

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

Существует множество различных способов синтеза речи по тексту, такие как параметрический синтез, компиляционный синтез, предметно-ориентированный синтез и полный синтез речи по правилам. Целью данной работы является обзор существующих алгоритмов трансляции текста в речь и проведение их сравнительного анализа. В качестве основных были рассмотрены алгоритмы: WaveNet, БеерУоке, Таеа^оп, БеерУоке 2, БеерУоке 3 и Таеа^оп 2. В ходе их сравнения было определено, что лучшими на текущий момент являются БеерУоке 3 и Таеа^оп 2, так как оценки качества их работы наиболее близки к профессионально записанной речи.

Ключевые слова—звук, синтез речи, обработка текста

Технологии преобразования текста в речь существует достаточно давно, но все еще является актуальной сферой для научных исследований. Есть множество задач, которые решаются для создания схожей с человеческой синтезированной речи. К примеру, определение интонации, многоголосость систем, объединение пар фонем без слышимых недостатков, определение просодий и т.д. Но даже у современных

Статья получена 9 апреля 2020.

Н.С Киреев, МГУ им. М.В. Ломоносова, факультет вычислительной математики и кибернетики, Москва, Россия (e-mail: nikita.s .kireev@gmail.com).

Е.А Ильюшин, МГУ им. М.В. Ломоносова, факультет вычислительной математики и кибернетики, Москва, Россия (e-mail: eugene.ilyushin@gmail .com).

систем существуют недостатки.

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

В третьем разделе дадим определение синтезу речи. Далее подробно опишем его основные этапы и рассмотрим способы их реализации.

В четвертом разделе представлены результаты исследований современных архитектур преобразования текста в речь, таких как WaveNet, БеерУоюе, Тасо^оп, БеерУоюе 2, БеерУоке 3 и Тасо^оп 2, а также их достоинства и недостатки.

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

Звук — физическое явление, представляющее собой распространение в виде упругих волн механических колебаний в твёрдой, жидкой или газообразной среде. В физиологии и психологии человека звук — это восприятие таких волн мозгом [1].

Как и любая волна, звук характеризуется амплитудой и частотой. Амплитуда характеризует громкость звука. Частота определяет тон, высоту. Обычный человек способен слышать звуковые колебания в диапазоне частот от 16—20 Гц до 15—20 кГц. Громкость звука сложным образом зависит от эффективного звукового давления, частоты и формы колебаний, а высота звука — не только от частоты, но и от величины звукового давления [1].

Среди слышимых звуков следует особо выделить фонетические, речевые звуки и фонемы (из которых состоит устная речь).

Рисунок 1 — Представление звука

III. Синтез речи Синтез речи — искусственное производство человеческий речи. Система преобразования текста в речь преобразует текст на естественном языке в речь, остальные системы преобразуют символические

фонетическая транскрипция, в речь [2].

Рисунок 2 — 1 секунда сгенерированной речи

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

О качестве синтезированной речи судят по ее сходству с человеческим голосом и по ее способности быть понятной.

Система преобразования текста в речь состоит из двух частей: front-end и back-end.

У front-end части есть две основные задачи:

• преобразование необработанного текста, содержащего символы (числа, сокращения) в эквивалент написанных слов, этот процесс также называют нормализацией текста, предварительной обработкой или токенизацией;

• назначение фонетической транскрипции каждому слову, а также деление и пометка текста на просодические единицы такие как, фразы и предложения — этот процесс называют преобразованием текста в фонему или преобразованием графемы в фонему

Фонетическая транскрипция и информация о просодии вместе составляют символическое лингвистическое представление, которое выводится интерфейсом.

Back-end часто называется синтезатором, эта часть системы преобразует символическое лингвистическое представление в звук. В некоторых системах эта часть включает вычисление целевой просодии (контур основного тона, длительность фонем), которая затем накладывается на основную речь.

Двумя основными методами синтеза речи являются конкенативный и формантный синтезы [3].

1. Конкенативный синтез.

Конкенативный синтез основан на объединении сегментов записанной речи. Как правило конкенативный синтез синтезирует наиболее качественную синтезированную речь. Существует 3 основных подтипа конкенативного синтеза: синтез выбора единиц, дифтонгный синтез и домен-специфический синтез. Построение модели синтеза состоит из трех этапов: запись всех выбранных единиц речи во всех возможных контекстах, маркировка и сегментация единиц, выбор наиболее подходящих единиц. Этот подход является самым простым. Из минусов: необходимо иметь большее хранилище и невозможность применять различные изменения к голосу.

2. Форматный синтез [3].

При этом методе синтезированная речь создается с использованием аддитивного метода и акустической

модели. Этот метод также называют синтезом на основе правил.

3. HMM синтез [4, 5].

Это синтез основанный на скрытых марковских моделях, так же называемый статистическим параметрическим синтезом. В этой системе частотный спектр (речевой тракт), основная частота (источник голоса) и длительность (просодия) речи моделируются одновременно. Речевые сигналы генерируются самим HMM на основе критерия максимального правдоподобия. Синтез состоит из двух основных частей (рис. 3):

• на этапе обучения мы извлекаем параметры возбуждения, такие как основная частота и динамические характеристики (мел-частотные кепстральные коэффициенты (МБСС)) из базы данных, а затем оцениваем их при помощи одной из статистических моделей. Скрытая Марковская модель является наиболее используемой, эта модель является контекстно зависимой благодаря чему при обучении учитывается также лингвистический и просодический контексты;

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

Рисунок 3 — модель HMM синтеза

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

4. Глубокое обучение [6].

Синтезаторы речи, основанные на глубоком обучении, используют Deep Neural Network

(глубокие нейронные сети), которые обучаются на записанных речевых данных. Примерами являются WaveNet от Google DeepMind, Tacatron от Google и DeepVoice (в основе которого лежит технология WaveNet) от Baidu.

Основные этапы синтеза речи [7]:

1. нормализация текста;

2. преобразование текста в фонетическое представление;

3. просодическое и эмоциональное содержание (изменять основной тон в зависимости от того какого типа предложение вопросительное, восклицательное или положительное).

IV. Современные архитектуры преобразования текста В РЕЧЬ

WaveNet — генеративная модель для синтеза необработанного звука. Это полностью сверточная нейронная сеть, в которой каждый новый образец зависит от предыдущего. Основным отличием этой архтектуры (рис. 4) является причинно-следственные и расширенные (дилатационные) свертки [8].

Skip-con nectio ns

Dilation Factors QHU-GHU-®^

Рисунок 4 — архитектура WaveNet

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

Выходные данные этих слоев суммируются и обрабатываются далее посредством серии 1×1 сверток и активации, заканчивающегося softmax уровнем с 256 выводами.

ООО О О О О О О О О СТО ООО

• генерирует необработанные звуковые сигналы (более 16000 выборок в секунду);

• softmax слой моделирует условные распределения по отдельным аудио семплам;

• 4,21 оценка MOS для американского английского и 4,08 для китайского.

• комплексная система, которая требует подготовки размеченных текстов;

• требует дополнительные лингвистические функции (например информацию об ударении или основной частоте);

• вычислительно дорогой синтез.

Так же был разработан механизм кэширования для удаления избыточных сверток, чтобы сократить расходы на вычислительные мощности. После этого скорость генерации WaveNet резко возросла.

Система DeepVoice состоит из нескольких независимо обученных моделей, объединённых в вычислительный конвейер. Предварительно обученные независимо друг от друга модели "Graphem-to-Phoneme" и "Segmentation" используются для создания функций, смешанных с обучающими наборами данных для обучения моделей "Audio-Synthesis", "Duration Prediction" и "Fundamental Frequency". Модель из графемы в фонему также используется при синтезировании речи наряду с последними [9].

Fundamental Frequency „ , (FO) Prediction

Рисунок 6 — архитектура DeepVoice

. 1×1 -»Rnlll-P 1X1 WflV'

i * я outputs я outputs

[j rwares* neighbor upsampllng to IGkH?

2*1 dilated eonv, outputs

£k1 CCinv, rOUtTHJtB

— interleave i stack

foi ward OHNN L x r Backward ÛHNN L x r -'

hui ward OHNN Qa/2 Btichwtiid QHNN qt/2 -< *-

_ tfikttiutfiftinpiEl, ptinritïnrt Дп<( FQ features,

в опч-hûi teanjrfiF. r-?7 ftifnflnekins

Рисунок 5 — иллюстрация концепции WaveNet

Рисунок 7 — часть аудио синтеза DeepVoice

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

Часть аудио синтеза (рис. 7) имеет модифицированную архитектуру WaveNet.

DeepVoice закладывает основу для синтеза речи в реальном времени, но оценка MOS достаточно низка -2,67 для американского английского.

Tacotron — модель типа end-to-end состоящая из кодера и декодера с механизмом внимания. Тренировка этой архитектуры достаточно проста, так как требует только пары текст-аудио [10].

Рисунок 8 — архитектура Тасо^оп

Генерация речи начинается с подачи необработанного текста на вход кодера. Первый уровень кодировщика -встраивание символов. Вложения для ввода текста передаются в двухслойную предварительную сеть (рис. 8 рге-пй). Следующим этапом является модуль СБИв (рис. 9).

A Bidrectional RNN

I Highway layers |

L Max-pood along time (stride=1)

который преобразует мел-частотные кепстральные коэффициенты в линейную спектрограмму.

Плюсы архитектуры Tacotron:

• оценка MOS — 3,82 для американского английского.

Улучшением по сравнению с предыдущей версией стало внедрение в синтезатор речи встроенной функции мультиспикера. Это значит, что модель умеет генерировать речь из сотни уникальных голосов [11].

♦ Cûriv 1D pfû;ecLoriS □ □□□□

Рисунок 9 — модуль CBHG

CBHG — банк одномерной свертки, сеть магистралей и двунаправленной GRU (управляемый рекуррентный блок). Изначально он был разработан для задачи перевода. Первый этап в модуле выполняет набор сверток разных размеров на входе, результаты складываются в единый тензор. После этого применяется максимальное объединение к полученному тензору. Объединённые значения проходят через несколько слоев одномерных сверток. Результаты, объединённые с входными данными, отправляются на уровень извлечения максимально значимых функций, а затем эти функции передаются в двунаправленный GRU.

Основными задачами, решаемыми декодером, являются, прогнозирование мел-частотных

кепстральных коэффициентов и прогнозирование линейной спектрограммы.

Для получения мел-частотных кепстральных коэффициентов, входные данные декодера преобразуются через предварительную сеть — слой внимания GRU и двухслойный декодер RNN (рекуррентная нейронная сеть), a также с помощью GRU. Тут также принимает участие модуль CBHG,

Рисунок 10 — архитектура DeepVoice 2 a — модель сегментации фонем, b — модель длительности, в — частотная модель

Модель сегментации является сверточно-рекуррентной сетью. Самым значимым отличием по сравнению с DeepVoice является включение пакета нормализации и остаточных соединений в сверточные слои [12].

Модель длительности предназначена для прогнозирования длительности фонем,

сгруппированных в сегменты, с использованием модели условных случайных полей.

Модель частотного прогнозирования построена из сверточных и GRU уровней для прогнозирования основной частоты.

Плюсы DeepVoice 2:

• может выучить множество уникальных голосов;

• оценка MOS — 3,53 для американского английского.

В DeepVoice 3 была реализована мультисистема, в которой нет блоков сегментации, длительности и частоты. Одна модель генерирует мел-спектрограмму или другие аудио функции, которые должны быть декодированы в аудио сигнал WaveNet или другого вокодера [13].

l .ilUKjcr PoslNcl ]*

[ fcneoda PrcNci >« — Text Embedding

I Griffin-I.im 1 : WORLD

*( Converter J 1 Convener ;

WaveNei "f "" Mel Output

I Allcnlkin Block I*- query |Счпуо|Щ|о|Гв1т.к iCauvill j

Speaker-Km beddi II)!

Рисунок 11 — архитектура DeepVoice 3 DeepVoice 3 — полностью сверточная архитектура

кодера-декодера с механизмом внимания.

Блок свертки (рис. 12) состоит из одномерной свертки и вяи. Этот блок обрабатывает, для кодирования, скрытые представления текста и аудио.

Waveform samples WaveNet Mol

Cïinv Black Output

(saihJKnJ Г spüi 1

4 È> f2ç ¡ cunv J £ dru pu ut 3 -Ь

S pcaker Embedding Inpu.1

Рисунок 13 — блок внимания

Плюсы DeepVoice 3:

• преобразует входной текст в спектрограммы;

• модель использует механизм внимания, чтобы ввести монотонное выравнивание;

• модель быстро обучается (достаточно 500000 итераций. К примеру, Tacatron требует около двух миллионов итераций);

• оценка MOS — 3,78

Архитектура Tacatron 2 (рис. 14) аналогична первой версии. Кодер стал более простым, остались только слои свертки и двунаправленный LSTM (сеть долгой краткосрочной памяти) для кодирования вложений символов. Аддитивное внимание было заменено на механизм чувствительного к расположению внимания. Часть декодера стала проще [14].

Рисунок 12 — блок свертки

Блок внимания (рис. 13) является монотонным. Он использует вектор запроса (скрытые состояния декодера) и векторы ключей для каждого временного шага от кодера для вычисления веса внимания, а затем выводит вектор контекста, вычисленный как средневзвешенное значение полученных весов. Значение вектора здесь означает масштабированную сумму основного вектора и вектора встраивания текста.

Рисунок 14 — архитектура tacotron 2

Главное обновление Tacatron 2 то, что он использует WaveNet MoL для обработки прогнозов спектрограмм и формирования речевых сигналов. WaveNet MoL отличается от WaveNet тем, что он использует 10-компонентные распределения Mixture of Logistics для генерации аудио сэмплов.

Оценка MOS — 4,53 для американского английского. Этот показатель максимально приближен к MOS оценке профессионально записанной речи, которая составляет 4,58.

V. Заключение На сегодняшний день существует множество архитектур преобразования текста в речь. К сожалению, все еще существуют проблемы, с которыми сталкиваются разработчики данных систем. Самой главной проблемой является выразительность синтезированной речи. Для решения данной проблемы необходимо: улучшить определение системой правильность простановки ударения (к примеру слова омографы, одинаковые по написанию, но с разными ударениями), определение правильной интонации (восклицательные, вопросительные или положительные предложения). Также стоят задачи улучшения нормализации текста и преобразования текста в фонетическое представление.

Начать изучение данной область стоит с более современных систем, таких как: Tacotron 2 и Deep Voice 3. У данных систем есть возможность скачать исходный код, так как он находится в открытом доступе. Также в системах можно отметить качественность синтезированной речи, которая приближенна к профессионально записанной речи.

[1] WikipediA [Электронный ресурс]/ Sound/ URL: https://en.wikipedia.org/wiki/Sound (дата обращения 27.02.2020)

[2] WikipediA [Электронный ресурс]/ Speech synthesis/ URL: https://en.wikipedia.org/wiki/Speech_synthesis (дата обращения 27.02.2020)

[3] WikipediA [Электронный ресурс]/ Синтез речи/ URL: https://m.wikipedia.org/wiki/Синтез_речи (дата обращения 27.02.2020)

[4] WikipediA [Электронный ресурс]/ Human voice/ URL: https://en.wikipedia.org/wiki/Human_voice (дата обращения 27.02.2020)

[5] WikipediA [Электронный ресурс]/ Голос/ URL: https://ru.wikipedia.org/wiki/Голос (дата обращения 27.02.2020)

[6] Google Patents [Электронный ресурс]/ Intonation adjustment in text-to-speech systems/ Shankar Narayan/ URL: https://patents.google.com/patent/US5642466A/en (дата обращения 27.02.2020)

[7] Google Patents [Электронный ресурс]/ Text to speech/ Edwin R. AddisonH. Donald WilsonGary MarpleAnthony H. HandalNancy

Krebs/ URL: https://patents.google.com/patent/US6865533B2/en https://pdfs.semanticscholar.org/ed99/08f71d6521a45093ffc0f936531

(дата обращения 27.02.2020) 5c1183604.pdf (дата обращения 27.02.2020)

[8] arXiv.org [Электронный ресурс]/ WAVENET: A GENERATIVE MODEL FOR RAW AUDIO/ Aaron van den Oord, Sander Dieleman, Heiga Zen, Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalchbrenner, Andrew Senior, Koray Kavukcuoglu/ URL: https://arxiv.org/pdf/1609.03499.pdf (дата обращения 11.02.2020)

[9] arXiv.org [Электронный ресурс]/ Deep Voice: Real-time Neural Text-to-Speech/ Sercan O. Arik, Mike Chrzanowski, Adam Coates, Gregory Diamos, Andrew Gibiansky, Yongguo Kang, Xian Li, John Miller, Andrew Ng, Jonathan Raiman, Shubho Sengupta, Mohammad Shoeybi/ URL: https://arxiv.org/pdf/1702.07825.pdf (дата обращения 11.02.2020)

[10] arXiv.org [Электронный ресурс]/ Tacotron: Towards End-to-End Speech Synthesis/ Yuxuan Wang, RJ Skerry-Ryan, Daisy Stanton, Yonghui Wu, Ron J. Weiss, Navdeep Jaitly, Zongheng Yang, Ying Xiao, Zhifeng Chen, Samy Bengio, Quoc Le, Yannis Agiomyrgiannakis, Rob Clark, Rif A. Saurous/ URL: https://arxiv.org/pdf/1703.10135.pdf (дата обращения 27.02.2020)

[11] B arXiv.org [Электронный ресурс]/ Deep Voice 2: Multi-Speaker Neural Text-to-Speech/ Sercan Arik, Gregory Diamos, Andrew Gibiansky, John Miller, Kainan Peng, Wei Ping, Jonathan Raiman, Yanqi Zhou/ URL: https://arxiv.org/pdf/1705.08947.pdf (дата обращения 27.02.2020)

[12] Semantic Scholar [Электронный ресурс]/ Speech Enhancement for a Noise-Robust Text-to-Speech Synthesis System using Deep Recurrent Neural Networks/ Cassia Valentini-Botinhao, Xin Wang, Shinji Takaki, Junichi Yamagishi/ URL: https://pdfs.semanticscholar.org/ed99/08f71d6521a45093ffc0f936531 5c1183604.pdf (дата обращения 27.02.2020)

[13] arXiv.org [Электронный ресурс]/ Deep Voice 3: Scaling Text-to-Speech with Convolutional Sequence Learning/ Wei Ping, Kainan Peng, Andrew Gibiansky, Sercan O. Arik, Ajay Kannan, Sharan Narang, Jonathan Raiman, John Miller/ URL: https://arxiv.org/pdf/1710.07654.pdf (дата обращения 27.02.2020)

[14] arXiv.org [Электронный ресурс]/ Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions/ Jonathan Shen, Ruoming Pang, Ron J. Weiss, Mike Schuster, Navdeep Jaitly, Zongheng Yang, Zhifeng Chen, Yu Zhang, Yuxuan Wang, RJ Skerry-Ryan, Rif A. Saurous, Yannis Agiomyrgiannakis, Yonghui Wu / URL: https://arxiv.org/pdf/1712.05884.pdf (дата обращения 20.02.2020)

[15] Google Patents [Электронный ресурс]/ Method and system for statistic-based distance definition in text-to-speech conversion/ Wei Z W ZhangXi Jun MaLing JinHai Xin Chai/ URL: https://patents.google.com/patent/US7590540B2/en (дата обращения 27.02.2020)

[16] Google Patents [Электронный ресурс]/ System and method for distributed text-to-speech synthesis and intelligibility/ Jun XuTeck Chee LEE/ URL: https://patents.google.com/patent/US9761219B2/en (дата обращения 27.02.2020)

[17] Google Patents [Электронный ресурс]/ Systems and methods for text-to-speech synthesis using spoken example/ Andy AaronRaimo BakisEllen M. EideWael M. Hamza/ URL: https://patents.google.com/patent/US8886538B2/en (дата обращения 27.02.2020)

[18] Google Patents [Электронный ресурс]/ System and method of performing user-specific automatic speech recognition/ Bojana GajicShrikanth Sambasivan NarayananSarangarajan ParthasarathyRichard Cameron RoseAaron Edward Rosenberg / URL: https://patents.google.com/patent/US9058810B2/en (дата обращения 27.02.2020)

[19] arXiv.org [Электронный ресурс]/ Deep Speech: Scaling up end-to-end speech recognition/ Awni Hannun, Carl Case, Jared Casper, Bryan Catanzaro, Greg Diamos, Erich Elsen, Ryan Prenger, Sanjeev Satheesh, Shubho Sengupta, Adam Coates, Andrew Y. Ng/ URL: https://arxiv.org/pdf/1412.5567.pdf (дата обращения 27.02.2020)

[20] arXiv.org [Электронный ресурс]/ Segmental Recurrent Neural Networks for End-to-end Speech Recognition/ Liang Lu, Lingpeng Kong, Chris Dyer, Noah A. Smith, and Steve Renals/ URL: https://arxiv.org/pdf/1603.00223.pdf (дата обращения 27.02.2020)

[21] CiteSeerX [Электронный ресурс]/ Hidden Markov Model based Speech Synthesis: A Review/ Sangramsing Kayte, Monica Mundada, Jayesh Gujrath/ URL: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.740.1357& rep=rep1&type=pdf (дата обращения 27.02.2020)

[22] Semantic Scholar [Электронный ресурс]/ Speech Enhancement for a Noise-Robust Text-to-Speech Synthesis System using Deep Recurrent Neural Networks/ Cassia Valentini-Botinhao, Xin Wang, Shinji Takaki, Junichi Yamagishi/ URL:

Review of existing text-to-speech algorithms

N.S. Kireev, E.A. Ilyushin

Annotation — Scientists have long been working on algorithms for translate text written in natural language into speech. But the quality of work these algorithms left much to be desired until the moment when the application of deep learning methods was not possible. With the advent of the necessary computing resources and the accumulation of a sufficient amount of data for training, these methods have become widely used in machine learning in general and, of course, in speech synthesis in particular. A significant improvement in the quality of the work of text-to-speech algorithms has led to their widespread use, namely in mobile devices, smart speakers, voice assistants, etc. But it is worth noting that the algorithms of this class, developed at the moment, do not always correctly cope with the task. For example, they cannot always correctly emphasize or voice the necessary parts of the text with the necessary intonation. Thus, the study of methods and means of synthesizing speech has become even more relevant.

There are many different ways to synthesize speech by text, such as parametric synthesis, compilation synthesis, subject-oriented synthesis, and full speech synthesis by the rules. The purpose of this work is to review existing algorithms for translating text to speech and conducting their comparative analysis. The main algorithms were considered: WaveNet, DeepVoice, Tacatron, DeepVoice 2, DeepVoice 3 and Tacatron 2. In the course of their comparison, it was determined that the best at the moment are DeepVoice 3 and Tacatron 2, since the assessments of the quality of their work are closest to professionally recorded speech.

Keywords—speech, text-to-speech, speech synthesis, nlp

[1] Sound [Online]. Available: https://en.wikipedia.org/wiki/Sound

[2] Speech synthesis [Online]. Available: https://en.wikipedia.Org/w iki/Speech_synthesis

[3] Sintez rechi [Online]. Available: https://ru.wikipedia.org/wiki/Sintez_rechi

[4] Human voice [Online]. Available: https://en.wikipedia.org/wiki/ Human_voice

[5] Voice [Online]. Available: https://ru.wikipedia.org/wiki/Voice

[6] Shankar Narayan. (1997, June 24). Intonation adjustment in text-to-speech systems/ Shankar Narayan [Online]. Available: https://patents.google.com/patent/US5642466A/en

[7] Edwin R. AddisonH. Donald WilsonGary MarpleAnthony H. HandalNancy Krebs. (2005 March 8). Text to speech [Online]. Available: https://patents.google.com/patent/US6865533B2/en

[8] Aaron van den Oord, Sander Dieleman, Heiga Zen, Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalchbrenner, Andrew Senior, Koray Kavukcuoglu. (2016, September 19). WAVENET: A GENERATIVE MODEL FOR RAW AUDIO [Online]. Available: https://arxiv.org/pdf/1609.03499.pdf

[9] Sercan O. Arik, Mike Chrzanowski, Adam Coates, Gregory Diamos, Andrew Gibiansky, Yongguo Kang, Xian Li, John Miller, Andrew Ng, Jonathan Raiman, Shubho Sengupta, Mohammad Shoeybi. (2017, March 7). Deep Voice: Real-time Neural Text-to-Speech [Online]. Available: https://arxiv.org/pdf/1702.07825.pdf

[10] Yuxuan Wang, RJ Skerry-Ryan, Daisy Stanton, Yonghui Wu, Ron J. Weiss, Navdeep Jaitly, Zongheng Yang, Ying Xiao, Zhifeng Chen, Samy Bengio, Quoc Le, Yannis

Правильный NLP: как работают и что умеют системы обработки естественного языка

Ринат Максутов

Согласно данным компании Research and Market объём мирового рынка обработки естественного языка увеличится с $10,2 млрд. в 2019 году до $26,4 млрд. К 2024 году при совокупном годовом темпе роста (CAGR) на 21,0% в течение прогнозируемого периода.

Основные факторы роста рынка NLP: стали больше использоваться интеллектуальные устройства, а также облачные решения и приложения на основе NLP, которые улучшают обслуживание клиентов, увеличились технологические инвестиции в отрасль здравоохранения.

Какие задачи сегодня может решать NLP?

Машинный перевод текстов с одного языка на другой

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

Анализ текстов

Анализ текстов реализуется в трёх основных форматах: классификации, отражении содержания и анализе тональности.

Все задачи по классификации текстов (text classification) можно разделить на два типа:

  • бинарная классификация позволяет определить релевантность предложенного пользователю документа;
  • мультиклассовая классификация позволяет определить тематику документа и отнести его к одному из сотни тематических классов.

Отражение содержания текста (text summarization) работает так: на вход NLP-система принимает текст большого размера, а на выходе отдаёт текст меньшего размера, отражающий содержание большого.

Например, от машины можно потребовать сгенерировать пересказ текста, заголовок или аннотацию. Чуть подробнее про генерацию текста можно почитать в материале «Генерируем заголовки фейковых новостей в стиле Ленты.ру» с подробным разбором способов, которыми можно обучить нейросети созданию осмысленных и забавных для человеческого восприятия заголовков.

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

Распознавание и синтез речи

Распознавание речи представляет собой процесс преобразования речевого сигнала в цифровую информацию, например в текст. Синтез речи работает в обратном направлении, формируя речевой сигнал по печатному тексту.

Синтез и распознавание речи применяются в самых разных областях, например, в работе голосовых ассистентов, IVR-систем и «умных домах».

Разработка диалоговых систем

Диалоговыми системами можно считать:

  • умные помощники (Яндекс.Алиса, Siri, Alexa);
  • чат-боты — текстовые системы, следующие сценариям диалога (бот «Связного», Facebook Messenger);
  • QA-системы.

Все они опираются на NLP-инструменты: распознавание речи, выделение смысла, контекста, определение намерения, а затем выстраивание диалога, исходя из вышеперечисленного (в идеале — путём синтеза речи).

Выделение сущностей и фактов

Ещё одна популярная задача NLP — извлечение именованных сущностей (Named-entity recognition, NER) из текста. Представим, что у есть сплошной текст о покупке-продаже активов, и необходимо выделить персон, а также даты и активы.

На фоне роста аналитических прогнозов, миллиардер Иван Петров выкупил контрольный пакет акций компании « Рога и Копыта » в 1999 году.

Задача NER — понять, что участок текста «1999 года» является датой, «Иван Петров» — персоной, а «пакет акций» — активом.

Без NER тяжело представить решение многих задач NLP, допустим, разрешения местоименной анафоры или построения вопросно-ответных систем. Если задать в поисковике вопрос «Кто играл роль Бэтмена в фильме “Темный рыцарь”», то ответ находится как раз с помощью выделения именованных сущностей: выделяем сущности (фильм, роль и т. п.), понимаем, что спрашивается, и дальше ищем ответ в базе данных.

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

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

Мы продемонстрировали возможность применения технологий ML и NLP для извлечения информации из текстового описания (и формирования профилей оборудования на её основе). Сформированные профили были сопоставлены с результатами ручного маппинга, взятого за эталон — достигнутая точность составила 97,3%. Подход позволяет существенно снизить затраты труда и времени, а также свести к минимуму риски, связанные с ошибками ручной обработки текстов.

Как обрабатывается естественный язык?

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

Для решения большинства задач требовался тщательный выбор архитектуры, а также ручной сбор и обработка признаков. Однако в последнее время нейронные сети начали давать более точные результаты по сравнению с классическими моделями и сформировали общий подход для решения задач NLP.

Конвейер NLP

Реализация любой сложной задачи обычно означает построение пайплайна (конвейера).

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

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

2. Вычисление признаков каждого токена. Вычисляются контекстно-независимые признаки токена. Это набор признаков, не зависящих от соседних с токеном слов.

  • Один из самых часто использующихся признаков — часть речи.

  • Для языков со сложной морфологией (русский язык) также важны морфологические признаки: например, в каком падеже стоит существительное, какой род у прилагательного. Из этого можно сделать выводы о структуре предложения.
  • Морфология также нужна для приведения слов к начальной форме, с помощью которой мы можем уменьшить объём признакового пространства.

Например: I had a pony. I had two ponies.

Оба предложения содержат существительное «pony», но с разными окончаниями. Если тексты обрабатывает компьютер, он должен знать начальную форму каждого слова, чтобы понимать, что речь идёт об одной и той же концепции пони. Иначе токены «pony» и «ponies» будут восприняты как совершенно разные. В NLP этот процесс называется лемматизацией.

3. Определение значимости и фильтрация стоп-слов. В русском и английском языках очень много вспомогательных слов, например «and», «the», «a». При статистическом анализе текста эти токены создают много шума, так как появляются чаще, чем остальные. Поэтому их отмечают как стоп-слова и отсеивают.

4. Разрешение кореференции. В русском и английском языках очень много местоимений вроде he, she, it или ты, я, он и т. д. Это сокращения, которыми мы заменяем на письме настоящие имена и названия. Человек может проследить взаимосвязь этих слов от предложения к предложению, основываясь на контексте. Но NLP-модель не знает, что означают местоимения, ведь она рассматривает всего одно предложение за раз.

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

Это дерево парсинга демонстрирует, что главный субъект предложения — это существительное «London». Между ним и «capital» есть связь «be». Вот так мы узнали, что Лондон — это столица. Если бы мы проследовали дальше по веткам дерева (уже за границами схемы), то могли бы узнать, что «London is the capital of Great Britain».

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

7. Построение модели в зависимости от поставленной цели. Например, модель для классификации или генерации новых текстов.

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

Что такое предварительная обработка текста?

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

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

Давайте рассмотрим очень простой пример. Допустим, вы пытаетесь найти часто используемые слова в наборе новостей. Если ваш этап предварительной обработки включает в себя удаление стоп слова поскольку какое-то другое задание использовало его, вы, вероятно, пропустите некоторые из распространенных слов, поскольку вы УЖЕ устранили его. Так что на самом деле, это не универсальный подход.

Типы методов обработки текста

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

Lowercasing

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

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

Вот пример того, как строчные буквы решают проблему разреженности, когда одни и те же слова в разных падежах отображаются в одну и ту же строчную форму:

Слово с разными падежами все соответствует одномув нижнем регистреформа

Другой пример, где строчные буквы очень полезны, — это поиск. Представьте себе, вы ищете документы, содержащие «США». Тем не менее, никаких результатов не было, потому что «США» был проиндексирован как«СОЕДИНЕННЫЕ ШТАТЫ АМЕРИКИ».Теперь, кого мы должны винить? США дизайнер, который настраивал интерфейс, или инженер, который настраивал поисковый индекс?

В то время как строчные буквы должны быть стандартной практикой, у меня также были ситуации, когда сохранение капитализации было важно. Например, при прогнозировании языка программирования файла исходного кода. Слово System на Яве сильно отличается от system в питоне. Нижний регистр двух делает их идентичными, в результате чего классификатор теряет важные прогностические свойства. В то время как нижний регистркак правило,полезно, это может быть применимо не для всех задач.

Морфологический

Стемминг — это процесс сведения слов (например, проблемы, проблемы) к их коренной форме (например, проблемы). В этом случае «корень» может быть не настоящим корневым словом, а просто канонической формой исходного слова.

Стемминг использует грубый эвристический процесс, который отсекает концы слов в надежде правильно преобразовать слова в их корневую форму. Таким образом, слова «беспокойство», «беспокойство» и «неприятности» на самом деле могут быть преобразованы в troubl вместо того trouble потому что концы были просто отрублены (тьфу, как грубо!).

Существуют разные алгоритмы stemming. Наиболее распространенным алгоритмом, который также известен как эмпирически эффективный для английского языка, является Алгоритм Портера, Вот пример стемминга в действии с Портером Стеммером:

Эффекты остановки слова

Stemming полезен для решения проблем разреженности, а также для стандартизации словарного запаса. В частности, я успешно справлялся с поисковыми приложениями. Идея состоит в том, что если вы говорите, что вы ищете «классы глубокого обучения», вы также хотите вспомнить документы, в которых упоминается «глубокое обучение».учебный классА также «глубокийучитьсяклассы », хотя последнее звучит неправильно. Но вы получите, куда мы идем с этим Вы хотите сопоставить все варианты слова, чтобы вызвать наиболее релевантные документы.

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

лемматизации

Лемматизация на поверхности очень похожа на stemming, где цель состоит в том, чтобы удалить изгибы и сопоставить слово с его корневой формой. Разница лишь в том, что лемматизация пытается сделать это правильно. Он не просто отрубает вещи, он фактически преобразовывает слова в настоящий корень. Например, слово «лучше» будет означать «хорошо». Это может использовать словарь, такой как WordNet для сопоставлений или какой-то особенный основанные на правилах подходы, Вот пример лемматизации в действии с использованием подхода на основе WordNet:

Эффекты лемматизации с WordNet

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

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

Удаление стоп-слов

Стоп-слова — это набор часто используемых слов в языке. Примерами стоп-слов в английском языке являются «a», «the», «is», «are» и т. Д. Интуиция, лежащая в основе использования стоп-слов, заключается в том, что, удаляя из текста слова с низкой информацией, мы можем вместо этого сосредоточиться на важных словах ,

Например, в контексте поисковой системы, если ваш поисковый запрос«Что такое предварительная обработка текста?»вы хотите, чтобы поисковая система сосредоточилась на всплывающих документах, text preprocessing по документам, которые говорят о what is , Это может быть сделано путем предотвращения анализа всех слов из вашего списка стоп-слов. Стоп-слова обычно применяются в поисковых системах, приложениях для классификации текста, моделирования тем, извлечения тем и других.

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

Вот пример удаления стоп-слова в действии. Все стоп-слова заменяются на заглушку,W:

Приговор до и после удаления стоп-слова

Стоп слов может прийти из заранее установленных наборов или вы можете создать индивидуальный для вашего домена, Некоторые библиотеки (например, sklearn) позволяют вам удалять слова, появившиеся в X% ваших документов, что также может дать вам эффект удаления стоп-слов.

нормализация

Широко пропускаемый шаг предварительной обработки — нормализация текста. Нормализация текста — это процесс преобразования текста в каноническую (стандартную) форму. Например, слова «gooood» и «gud» можно преобразовать в «хороший», его каноническую форму. Другим примером является сопоставление почти идентичных слов, таких как «стоп-слова», «стоп-слова» и «стоп-слова», с просто «стоп-словами».

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

Вот пример слов до и после нормализации:

Эффекты нормализации текста

Обратите внимание, как вариации отображаются на одну и ту же каноническую форму.

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

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

Некоторые общие подходы к нормализации текста включают в себя сопоставления словаря (самый простой), статистический машинный перевод (SMT) и подходы, основанные на исправлении орфографии. Эта интересная статья сравнивается использование подхода на основе словаря и подхода SMT для нормализации текстовых сообщений.

Удаление шума

Удаление шума — это удаление characters digits а также pieces of text которые могут помешать вашему анализу текста Удаление шума — один из самых важных шагов предварительной обработки текста. Это также сильно зависит от домена.

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

МорфологическийбезУдаление шума

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

МорфологическийсУдаление шума

Удаление шума — это одна из первых вещей, которую вы должны изучить, когда речь идет о Text Mining и NLP. Существуют различные способы удаления шума. Это включаетудаление пунктуации,удаление специальных символов,удаление номеров, удаление форматирования html, удаление ключевых слов для конкретного домена(например, «RT» для ретвита), удаление исходного кода, удаление заголовкаи больше. Все зависит от того, в какой области вы работаете, и что влечет за собой шум для вашей задачи. фрагмент кода в моей записной книжке показывает, как сделать базовое удаление шума.

Обогащение текста / увеличение

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

В примере поиска информации расширение запроса пользователя для улучшения соответствия ключевых слов является формой расширения. Запрос как text mining мог стать text document mining analysis , Хотя это не имеет смысла для человека, оно может помочь получить документы, которые более актуальны.

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

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

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

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

Итак . тебе нужно сделать все это?

Не совсем, но вы должны сделать это наверняка, если хотите хороших, последовательных результатов. Чтобы дать вам представление о том, каким должен быть минимум, я разбил его наДолжен сделать,Следует сделатьа такжеЗависит от задачи, Все, что подпадает под задачу, может быть количественно или качественно проверено, прежде чем решить, что вам это действительно нужно.

Помните, чем меньше, тем лучше, и вы хотите, чтобы ваш подход был максимально элегантным. Чем больше накладных расходов вы добавляете, тем больше слоев вам придется оттягивать, когда вы сталкиваетесь с проблемами.

Должен сделать:

  • Удаление шума
  • Нижний регистр (в некоторых случаях может зависеть от задачи)

Следует сделать:

  • Простая нормализация — (например, стандартизировать почти одинаковые слова)

Зависит от задачи:

  1. Расширенная нормализация (например, обращение к словарным словам)
  2. Удаление стоп-слов
  3. Стемминг / лемматизация
  4. Текст обогащения / дополнения

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

Общее правило большого пальца

Не все задачи требуют одинакового уровня предварительной обработки. Для некоторых задач вы можете сойти с минимума. Однако для других набор данных настолько зашумлен, что, если вы не проведете достаточную предварительную обработку, он будет «мусором в мусоре».

Вот общее правило. Это не всегда верно, но работает в большинстве случаев. Если у вас есть много хорошо написанных текстов для работы в довольно общей области, то предварительная обработка не является чрезвычайно важной; Вы можете обойтись без минимума (например, обучить модели встраивания слов, используя все тексты Википедии или новостные статьи Reuters)

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

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

Ресурсы

  • Python-код для базовой предварительной обработки текста с использованием NLTK и регулярных выражений
  • Построение пользовательских списков стоп-слов
  • Исходный код для извлечения фразы

Ссылки

  • Для обновленного списка документов, пожалуйста, смотрите моя оригинальная статья

Следите за блогом Кавиты продолжать изучать Text Mining, NLP и Machine Learning с прикладной точки зрения.

Итоговое тестирование. Модуль 2. Цифровые технологии в отрасли ИКТ

Когда нерегулярно происходит “наказание” модели за неправильный результат

Когда нерегулярно происходит “вознаграждение” модели за правильный результат

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

Ничего из вышеперечисленного

Какие бывают метрики машинного обучения?

Площадь под прямой

Точность

Чувствительность

Аккуратность

Площадь под кривой

Правильность

Для чего используется регрессия в машинном обучении?

Предсказание каких-либо значений по набору признаков

Обнаружение в обучающей выборке небольшого числа нетипичных объектов

Поиск набора признаков их их значений, которые особенно часто встречаются в признаковых описаниях объектов

Формализация знаний экспертов и их перенос в компьютер в виде базы знаний

Какие ограничения приходится накладывать на решение методом кластеризации?

Использовать итеративный подход

Использовать метрики, которые позволяют отклонять заведомо “плохие” варианты

Использовать определенное число кластеров

Использовать ограниченную модель

Использовать лишь некоторые метрики качества

Какая предобработка текста нужна для генерации речи?

Постановка интонации согласно пунктуации

Конструирование фонем по словам

Расстановка ударений

Раскрытие чисел и аббревиатур

Какие способы существуют для поиска дубликатов и похожих изображений?

Ключевые точки

Хэш-функции

Ключевые углы

Вектор точки

Множество дескрипторов

Каким из способов на практике можно бороться с проблемой Out Of Vocabulary (отсутствие слова в словаре)?

Приведение неизвестных слов к наиболее близким словарным словам по расстоянию Левенштейна

Добавление признака на входном слое и дообучение модели

Генерация всех возможных слов словаря перед обучением

Использование буквенных триграмм дополнительно к словарю

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

Умение решать инженерные задачи с применением ИИ востребовано в индустрии

Прикладное применение ИИ — это активно-развивающееся направление в науке

ИИ — это сквозная технология применимая в различных отраслях экономики.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *