NLP-Models-Tensorflow . Собирает модели машинного обучения и глубокого обучения тензорного потока для задач НЛП, упрощает код внутри Jupyter Notebooks 100% .
Оглавление
- Абстрактное обобщение
- Чат-бот
- Парсер зависимостей
- Маркировка объектов
- Экстрактивное обобщение
- Генератор
- Определение языка
- Нейронный машинный перевод
- оптическое распознавание символов
- POS-теги
- Вопросы-Ответы
- Пары предложений
- Преобразование речи в текст
- Исправление орфографии
- SQUAD Вопросы-Ответы
- Стемминг
- Увеличение текста
- Классификация текста
- Сходство текста
- Преобразование текста в речь
- Генератор тем
- Тематическое моделирование
- Неконтролируемое извлекающее обобщение
- векторизатор
- Вокодер от старых к молодым
- Визуализация
- Внимание
Цель
Оригинальные реализации довольно сложны и не очень удобны для новичков. Поэтому я постарался упростить большую часть этого. Кроме того, существует множество еще не выпущенных документов по реализации. Так что смело используйте его для собственных исследований!
Я приложу репозитории GitHub для моделей, которые я не реализовал с нуля, в основном я копирую, вставляю и исправляю этот код для устранения устаревших проблем.
Версия Тензорного потока
Только Tensorflow версии 1.13 и выше, версия 2.X не включена. 1.13 < Тензорный поток < 2.0
pip install -r requirements.txt
Содержание
Абстрактное обобщение
Обучался новостям Индии.
Точность основана только на 10 эпохах и рассчитана с использованием позиций слов.
Полный список (12 тетрадей)
- LSTM Seq2Seq с использованием тематического моделирования, точность теста 13,22%
- LSTM Seq2Seq + Luong Внимание с использованием тематического моделирования, точность теста 12,39%
- LSTM Seq2Seq + Beam Decoder с использованием тематического моделирования, точность теста 10,67%
- LSTM двунаправленный + внимание Луонга + декодер луча с использованием тематического моделирования, точность теста 8,29%
- Pointer-Generator + Bahdanau, https://github.com/xueyouluo/my_seq2seq, точность теста 15,51%
- Копнет, точность теста 11,15%
- Pointer-Generator + Luong, https://github.com/xueyouluo/my_seq2seq, точность теста 16,51%
- Расширенный Seq2Seq, точность теста 10,88%
- Расширенный Seq2Seq + Self Attention, точность теста 11,54%
- BERT + расширенный CNN Seq2seq, точность теста 13,5%
- самовнимание + Указатель-Генератор, точность теста 4,34%
- Dilated-CNN Seq2seq + указатель-генератор, точность теста 5,57%
Чат-бот
Прошел обучение на корпусе Cornell Movie Dialog, таблице точности в чат-боте.
Полный список (54 тетради)
- Базовая ячейка Seq2Seq-руководство
- Руководство по LSTM Seq2Seq
- GRU Seq2Seq-руководство
- Базовая ячейка Seq2Seq-API Жадный
- LSTM Seq2Seq-API жадный
- GRU Seq2Seq-API Жадный
- Базовая ячейка Двунаправленная Seq2Seq-руководство
- LSTM Двунаправленный Seq2Seq-руководство
- GRU двунаправленный Seq2Seq-руководство
- Базовая ячейка Двунаправленный Seq2Seq-API Жадный
- LSTM двунаправленный Seq2Seq-API жадный
- GRU Двунаправленный Seq2Seq-API Жадный
- Базовая ячейка Seq2Seq-руководство + Внимание Luong
- LSTM Seq2Seq-руководство + Luong Внимание
- GRU Seq2Seq-руководство + Luong Внимание
- Базовая ячейка Seq2Seq-руководство + Богданов Внимание
- LSTM Seq2Seq-руководство + Богданау Внимание
- GRU Seq2Seq-руководство + Богданов Внимание!
- LSTM Двунаправленный Seq2Seq-руководство + Внимание Luong
- GRU двунаправленный Seq2Seq-руководство + Luong Внимание
- LSTM двунаправленный Seq2Seq-руководство + Багданау Внимание
- ГРУ Двунаправленный Seq2Seq-руководство + Богданау Внимание
- LSTM Двунаправленный Seq2Seq-ручной + назад Бахданау + вперед Луонг
- GRU Двунаправленный Seq2Seq-ручной + назад Багданау + вперед Луонг
- LSTM Seq2Seq-API Greedy + Внимание Луонга
- GRU Seq2Seq-API Greedy + Внимание Луонга
- LSTM Seq2Seq-API Greedy + Bahdanau Внимание
- GRU Seq2Seq-API Greedy + Bahdanau Внимание
- Декодер луча LSTM Seq2Seq-API
- Декодер луча GRU Seq2Seq-API
- Двунаправленный Seq2Seq-API LSTM + внимание Luong + декодер луча
- GRU Двунаправленный Seq2Seq-API + Внимание Луонга + Декодер луча
- LSTM Двунаправленный Seq2Seq-API + обратный Бахданау + прямой Луонг + стек Багданау Луонг Внимание + лучевой декодер
- GRU Двунаправленный Seq2Seq-API + обратный Бахданау + прямой Луонг + стек Багданау Луонг Внимание + лучевой декодер
- Байтенет
- LSTM Seq2Seq + tf.estimator
- Слои капсулы + LSTM Seq2Seq-API Greedy
- Слои капсулы + LSTM Seq2Seq-API + Внимание Luong + Декодер луча
- LSTM Двунаправленный Seq2Seq-API + обратный Bahdanau + прямой Luong + стек Bahdanau Luong Внимание + декодер луча + Dropout + L2
- DNC Seq2Seq
- Двунаправленный Seq2Seq-API LSTM + монотическое внимание Луонга + лучевой декодер
- Двунаправленный Seq2Seq-API LSTM + монотическое внимание Багданау + лучевой декодер
- Сквозная сеть памяти + базовая ячейка
- Сквозная сеть памяти + ячейка LSTM
- Внимание — это все, что вам нужно
- Трансформер-XL
- Внимание — это все, что вам нужно + Поиск по лучу
- Трансформер-XL + ЛСТМ
- ГПТ-2 + ЛСТМ
- CNN Seq2seq
- Conv-кодировщик + LSTM
- Такотрон + Жадный декодер
- Такотрон + декодер луча
- Google НМТ
Парсер зависимостей
Прошел обучение по теме CONLL English Dependency. Обучайте набор для обучения, разрабатывайте и тестируйте наборы для тестирования.
Stackpointer и Biaffine-attention изначально взяты из https://github.com/XuezheMax/NeuroNLP2, написаны на Pytorch.
Точность основана на точности дуги, типов и корней только после 15 эпох.
Полный список (8 тетрадей)
- Двунаправленный RNN + CRF + Biaffine, точность дуги 70,48%, точность типов 65,18%, корневая точность 66,4%
- Двунаправленный RNN + Багданау + CRF + Biaffine, точность дуги 70,82%, точность типов 65,33%, корневая точность 66,77%
- Двунаправленный RNN + Luong + CRF + Biaffine, точность дуги 71,22%, точность типов 65,73%, корневая точность 67,23%
- BERT Base + CRF + Biaffine, точность дуги 64,30%, точность типов 62,89%, корневая точность 74,19%
- Двунаправленный RNN + биаффинное внимание + перекрестная энтропия, точность дуги 72,42%, точность типов 63,53%, корневая точность 68,51%
- База BERT + Биаффинное внимание + Перекрестная энтропия, точность дуги 72,85%, точность типов 67,11%, корневая точность 73,93%
- Двунаправленный RNN + Stackpointer, точность дуги 61,88%, точность типов 48,20%, корневая точность 89,39%
- XLNET Base + Biaffine Attention + Cross Entropy, точность дуги 74,41%, точность типов 71,37%, корневая точность 73,17%
Маркировка объектов
Прошел обучение на CONLL NER.
Полный список (9 тетрадей)
- Двунаправленный RNN + CRF, точность теста 96%
- Двунаправленный RNN + Luong Attention + CRF, точность теста 93%
- Двунаправленный RNN + Внимание Багданау + CRF, точность теста 95%
- Char Ngrams + двунаправленный RNN + Внимание Багданау + CRF, точность теста 96%
- Char Ngrams + двунаправленный RNN + Внимание Багданау + CRF, точность теста 96%
- Char Ngrams + Остаточная сеть + Внимание Багданау + CRF, точность теста 69%
- Char Ngrams + Внимание — это все, что вам нужно + CRF, точность теста 90 %
- BERT, точность теста 99%
- База XLNET, точность тестирования 99 %
Экстрактивное обобщение
Обучался на наборе данных CNN News.
Точность на основе ROUGE-2.
Полный список (4 тетради)
- LSTM RNN, точность теста 16,13%
- Расширенный CNN, точность теста 15,54%
- Мультиголовка Внимание, точность теста 26,33%
- BERT-база
Генератор
Обучался на наборе данных Шекспира.
Полный список (15 тетрадей)
- Посимвольный RNN + LSTM
- Посимвольный RNN + лучевой поиск
- Посимвольный RNN + LSTM + встраивание
- Пословный RNN + LSTM
- Пословный RNN + LSTM + встраивание
- Посимвольно + Seq2Seq + GRU
- Пословно + Seq2Seq + GRU
- Посимвольный RNN + LSTM + Багданау Внимание
- Посимвольный RNN + LSTM + внимание Луонга
- Пословно + Seq2Seq + GRU + Beam
- Посимвольно + Seq2Seq + ГРУ + Богданау Внимание!
- Пословно + Seq2Seq + ГРУ + Богданов Внимание!
- Посимвольный расширенный CNN + лучевой поиск
- Трансформатор + Поиск луча
- Трансформатор XL + Поиск луча
Определение языка
Обучался на наборе данных Татоэбы.
Полный список (1 тетрадь)
- N-граммы быстрого текста
Нейронный машинный перевод
Обучение на английском и французском языках, таблица точности нейро-машинного перевода.
Полный список (53 тетради)
1.basic-seq2seq 2.lstm-seq2seq 3.gru-seq2seq 4.basic-seq2seq-contrib-greedy 5.lstm-seq2seq-contrib-greedy 6.gru-seq2seq-contrib-greedy 7.basic-birnn-seq2seq 8.lstm-birnn-seq2seq 9.gru-birnn-seq2seq 10.basic-birnn-seq2seq-contrib-greedy 11.lstm-birnn-seq2seq-contrib-greedy 12.gru-birnn-seq2seq-contrib-greedy 13.basic-seq2seq-luong 14.lstm-seq2seq-luong 15.gru-seq2seq-luong 16.basic-seq2seq-bahdanau 17.lstm-seq2seq-bahdanau 18.gru-seq2seq-bahdanau 19.basic-birnn-seq2seq-bahdanau 20.lstm-birnn-seq2seq-bahdanau 21.gru-birnn-seq2seq-bahdanau 22.basic-birnn-seq2seq-luong 23.lstm-birnn-seq2seq-luong 24.gru-birnn-seq2seq-luong 25.lstm-seq2seq-contrib-greedy-luong 26.gru-seq2seq-contrib-greedy-luong 27.lstm-seq2seq-contrib-greedy-bahdanau 28.gru-seq2seq-contrib- жадный-бахданау 29.lstm-seq2seq-contrib-beam-luong 30.gru-seq2seq-contrib-beam-luong 31.lstm-seq2seq-contrib-beam-bahdanau 32.gru-seq2seq-contrib-beam-bahdanau 33.lstm-birnn-seq2seq-contrib-beam-bahdanau 34.lstm-birnn-seq2seq-contrib-beam-luong 35.gru-birnn-seq2seq-contrib-beam-bahdanau 36.gru-birnn-seq2seq-contrib-beam -луонг 37.lstm-birnn-seq2seq-contrib-beam-luongmonotonic 38.gru-birnn-seq2seq-contrib-beam-luongmonotic 39.lstm-birnn-seq2seq-contrib-beam-bahdanaumonotonic 40.gru-birnn-seq2seq-contrib-beam-bahdanaumonotic 41.residual-lstm-seq2seq-greedy-luong 42.residual-gru-seq2seq-greedy-luong 43.residual-lstm-seq2seq-greedy-bahdanau 44.residual-gru-seq2seq-greedy-bahdanau 45.memory-network-lstm-decoder-greedy 46.google-nmt 47.transformer-encoder-transformer-decoder 48.transformer-encoder-lstm-decoder-greedy 49.bertmultilanguage -encoder-bertмультиязычный-декодер 50.bertmultilanguage-encoder-lstm-decoder 51.bertmultilanguage-encoder-transformer-decoder 52.bertenglish-encoder-transformer-decoder 53.transformer-t2t-2gpu
OCR (оптическое распознавание символов)
Полный список (2 тетради)
- CNN + LSTM RNN, точность теста 100%
- Im2Latex, точность теста 100%
POS-маркировка
Прошел обучение по CONLL POS.
Полный список (8 тетрадей)
- Двунаправленный RNN + CRF, точность теста 92%
- Двунаправленный RNN + Luong Attention + CRF, точность теста 91%
- Двунаправленный RNN + Внимание Багданау + CRF, точность теста 91%
- Char Ngrams + двунаправленный RNN + Внимание Багданау + CRF, точность теста 91%
- Char Ngrams + двунаправленный RNN + Внимание Багданау + CRF, точность теста 91%
- Char Ngrams + Остаточная сеть + Внимание Багданау + CRF, точность теста 3%
- Char Ngrams + Внимание — это все, что вам нужно + CRF, точность теста 89 %
- BERT, точность теста 99%
Вопросы-Ответы
Прошел обучение по набору данных bAbI.
Полный список (4 тетради)
- Сквозная сеть памяти + базовая ячейка
- Сквозная сеть памяти + ячейка GRU
- Сквозная сеть памяти + ячейка LSTM
- Динамическая память
Пара предложений
Прошел обучение на Корнеллском кино - Корпус диалогов.
Полный список (1 тетрадь)
- БЕРТ
Речь в текст
Прошел обучение на наборе речевых данных Торонто.
Полный список (11 тетрадей)
- Tacotron, https://github.com/Kyubyong/tacotron_asr, точность теста 77,09%
- BiRNN LSTM, точность теста 84,66%
- BiRNN Seq2Seq + внимание Луонга + перекрестная энтропия, точность теста 87,86%
- BiRNN Seq2Seq + Внимание Багданау + Перекрестная энтропия, точность теста 89,28%
- BiRNN Seq2Seq + Bahdanau Внимание + CTC, точность теста 86,35%
- BiRNN Seq2Seq + Luong Attention + CTC, точность теста 80,30%
- CNN RNN + Богданов Внимание, точность теста 80,23%
- Расширенный CNN RNN, точность теста 31,60%
- Wavenet, точность теста 75,11%
- Deep Speech 2, точность теста 81,40%
- Wav2Vec Трансферное обучение BiRNN LSTM, точность теста 83,24%
Исправление орфографии
Полный список (4 тетради)
- BERT-база
- База XLNET
- BERT-базовый быстрый
- BERT-база точная
SQUAD Вопросы-Ответы
Прошел обучение на наборе данных SQUAD.
Полный список (1 тетрадь)
- БЕРТ,
{ "exact_match" : 77.57805108798486 , "f1" : 86.18327335287402 }
Стемминг
Обучался лемматизации английского языка.
Полный список (6 тетрадей)
- LSTM + Seq2Seq + луч
- ГРУ + Seq2Seq + Луч
- LSTM + BiRNN + Seq2Seq + луч
- ГРУ + BiRNN + Seq2Seq + Луч
- DNC + Seq2Seq + Жадный
- BiRNN + Богданов + Copynet
Увеличение текста
Полный список (8 тетрадей)
- Предварительно обученная перчатка
- ГРУ VAE-seq2seq-луч ТФ-вероятность
- LSTM VAE-seq2seq-луч TF-вероятность
- ГРУ ВАЭ-seq2seq-луч + Богданау Внимание ТФ-вероятность
- VAE + Детерминированный Багданау Внимание, https://github.com/HareeshBahuleyan/tf-var-attention
- ВАЭ + ВАЭ Бахданау Внимание, https://github.com/HareeshBahuleyan/tf-var-attention
- База BERT + отбор проб ядер
- База XLNET + отбор ядерных проб
Классификация текста
Обучение на наборе данных настроений на английском языке, таблица точности классификации текста.
Полный список (79 тетрадей)
- Базовая ячейка RNN
- Базовая ячейка RNN + Шарнир
- Базовая клетка RNN + Губер
- Базовая ячейка Двунаправленный RNN
- Базовая ячейка Двунаправленный RNN + Шарнир
- Базовая ячейка Двунаправленный RNN + Хубер
- Ячейка LSTM RNN
- Ячейка LSTM RNN + шарнир
- Ячейка LSTM RNN + Хубер
- Ячейка LSTM Двунаправленный RNN
- Ячейка LSTM Двунаправленный RNN + Huber
- Ячейка LSTM RNN + Выпадение + L2
- Ячейка ГРУ РНН
- Ячейка ГРУ RNN + Шарнир
- Ячейка ГРУ РНН + Хубер
- Ячейка GRU Двунаправленный RNN
- Ячейка GRU Двунаправленный RNN + Шарнир
- Ячейка ГРУ Двунаправленный RNN + Хубер
- LSTM RNN + Conv2D
- К-макс. конв. 1 д.
- LSTM RNN + Conv1D + шоссе
- LSTM RNN + базовое внимание
- LSTM Расширенный RNN
- Слой-норма ячейки LSTM RNN
- Нейронная сеть «Только внимание»
- Нейронная сеть с многоголовым вниманием
- Нейронная машина Тьюринга
- LSTM Seq2Seq
- LSTM Seq2Seq + Луонг Внимание
- LSTM Seq2Seq + Багданау Внимание
- LSTM Seq2Seq + декодер луча
- LSTM двунаправленный Seq2Seq
- Указатель Сеть
- Ячейка LSTM RNN + Богданау Внимание
- Ячейка LSTM RNN + Луонг Внимание
- Ячейка LSTM RNN + стек Бахданау Луонг Внимание
- Ячейка LSTM Двунаправленный RNN + обратный Багданау + прямой Луонг
- Байтенет
- Быстрый-медленный LSTM
- Сиамская сеть
- LSTM Seq2Seq + tf.estimator
- Капсульные слои + RNN LSTM
- Слои капсулы + LSTM Seq2Seq
- Слои капсулы + двунаправленный LSTM Seq2Seq
- Вложенный LSTM
- LSTM Seq2Seq + шоссе
- Тройная потеря + LSTM
- DNC (Дифференцируемый нейронный компьютер)
- КонвЛСТМ
- Временная сеть конв.
- Пакетная потеря триплета + LSTM
- Быстрый текст
- Закрытая сеть свертки
- Простая рекуррентная единица
- Иерархическая сеть внимания LSTM
- Двунаправленные трансформаторы
- Сеть динамической памяти
- Сущностная сеть
- Сквозная сеть памяти
- BOW-Chars Глубокая разреженная сеть
- Остаточная сеть с использованием Atrous CNN
- Остаточная сеть с использованием Atrous CNN + Bahdanau. Внимание!
- Глубокая пирамида CNN
- Трансформер-XL
- Трансферное обучение GPT-2 345M
- Квази-РНН
- Такотрон
- Срез ГРУ
- Срез ГРУ + Богданов
- Вейвнет
- Трансферное обучение База BERT
- Трансферное обучение XL-net Large
- Глобальное максимальное и среднее пулирование LSTM BiRNN
- Передача обучения BERT Base drop 6 слоев
- Перенос обучения BERT Большая капля, 12 слоев
- Трансферное обучение XL-net Base
- Трансферное обучение АЛЬБЕРТ
- Трансферное обучение База ELECTRA
- Трансферное обучение ELECTRA Large
Сходство текста
Прошел обучение по МНЛИ.
Полный список (10 тетрадей)
- BiRNN + потеря контрастности, точность теста 73,032%
- BiRNN + перекрестная энтропия, точность теста 74,265%
- BiRNN + потеря круга, точность теста 75,857%
- BiRNN + потеря прокси, точность теста 48,37%
- База BERT + перекрестная энтропия, точность теста 91,123%
- База BERT + потеря круга, точность теста 89,903%
- ELECTRA Base + перекрестная энтропия, точность теста 96,317%
- ELECTRA Base + потеря круга, точность теста 95,603%
- База XLNET + перекрестная энтропия, точность теста 93,998%
- База XLNET + потеря круга, точность теста 94,033%
Преобразование текста в речь
Прошел обучение на наборе речевых данных Торонто.
Полный список (8 тетрадей)
- Такотрон, https://github.com/Kyubyong/tacotron
- CNN Seq2seq + расширенный вокодер CNN
- Seq2Seq + Богданау Внимание!
- Seq2Seq + Луонг Внимание
- Расширенный CNN + монотонное внимание + расширенный вокодер CNN
- Расширенный CNN + Самообслуживание + Расширенный вокодер CNN
- Deep CNN + Monothonic Attention + Расширенный вокодер CNN
- Deep CNN + Self Attention + Расширенный вокодер CNN
Генератор тем
Обучался новостям Малайзии.
Полный список (4 тетради)
- ТАТ-ЛСТМ
- ТАВ-ЛСТМ
- МТА-LSTM
- Расширенный CNN Seq2seq
Тематическое моделирование
Извлечено из набора данных о настроениях на английском языке.
Полный список (3 тетради)
- ЛДА2Век
- БЕРТ Внимание
- XLNET Внимание
Неконтролируемое извлекающее обобщение
Тренировался на случайных книгах.
Полный список (3 тетради)
- Вектор пропуска мысли
- Остаточная сеть с использованием Atrous CNN
- Остаточная сеть с использованием Atrous CNN + Bahdanau. Внимание!
векторизатор
Обучался на наборе данных настроений на английском языке.
Полный список (11 тетрадей)
- Word Vector с использованием образца softmax CBOW
- Вектор слов с использованием контрастной оценки шума CBOW
- Word Vector с использованием образца скипграммы softmax
- Word Vector с использованием контрастной оценки шума скипграммы
- Контролируемый встроенный
- Тройная потеря + LSTM
- Автокодировщик LSTM
- Пакетный все триплетные потери LSTM
- Быстрый текст
- ЭЛМО (biLM)
- Тройная потеря + BERT
Визуализация
Полный список (4 тетради)
- Внимание тепловая карта на Богданова
- Тепловая карта внимания на Luong
- Внимание, БЕРТ, https://github.com/hsm207/bert_attn_viz
- Внимание XLNET
Вокодер от старых к молодым
Прошел обучение на наборе речевых данных Торонто.
Полный список (1 тетрадь)
- Расширенный CNN
Внимание
Полный список (8 тетрадей)
- Богданов
- Луонг
- Иерархический
- Добавка
- Мягкий
- Внимание сверх внимания
- Богданау API
- Луонг API
Неглубокое обучение
- Марков чат-бот
- Обобщение декомпозиции (3 тетради)