Word2Vec — это алгоритм для преобразования слов в векторные представления, которые сохраняют семантические и синтаксические свойства слов. Главная идея заключается в том, что слова, встречающиеся в схожих контекстах, имеют близкие векторы. Такие векторы могут быть использованы для задач машинного обучения, анализа текста и генерации контента.
Векторное представление слова — это многоразмерный числовой
массив, где каждое число отражает определённый аспект значения
слова. Например, векторы слов «король» и «королева» будут близки, а
«король» и «машина» — далеки. Это свойство позволяет выполнять операции
вроде арифметики слов:
вектор("король") - вектор("мужчина") + вектор("женщина") ≈ вектор("королева").
Word2Vec использует два основных подхода:
CBOW (Continuous Bag of Words)
Skip-gram
Обучение Word2Vec основано на нейронной сети с одним скрытым слоем. Основные шаги:
Библиотека ml5.js предоставляет высокоуровневый доступ к моделям машинного обучения через JavaScript. Для работы с Word2Vec можно использовать предобученные модели, а также обучать свои на небольших корпусах текста.
<script src="https://cdnjs.cloudflare.com/ajax/libs/ml5/0.12.2/ml5.min.js"></script>
let word2vec;
ml5.word2vec('data/wordvecs.json', modelReady);
function modelReady() {
console.log('Модель Word2Vec загружена');
}
word2vec.nearest('король', 5, function(err, results) {
if (err) {
console.error(err);
return;
}
console.log('Похожие слова:', results);
});
word2vec.getVector('король', function(err, kingVector) {
word2vec.getVector('мужчина', function(err, manVector) {
word2vec.getVector('женщина', function(err, womanVector) {
let resultVector = kingVector
.sub(manVector)
.add(womanVector);
word2vec.nearestFromVector(resultVector, 1, function(err, results) {
console.log('Результат арифметики слов:', results);
});
});
});
});
Word2Vec создаёт фундамент для работы с текстами на уровне семантики, позволяя алгоритмам машинного обучения «понимать» слова как математические объекты, что открывает широкие возможности для анализа языка и построения интеллектуальных приложений.