Реализация суммаризации текста (Extractive/Abstractive Summarization)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Реализация суммаризации текста (Extractive/Abstractive Summarization)
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Реализация суммаризации текста (Extractive/Abstractive Summarization)

Суммаризация бывает двух принципиально разных типов: экстрактивная (выбор предложений из оригинала) и абстрактивная (генерация нового текста). Выбор зависит от требований к качеству, допустимым галлюцинациям и вычислительным ресурсам.

Экстрактивная суммаризация

Экстракция выбирает наиболее важные предложения из исходного текста без изменения формулировок. Преимущество: нет галлюцинаций — всё взято из оригинала. Недостаток: текст может быть несвязным, теряется контекст между выбранными предложениями.

Методы:

  • TextRank: граф предложений, PageRank-ранжирование. sumy (Python), pytextrank (spaCy)
  • Sentence embeddings + clustering: кластеризация предложений по семантике, выбор центроидов
  • BERTSum: BERT для scoring предложений по важности
from sumy.parsers.plaintext import PlaintextParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.text_rank import TextRankSummarizer

parser = PlaintextParser.from_string(text, Tokenizer("russian"))
summarizer = TextRankSummarizer()
summary = summarizer(parser.document, sentences_count=5)

Абстрактивная суммаризация

Генерирует новый текст, который может не содержать буквальных фрагментов оригинала. Более читаемый результат, но риск галлюцинаций.

Модели для русского:

  • IlyaGusev/rut5-base-absum — T5 fine-tuned на русских новостях
  • IlyaGusev/bart-base-ru-giga — BART для русского
  • GPT-4o / Claude через промпт — лучшее качество, но дороже и медленнее

Промпт для GPT:

Кратко изложи суть следующего текста в 3–5 предложениях.
Не добавляй информацию, которой нет в тексте.
Сохраняй ключевые факты: цифры, имена, даты.

Текст: {text}

Суммаризация длинных документов

Документы длиннее контекстного окна модели требуют стратегии:

  • Map-Reduce: суммаризация по чанкам → финальная суммаризация суммари
  • Refine: инкрементальное обновление суммари по мере чтения чанков
  • Hierarchical: суммаризация разделов → суммаризация суммарий разделов

Для юридических/технических документов Hierarchical предпочтительнее — сохраняет структуру.

Оценка качества

ROUGE (Recall-Oriented Understudy for Gisting Evaluation): стандартная метрика, измеряет n-gram overlap с эталонным суммари. ROUGE-1, ROUGE-2, ROUGE-L.

BERTScore: семантическое сходство через BERT-эмбеддинги — лучше коррелирует с человеческими оценками чем ROUGE.

Для production важнее пользовательские оценки (thumbs up/down) чем автоматические метрики — ROUGE плохо работает для абстрактивных суммари.

Выбор подхода

Сценарий Рекомендация
Новостные тексты, скорость важна TextRank или rut5-base-absum
Юридические/медицинские документы Экстрактивная (нет галлюцинаций)
Бизнес-отчёты, качество важно GPT-4o с Map-Reduce
Высокая нагрузка (>100 req/s) Дистиллированный T5 + ONNX