Для работы с библиотекой ml5.js необходимо подключить её к проекту. Наиболее распространённый способ — через CDN. В HTML-файле подключение выглядит следующим образом:
<script src="https://cdn.jsdelivr.net/npm/ml5@latest/dist/ml5.min.js"></script>
После подключения ml5.js становятся доступными все её модули и функции, включая работу с моделью Sentiment для анализа тональности текста.
Модель Sentiment предназначена для определения эмоциональной окраски текста: положительной, отрицательной или нейтральной. В ml5.js она представлена как асинхронный объект, который необходимо загрузить перед использованием.
let sentiment;
function setup() {
sentiment = ml5.sentiment('movieReviews', modelLoaded);
}
function modelLoaded() {
console.log('Модель Sentiment успешно загружена');
}
Ключевые моменты:
'movieReviews' — предобученная модель на наборе обзоров
фильмов. Она оценивает текст на основе эмоциональной окраски слов.modelLoaded вызывается после полной загрузки
модели. Без этой проверки попытка анализа текста приведёт к ошибке.После загрузки модель предоставляет методы для анализа текста.
Основной метод — predict(). Он возвращает объект с оценкой
тональности текста в виде числового значения от 0 до 1:
Пример использования:
const text = "Этот фильм потрясающий!";
const prediction = sentiment.predict(text);
console.log(prediction.score); // Например, 0.92
Важно: predict() работает синхронно в
новых версиях ml5.js, но при использовании старых версий может быть
асинхронным. Проверка документации конкретной версии обязательна.
Хотя модель умеет работать с сырым текстом, рекомендуется предварительно обрабатывать ввод:
Пример обработки:
function preprocess(text) {
return text
.toLowerCase()
.replace(/<[^>]*>/g, '')
.replace(/[^\w\s]/gi, '');
}
const cleanText = preprocess("Отличный фильм! <br> Смотрел на выходных.");
const score = sentiment.predict(cleanText).score;
console.log(score);
Модель Sentiment поддерживает работу с массивами слов и встроенную токенизацию. Можно получать не только общий балл, но и влияние отдельных слов на итоговую оценку.
const result = sentiment.predict("Фильм был скучным, но актёры сыграли хорошо.");
console.log(result);
console.log(result.words); // Разбор влияния каждого слова
Каждое слово получает собственную оценку, что позволяет выявлять ключевые позитивные и негативные фрагменты текста.
Использование с формой ввода:
const input = document.getElementById('reviewInput');
const output = document.getElementById('sentimentScore');
input.addEventListener('input', () => {
const text = preprocess(input.value);
const score = sentiment.predict(text).score;
output.textContent = `Оценка тональности: ${score.toFixed(2)}`;
});
Важные аспекты:
predict().Модель Sentiment позволяет:
'movieReviews', 'twitter'), что влияет на
стиль оценивания текста.Модель Sentiment в ml5.js сочетает простоту использования с высокой точностью предсказаний для большинства текстов на английском языке, позволяя интегрировать анализ тональности в веб-приложения без сложной настройки машинного обучения.