NyayLens-API / src /summarization /composer.py
Sai Pranav Reddy
Clean lightweight deployment
968e24d
raw
history blame contribute delete
672 Bytes
# src/summarization/composer.py
def compose(sentences, scores, top_k=5):
"""
Select top-k sentences by Legal-BERT score, then RESTORE their original
document order before returning. This gives PEGASUS a coherent narrative
instead of a randomly ordered bag of sentences.
"""
# Tag each sentence with its original index
indexed = list(enumerate(zip(sentences, scores)))
# Pick top-k by score
top = sorted(indexed, key=lambda x: x[1][1], reverse=True)[:top_k]
# Re-sort by original document position for narrative coherence
top_in_order = sorted(top, key=lambda x: x[0])
return [s for _, (s, _) in top_in_order]