Методы, основанные на совстречамости слов
Матрица совстречаемости
Используя дистрибутивную гипотезу, можно кодировать каждое слово эмбеддингом по частотам других слов, с которыми оно часто встречается вместе. Для этого нужно сопоставить каждому слову отвечающую ему строку в матрице совстречаемости слов (co-occurence matrix) , где - число уникальных слов словаря.
Алгоритм расчёта элементов матрицы совстречаемости приведён ниже:
Из последовательности слов исходного текста извлекаем все уникальные слова (формируем словарь).
Инициализируем матрицу совстречаемости нулями.
Для каждой позиции в тексте :
вычисляем контекст текущего слова :
для каждого слова :
- увеличиваем счётчик совстречаемости:
Если контекст выходит за пределы текста, то расчёт производится только по реально присутствующим словам в тексте. Например, для первого слова (при ) левого контекста ещё нет, и учитываются только правый контекст.
Пример расчёта
Рассмотрим работу алгоритма на примере. Для текста "Кошка любит внимание. Кошка любит нежность. Кошка любит ласку." уникальными словами будут [кошка, любит, внимание, нежность, ласку], а матрица совстречаемости для контекста слова будет строиться скользящим окном вокруг каждого слова, учитывая 2 соседних слова справа и слева, как показано на рисунке:

Каждая строка соответствует одной итерации алгоритма, на которой текущее слово помечено красным, а его контекст из слов - зелёным.
В результате получим следующую матрицу совстречаемости:
| кошка | любит |
|---|