Библиотека для абстрактивного суммаризирования

Вопрос или проблема

Существует ли библиотека Python, поддерживающая абстрактивное суммирование? (Исключая облачные модели, такие как GPT или ChatGPT). Мы можем легко выполнить экстрактивное суммирование, используя код ниже:
!pip3 install transformers==4.11.3
!pip3 install summarizer
!pip3 install bert-extractive-summarizer
!pip3 install keybert
!pip3 install keybert[flair]
!pip3 install keybert[gensim]
!pip3 install keybert[spacy]
!pip3 install keybert[use]
!pip3 install spacy
!pip3 install “gensim==3.8.3″

from summarizer import Summarizer, TransformerSummarizer
GPT2_model = TransformerSummarizer(transformer_type=”GPT2″, transformer_model_key=”gpt2-medium”)
GPT2_summary = ”.join(GPT2_model(body, ratio=0.1))
print(GPT2_summary)

HuggingFace T5 может выполнять абстрактивное суммирование. Здесь есть очень хороший учебник: https://huggingface.co/docs/transformers/tasks/summarization, который включает дообучение, но это необязательно.

Ответ или решение

Да, существует несколько библиотек на Python, которые поддерживают абстрактивное суммирование текста (исключая облачные модели, такие как GPT или ChatGPT). Одной из таких популярных библиотек является Hugging Face Transformers, которая предоставляет доступ к множеству предобученных моделей, включая модели T5 и BART, способные выполнять абстрактивное суммирование.

Установка необходимых библиотек

Для начала вам потребуется установить библиотеку transformers, если она еще не установлена. Это можно сделать с помощью команды:

pip install transformers

Пример кода для абстрактивного суммирования

Вот пример использования модели T5 для абстрактивного суммирования:

from transformers import T5Tokenizer, T5ForConditionalGeneration

# Загрузите предобученную модель T5 и токенизатор
model = T5ForConditionalGeneration.from_pretrained("t5-small")
tokenizer = T5Tokenizer.from_pretrained("t5-small")

# Определите текст для суммирования
text = "Ваш текст для суммирования здесь."

# Токенизируйте текст и добавьте специальный токен
inputs = tokenizer.encode("summarize: " + text, return_tensors="pt", max_length=512, truncation=True)

# Генерируйте сводку
summary_ids = model.generate(inputs, max_length=150, min_length=40, length_penalty=2.0, num_beams=4, early_stopping=True)

# Декодируйте и выведите результат
summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
print(summary)

Альтернативные модели

Помимо T5, вы можете рассмотреть использование модели BART, которая также хорошо подходит для абстрактивного суммирования. Вы можете установить ее аналогичным образом:

from transformers import BartTokenizer, BartForConditionalGeneration

# Загрузите предобученную модель BART и токенизатор
model = BartForConditionalGeneration.from_pretrained("facebook/bart-large-cnn")
tokenizer = BartTokenizer.from_pretrained("facebook/bart-large-cnn")

# Определите текст для суммирования
text = "Ваш текст для суммирования здесь."

# Токенизируйте текст
inputs = tokenizer(text, return_tensors="pt", max_length=1024, truncation=True)

# Генерируйте сводку
summary_ids = model.generate(inputs["input_ids"], max_length=150, min_length=40, length_penalty=2.0, num_beams=4, early_stopping=True)

# Декодируйте и выведите результат
summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
print(summary)

Документация и ресурсы

Рекомендуется ознакомиться с официальной документацией Hugging Face для получения дополнительной информации и примеров. Вы можете найти множество учебных материалов и руководств по настройке моделей для конкретных задач.

Документация Hugging Face Transformers

В заключение, использование библиотек Hugging Face является эффективным способом выполнения абстрактивного суммирования в ваших проектах на Python, и они обеспечивают широкий выбор предобученных моделей, которые можно использовать и адаптировать под ваши нужды.

Оцените материал
Добавить комментарий

Капча загружается...