nlp-intelligence-analyzer / src /summarizer.py
morinousagi's picture
Upload 5 files
6aabd96 verified
Raw
History Blame Contribute Delete
1.02 kB
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
import torch
class BriefSummarizer:
def __init__(self):
self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
self.tokenizer = AutoTokenizer.from_pretrained(
"facebook/bart-large-cnn"
)
self.model = AutoModelForSeq2SeqLM.from_pretrained(
"facebook/bart-large-cnn"
).to(self.device)
def summarize(self, text, max_length=130, min_length=40):
inputs = self.tokenizer(
text,
return_tensors="pt",
truncation=True,
max_length=1024
).to(self.device)
summary_ids = self.model.generate(
inputs["input_ids"],
num_beams=4,
max_length=max_length,
min_length=min_length,
early_stopping=True
)
summary = self.tokenizer.decode(
summary_ids[0],
skip_special_tokens=True
)
return summary