Spaces:
Sleeping
Sleeping
| from transformers import pipeline | |
| def summarize_text(text: str, model_name: str = "facebook/bart-large-cnn", max_length: int = 300, min_length: int = 100) -> str: | |
| try: | |
| summarizer = pipeline("summarization", model=model_name) | |
| # If text is too short, return as is | |
| if len(text.split()) < 50: | |
| return text | |
| # Calculate appropriate max_length based on input | |
| input_length = len(text.split()) | |
| adjusted_max_length = min(max_length, input_length // 2) | |
| adjusted_min_length = min(min_length, adjusted_max_length // 3) | |
| summary = summarizer( | |
| text, | |
| max_length=adjusted_max_length, | |
| min_length=adjusted_min_length, | |
| do_sample=False, | |
| truncation=True | |
| ) | |
| return summary[0]['summary_text'] | |
| except Exception as e: | |
| print(f"Summarization error: {e}") | |
| # Fallback: return the first part of the text | |
| sentences = text.split('.') | |
| return '. '.join(sentences[:3]) + '.' |