Гостевая статья Моны Шриваставы

В этой статье рассказывается о концепции встраивания слов и о том, как разработать и обучить модель встраивания слов для приложений НЛП на Python с помощью Gensim.

Что такое встраивание слов?

Встраивание слов - это тип представления слов, который позволяет словам с одинаковым значением иметь одинаковое представление.

Это улучшение по сравнению с моделью Bag-Of-Words. В модели «мешок слов» кодирование слов приводит к большим и разреженным векторам, которые описывают документ, а не значение слов.

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

Каждое слово отображается в один вектор.

Репрезентация - это обучение, основанное на использовании слов.

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

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

Алгоритм встраивания слов -

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

  • * Вещественные векторы - Векторы переменных типа Real.

Методы изучения встраивания слов из текстовых данных -

  1. Word2Vec (Google) - i) Непрерывный набор слов, ii) Непрерывный пропуск грамма.
  2. Glovec (Стэнфорд)

Иллюстрация четырехмерного встраивания -

Вложение - это плотный вектор значений с плавающей запятой.

Предложение - «Помидоры красные».

Каждое слово выше представлено как 4-мерный вектор значений с плавающей запятой.

Мы можем рассматривать встраивание как «справочную таблицу».

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

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

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

Разработка встраивания Word2Vec - ›

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

Gensim - это библиотека Python для НЛП с упором на тематическое моделирование. Мы можем использовать его для реализации встраивания слов Word2Vec для изучения новых векторных слов из текста.

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

Алгоритм просматривает окно слов и для каждого целевого слова предоставляет контекст и, в свою очередь, значение слова.

Чтобы изучить встраивание слов из текста, мы должны загрузить и организовать текст в предложения и предоставить их конструктору нового экземпляра Word2Vec ().

Каждое предложение должно быть токенизировано.

Параметры этого конструктора -

  • size (по умолчанию 100) - количество измерений вложения, например длина плотного вектора для представления каждого токена, то есть слова.
  • window (по умолчанию 5) - максимальное расстояние между целевым словом и словом вокруг целевого слова.
  • min-count (по умолчанию 5) - минимальное количество слов, которое следует учитывать при обучении модели, и слова с встречаемостью меньше этого будут игнорироваться.
  • worker (по умолчанию 3) - количество потоков, используемых во время обучения.
  • sg (по умолчанию 0 или CBOW) - алгоритм обучения либо CBOW (0), либо Skip Gram (1).
  • мы можем увеличить количество рабочих в зависимости от потребности.

Мы будем работать над списком пре-токенизированных предложений.

Мы будем держать min-count для слов равным 1 при обучении модели, чтобы никакие слова не игнорировались.

Пример -

  1. Обучите модель
  2. Распечатать резюме обученной модели
  3. Печатный словарь.
  4. Выведите один вектор для слова «помидор».
  5. Сохраните модель для дальнейшего использования

Вывод -

Резюме -

Мы узнали, как разработать и обучить нашу собственную модель встраивания слов word2vec в текстовые данные.

Ваше здоровье!