Перейти к содержимому

Лекция 6: Введение в ML и анализ тональности

Машинное обучение (Machine Learning, ML) — направление искусственного интеллекта, где системы обучаются на данных.

ТипОписаниеПримеры
Обучение с учителемЕсть размеченные данныеКлассификация, регрессия
Обучение без учителяДанные не размеченыКластеризация
Обучение с подкреплениемСистема получает вознаграждениеИгры, робототехника

Анализ тональности — определение эмоциональной окраски текста.

  • Positive (позитивная) — “Отличная новость!”
  • Negative (негативная) — “Ужасный сервис”
  • Neutral (нейтральная) — “Сегодня sunny weather”

Предобученные модели — модели, уже обучённые на больших корпусах текста.

Библиотека для работы с предобученными моделей.

from transformers import pipeline
# Создаём пайплайн для анализа тональности
sentiment_pipeline = pipeline(
"sentiment-analysis",
model="blanchefort/rubert-base-cased-sentiment"
)
# Анализируем текст
result = sentiment_pipeline("Отличный день!")
print(result)
# [{'label': 'POSITIVE', 'score': 0.9876}]

Популярные модели для русского:

  • blanchefort/rubert-base-cased-sentiment — RuBERT для тональности
  • cointegrated/rubert-tiny2-toxicity — маленькая модель
from transformers import pipeline
class SentimentAnalyzer:
def __init__(self):
self.pipeline = pipeline(
"sentiment-analysis",
model="blanchefort/rubert-base-cased-sentiment"
)
def analyze(self, text):
"""Анализ тональности текста."""
result = self.pipeline(text)[0]
# Преобразуем лейблы
label_map = {
"POSITIVE": "positive",
"NEGATIVE": "negative",
"NEUTRAL": "neutral"
}
return label_map.get(result["label"], "neutral")
def analyze_batch(self, texts):
"""Анализ списка текстов."""
return [self.analyze(t) for t in texts]
import pandas as pd
def sentiment_stats(df):
"""Статистика по тональности."""
stats = df['sentiment'].value_counts()
print("Распределение тональности:")
for sentiment, count in stats.items():
percent = (count / len(df)) * 100
print(f"{sentiment}: {count} ({percent:.1f}%)")

Модели можно обучать на своих данных, но это требует:

  • Размеченного датасета
  • Мощной видеокарты
  • Времени и знаний