Abstractive summarization generează propoziții noi care pastreaza sensul textului original. Utilizează modele NLP avansate, cum ar fi transformers, pentru a înțelege contextul și a crea rezumate similare cu cele realizate de oameni.
- Model: Folosim modelul
T5-basedin biblioteca Hugging Face. - Pipeline: Pipeline-ul de sumarizare este inițializat cu biblioteca
transformers. - Proces:
- Textul de intrare este denumit
summarize. - Modelul tokenizează textul de intrare și generează un rezumat folosind beam search.
- Rezultatul este parsat și afișat.
- Textul de intrare este denumit
In abstractive-transformers.ipynb:
summarizer = pipeline("summarization", model="t5-base", tokenizer="t5-base", framework="pt")
summary = summarizer(text, max_length=130, min_length=30, do_sample=False)
print(summary[0]['summary_text'].capitalize())Output:
"Apple aims to make most of its iPhones sold in the United States at factories in India by 2026. The tech giant is holding urgent talks with contract manufacturers Foxconn and Tata."
- Generează rezumate care sunt mai naturale și similare cu cele realizate de oameni.
- Poate parafraza și restructura propozițiile pentru o mai bună lizibilitate.
- Necesită resurse computaționale semnificative.
- Poate introduce inexactități dacă modelul nu înțelege corect contextul.
Extractive summarization selectează cele mai importante propoziții sau fraze direct din textul original. Se bazează pe caracteristici statistice și lingvistice pentru a clasifica și extrage propozițiile cheie.
- Biblioteci: Folosim
spacypentru tokenizare șicollections.Counterpentru analiza frecvenței cuvintelor. - Proces:
- Tokenizarea textului în cuvinte și filtrarea stopword-urilor și a semnelor de punctuație.
- Calcularea frecvenței cuvintelor și normalizarea acestora.
- Calcularea scorurilor propozițiilor pe baza sumei frecvențelor cuvintelor.
- Selectarea celor mai bune
npropoziții cu cele mai mari scoruri.
In extractive-tokenization.ipynb:
from heapq import nlargest
num_sentences = 3
n = nlargest(num_sentences, sent_score, key=sent_score.get)
summary = " ".join(n)
print(summary)Output:
"BENGALURU, April 25 (Reuters) - Apple aims to make most of its iPhones sold in the United States at factories in India by the end of 2026. Prime Minister Narendra Modi has in recent years promoted India as a smartphone manufacturing hub. The U.S. tech giant is holding urgent talks with contract manufacturers Foxconn and Tata."
- Simplu și eficient din punct de vedere computațional.
- Păstrează formularea originală, asigurând acuratețea informației.
- Poate produce rezumate mai puțin coerente sau redundante.
- Limitat la extragerea propozițiilor existente fără parafrazare.
- Poate omite context important.