Библиотека ml5.js предоставляет высокоуровневый
интерфейс для работы с моделями машинного обучения в JavaScript, упрощая
задачи анализа текста, изображений, звука и других данных. Одним из
часто используемых инструментов является модель для анализа
тональности текста (Sentiment), которая
оценивает эмоциональную окраску текста и возвращает числовой
результат, отражающий степень позитивности или
негативности.
Модель тональности в ml5.js основана на нейронных сетях, обученных на больших корпусах текстов с заранее размеченными эмоциями или оценками настроения. Она принимает на вход строку текста и возвращает:
Например:
const sentiment = ml5.sentiment('movieReviews', modelReady);
function modelReady() {
const prediction = sentiment.predict('I love this movie!');
console.log(prediction.score); // Число от 0 до 1
}
scoreЧисловой результат требует внимательного анализа, так как он не просто бинарная метка «положительно/отрицательно». Его можно разделить на условные диапазоны:
| Диапазон score | Интерпретация |
|---|---|
| 0.0 – 0.3 | Сильная негативная окраска |
| 0.3 – 0.5 | Слабая негативная окраска |
| 0.5 – 0.7 | Слабая позитивная окраска |
| 0.7 – 1.0 | Сильная позитивная окраска |
Такой подход позволяет построить градацию эмоциональной окраски текста, что особенно полезно для анализа отзывов, социальных сетей или диалоговых систем.
Модель использует токенизацию, разбиение текста на отдельные слова или подсловные единицы. Длина текста влияет на интерпретацию:
score, близкие к крайним
диапазонам.Важно учитывать, что score отражает среднюю тональность текста, а не каждого отдельного слова. Например, текст «Фильм хороший, но концовка разочаровала» может дать нейтральный или слегка позитивный результат, несмотря на наличие негативного элемента.
rawOutput для углубленного анализаrawOutput возвращает массив чисел, показывающих
вклад каждого токена в общий результат. Это
позволяет:
Пример работы с rawOutput:
const prediction = sentiment.predict('The plot was fantastic, but the acting was terrible.');
console.log(prediction.rawOutput);
// Массив чисел, соответствующих токенам текста
Анализ rawOutput позволяет выявить, что «fantastic» дает
высокий вклад к позитивной оценке, а «terrible» снижает общий score.
movieReviews работает на английском, для других языков
требуется дополнительная локализация или адаптация корпуса.Числовой результат тональности в ml5.js — это мощный инструмент для количественного анализа эмоциональной окраски текста. Правильная интерпретация score и rawOutput позволяет строить точные и наглядные модели анализа текста, адаптированные под конкретные задачи. Правильное использование диапазонов, токенизации и визуального анализа дает возможность создавать сложные системы анализа тональности, от фильтра отзывов до аналитики социальных медиа.