Реалізація суммаризації тексту (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 |







