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

Для этого урока мы используем реализацию Gensim. Вы можете получить пакет Gensim, выполнив следующую команду: pip3 install gensim

Требования

Для обучения модели встраивания нам понадобится большой объем кода и терпение.

Получение данных

Мы можем получить большой объем кода с GitHub, клонировав некоторые репозитории. В качестве примера мы клонируем репозиторий scikit-learn, выполнив следующую команду: git clone https://github.com/scikit-learn/scikit-learn.git

Подготовка данных

Сначала нам нужно загрузить код из всех файлов проекта. Достаточно использовать следующий фрагмент кода.

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

Наконец, мы используем токенизатор для токенизации кода после его загрузки в память.

Обучение модели

Для обучения модели fastText мы используем следующие гиперпараметры. При необходимости вы можете изменить или настроить их.

После этого мы создаем модель и обучаем ее.

Запрос модели

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

  • Наиболее похожие токены
  • Сходство между двумя токенами или двумя строками
  • Вектор встраивания токена

Обновлять:

Обученная модель доступна по адресу: https://drive.google.com/file/d/1vVRsnCWdpC2NN5q4xLzDa0ZInHLbwY31.