Самообучающиеся современные модели глубокого обучения в настоящее время являются нормой для многих специалистов по данным. Изучая базовые нейронные сети, ConvNets, LSTM, GAN и другие, можно почувствовать себя утонувшим в огромном море предметов глубокого обучения. Когда-то я это чувствовал, поэтому решил остановиться, перевести дух и сосредоточиться на тех, кто меня действительно интересовал. Одним из них является обработка естественного языка (NLP).

Некоторое время назад я изучил основы НЛП, но на этот раз я хотел копнуть немного глубже, изучая встраивание слов. В частности, я хотел выучить word2vec.

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

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

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

Следующее, что нам нужно сделать, это создать правильный ввод для Gensim Word2Vec. Правильный ввод — это массив массивов слов из каждого предложения. Например: «Я покакал. Лолк, не совсем. Но серьезно. трансформируется в [["i", "накакал"], ["loljk", "не", "правда"], ["но", "srsly"]].

Мы почти там. Все, что осталось, — передать данные в функцию Gensim Word2Vec и наблюдать, как происходит волшебство.

Будучи любознательным ботаником, я попытаюсь повторно реализовать это с помощью Tensorflow, чтобы получить больше «в этом». Лично я не могу признать себя компетентным в word2vec, если не знаю, как возиться с каждым движущимся элементом в нем. По большому счету, цель этого упражнения состояла в том, чтобы сначала получить общее представление о том, как работает word2vec. Обычно я перехожу к техническим деталям позже. Вот как я учусь.

Время для захватывающей части. Я удалил все стоп-слова (обычно используемые слова, такие как «the», «a» и другие) в словаре, чтобы уменьшить количество слов в результирующем графике.

Затем нужно было просто использовать t-стохастическое вложение соседей (t-SNE), чтобы уменьшить размерность до двух, а затем отобразить результаты. Что мне нравится в t-SNE, так это то, что он переносит структуру из многомерной плоскости на предпочитаемую низкоразмерную плоскость. Если две точки близки в 10D, то они останутся близкими и в 2D после того, как t-SNE выполнит свою работу. То же самое, если они далеко друг от друга.

После всего этого результат показан ниже. ВНИМАНИЕ, впереди большой сюжет.

Если вы отметите 1, вы увидите вместе слова «сделать», «американский», «отличный», «безопасный», «сильный» и «вместо этого». Все это играет роль в его знаменитом лозунге (с различными вариантами) «Сделаем Америку снова великой». Для 4 вместо этого вы видите слова «радикальный», «беззаконие», «иммиграция» и другие. Это играет роль в его строгой риторике о пограничном контроле, которая была широко известна во время предвыборной кампании.

Что удивительно в этом результате, так это то, что word2vec создал эти связи только с одной речью. Представьте себе возможности, если бы мы использовали ВСЕ речи Трампа во время предвыборной кампании. Были бы и более сильные связи, и более четкие группы слов, которые составляют риторику Трампа, личные убеждения и, возможно, то, кем он является как «Трамп-политик».

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