Мы создадим классификатор с использованием Keras, чтобы различать положительные и отрицательные настроения для фильмов. Затем мы загрузим модель в браузер для предсказания пользователя.
Код
Я создал репозиторий на GitHub с кодом, необходимым для следования руководству. Если вы заметили какую-либо ошибку или столкнулись с какими-либо проблемами, поднимите вопрос здесь.
Набор данных
Мы будем использовать набор данных для классификации настроений. Набор данных содержит 7086
утверждения о фильмах с метками. метка 1
означает позитивное настроение, а 0
означает негативное мнение.
Предварительная обработка данных
Для анализа текста нам нужно сначала предварительно обработать данные. Прежде всего, после загрузки данных нам нужно разбить предложения на слова, а затем заполнить обучающий набор.
Затем после этого нам нужно будет создать словарь word_index
, который будет отображать слова в целые числа для встраивания. Обратите внимание, что длина словаря может быть огромной, поэтому мы считаем количество каждого слова в обучающем наборе и включаем только слова, которые повторяются больше некоторого порога.
Метод процесса будет создавать слова из утверждений, удаляя знаки препинания.
После этого нам нужно будет сопоставить каждое сентиментальное утверждение с последовательностью целых чисел, но сначала получить утверждение с наибольшим количеством слов.
Теперь мы можем создать последовательность целых чисел, используя наш словарь word_index
. Обратите внимание, что мы создаем фиксированное количество последовательностей длиной max_tokens
, которые имеют наибольшее количество токенов. Мы используем предварительное заполнение, так как это дает лучшие результаты
Теперь мы готовы создать модель кераса. Первый слой - это встраиваемый слой. Далее следуем 3 слоями ГРУ. Наконец, мы создаем плотный слой с сигмовидной активацией. Компилируем модель с помощью оптимизатора Adam
Затем мы обучаем модель для 5
эпох с 5%
разбиением для проверки с размером пакета 32
.
Мы достигаем точности 97%
на наборе для проверки.
Мы можем увидеть сводку модели, используя
Сохраним модель в формате .h5
Теперь, когда мы закончили с моделью, мы импортируем ее для запуска в браузере. Сначала нам нужно преобразовать его в формат json. Перед этим шагом вам нужно будет установить инструменты tensorflowjs, используя
Преобразуйте модель keras в модель, понятную tensorflowjs
Это создаст один файл json, который содержит мета-переменные и некоторые другие переменные с именами типа group1-shard1of1
, который содержит вычисленные значения весов.
Перенос модели в браузер
Для простой обработки загрузим словарь, сгенерированный кодом keras.
Следовательно, word_index
теперь будет содержать то же слово и индексную пару, что и в предыдущем разделе. После этого нам нужно создать несколько вспомогательных методов для обработки текста, tokenize
он затем сопоставит его с целыми числами с помощью словаря.
Теперь мы можем загрузить это в браузер с помощью tensorflow.js
Наконец, мы объединяем все шаги одним методом
Используя образец текста, мы получаем значение прогноза 0.98
, которое очень близко к 1
.