Ответ
Word2Vec — это алгоритм для обучения плотных векторных представлений слов (word embeddings), который кодирует семантические и синтаксические отношения между словами в векторном пространстве. Слова с похожим значением оказываются близко друг к другу.
Основные применения:
- Преобразование текста в числовой формат для любых моделей ML, которые работают с числами, а не текстом.
- Поиск семантической близости: нахождение синонимов или тематически связанных слов (
king-man+woman≈queen). - Функционал для downstream-задач: полученные эмбеддинги используются как features для классификации текстов, кластеризации, в рекомендательных системах (например, для описаний товаров).
Практический пример с gensim:
from gensim.models import Word2Vec
import nltk
# Предобработка: токенизация и очистка корпуса текстов
sentences = [
['машинное', 'обучение', 'изучает', 'закономерности', 'в', 'данных'],
['глубокое', 'обучение', 'это', 'подраздел', 'машинного', 'обучения'],
['нейронные', 'сети', 'основа', 'глубокого', 'обучения']
]
# Обучение модели
model = Word2Vec(
sentences=sentences,
vector_size=100, # Размерность вектора
window=5, # Размер контекстного окна
min_count=1, # Игнорировать слова с частотой ниже
workers=4,
sg=1 # 1 для skip-gram (лучше для редких слов), 0 для CBOW
)
# Использование
vector_learning = model.wv['обучение'] # Получить вектор слова
similar = model.wv.most_similar('обучение', topn=3)
# Результат: [('машинного', 0.98), ('глубокого', 0.95), ('данных', 0.87)]
# Сохранение и загрузка
model.save('word2vec.model')
Важно: Word2Vec — это один из первых и классических методов. В современных проектах часто используются более продвинутые контекстуальные эмбеддинги, такие как FastText (учитывает морфологию) или напрямую fine-tune предобученные трансформеры (BERT, GPT), которые учитывают контекст слова в предложении.