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

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Реалізація суммаризації тексту (Extractive/Abstractive Summarization)
Середній
~3-5 днів
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1286
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1122
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    859

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

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

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

Екстракція вибирає найважливіші речення з вихідного тексту без змін формулювань. Перевага: немає галюцинацій—усе взято з оригіналу. Недолік: текст може бути несв'язним, втрачається контекст між вибраними реченнями.

Методи:

  • TextRank: граф речень, PageRank-ранжування. sumy (Python), pytextrank (spaCy)
  • Sentence embeddings + clustering: кластеризація речень за семантикою, вибір центроїдів
  • BERTSum: BERT для скорингу речень за важливістю
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-embedding—краще корелює з людськими оцінками ніж ROUGE.

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

Вибір підходу

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