Библиотека ml5.js предоставляет высокоуровневый интерфейс для работы с машинным обучением в браузере на языке JavaScript. Среди возможностей библиотеки — работа с Natural Language Processing (NLP), включая классификацию текста, генерацию текста и создание интерактивных языковых моделей. Инструменты NLP в ml5.js построены на базе pre-trained моделей, что позволяет применять их без необходимости глубоких знаний в области нейросетей.
Классификация текста — процесс присвоения текстовым данным
определённых категорий. В ml5.js для этого используется объект
ml5.textClassifier, который поддерживает
несколько типов предобученных моделей, включая MobileNet,
Sentiment и Toxicity.
Создание классификатора:
const classifier = ml5.textClassifier('https://teachablemachine.withgoogle.com/models/model.json', modelLoaded);
function modelLoaded() {
console.log('Модель загружена');
}
После загрузки модели можно классифицировать текст:
classifier.classify('Я люблю изучать JavaScript', (err, results) => {
if (err) {
console.error(err);
} else {
console.log(results);
}
});
Ключевые моменты:
results возвращает массив объектов с вероятностями
принадлежности текста к каждой категории.Для анализа тональности используется предобученная модель Sentiment. Она определяет эмоциональную окраску текста: положительная, нейтральная или отрицательная.
Пример использования:
const sentiment = ml5.sentiment('movieReviews', sentimentLoaded);
function sentimentLoaded() {
console.log('Модель Sentiment загружена');
const prediction = sentiment.predict('Мне очень понравился этот фильм');
console.log(prediction); // значение от 0 (отрицательная) до 1 (положительная)
}
Особенности работы:
predict() возвращает численное значение, отражающее
положительность текста.Модель Toxicity предназначена для выявления
нежелательного или агрессивного контента. В ml5.js она реализована через
метод classify с порогом вероятности.
Пример:
const options = { threshold: 0.85 };
ml5.toxicity('Твой код ужасен!', options).then(model => {
model.classify('Ты не справишься').then(predictions => {
console.log(predictions);
});
});
Важные моменты:
threshold задаёт минимальную вероятность для
классификации текста как токсичного.ml5.js поддерживает генерацию текста с помощью предобученной модели RNN (Recurrent Neural Network). Этот инструмент позволяет создавать последовательности текста на основе заданного начала.
Пример генерации:
const rnn = ml5.charRNN('models/charRNN/goblet/', modelReady);
function modelReady() {
const data = {
seed: 'Once upon a time',
length: 100,
temperature: 0.5
};
rnn.generate(data, (err, result) => {
console.log(result.sample);
});
}
Ключевые параметры:
seed — начальная строка для генерации.length — количество символов для создания текста.temperature — параметр, определяющий разнообразие
текста: низкая температура — более предсказуемый текст, высокая — более
креативный.ml5.js поддерживает подключение моделей, обученных в Teachable Machine или TensorFlow.js. Для NLP это позволяет:
Пример подключения модели Teachable Machine:
const customClassifier = ml5.textClassifier('https://teachablemachine.withgoogle.com/models/your-model-url/model.json', () => {
customClassifier.classify('Пример текста', (err, results) => {
console.log(results);
});
});
Особенности:
ml5.js позволяет легко использовать NLP в браузере для создания интерактивных приложений:
Асинхронная природа библиотечных методов позволяет выполнять классификацию и генерацию текста без блокировки интерфейса, что критично для веб-приложений.
Этот набор инструментов NLP в ml5.js обеспечивает доступный и мощный способ работы с языком прямо в браузере, сочетая простоту API с возможностью гибкой кастомизации под конкретные задачи.