Aller au contenu
🛠️ToolsShed

Résumeur de Texte

Résumez de longs textes en extrayant les phrases les plus importantes.

110

À propos de cet outil

Un résumé de texte vous aide à extraire rapidement les informations les plus importantes de longs documents, articles ou rapports en identifiant et en préservant les phrases clés. Cet outil est essentiel pour quiconque traite de grandes quantités de texte—que vous soyez un étudiant révisant des articles de recherche, un professionnel gérant plusieurs documents, ou quelqu'un essayant de rester informé sans passer des heures à lire.

Il vous suffit de coller ou de saisir votre texte dans le champ d'entrée, d'ajuster la longueur du résumé selon vos besoins, et l'outil identifiera intelligemment les phrases les plus significatives et les présentera dans un format condensé. Il fonctionne instantanément dans votre navigateur sans nécessiter aucun compte ou envoi de fichiers sur des serveurs externes, ce qui en fait une solution rapide et privée pour la réduction de texte quotidienne.

Le résumé fonctionne mieux sur du contenu formel et bien structuré comme les articles d'actualité, les travaux universitaires et les documents commerciaux où les informations importantes sont clairement énoncées. Pour l'écriture créative ou le contenu hautement technique comportant un vocabulaire spécialisé, les résultats peuvent varier, il est donc toujours judicieux de comparer le résumé avec l'original pour s'assurer qu'aucun détail critique n'a été omis.

Questions Fréquentes

Implémentation du Code

# Extractive text summarization (TF-based)
import re
from collections import Counter

STOP_WORDS = {
    "the", "a", "an", "and", "or", "but", "in", "on", "at", "to", "for",
    "of", "with", "by", "from", "is", "was", "are", "were", "be", "been",
    "has", "have", "had", "do", "does", "did", "will", "would", "could",
    "should", "that", "this", "it", "its", "he", "she", "they", "we", "you",
    "i", "not", "no", "as", "if", "so", "than", "then", "more", "most",
}

def tokenize_sentences(text: str) -> list[str]:
    sentences = re.split(r'(?<=[.!?])\s+', text.strip())
    return [s.strip() for s in sentences if len(s.strip()) > 10]

def word_frequency(sentences: list[str]) -> dict[str, int]:
    words = re.findall(r"[a-z']+", " ".join(sentences).lower())
    return Counter(w for w in words if w not in STOP_WORDS and len(w) > 2)

def score_sentences(sentences: list[str], freq: dict[str, int]) -> list[float]:
    scores = []
    n = len(sentences)
    for i, sentence in enumerate(sentences):
        words = re.findall(r"[a-z']+", sentence.lower())
        score = sum(freq.get(w, 0) for w in words)
        if words:
            score /= len(words)  # normalize by length
        # Position weight
        rel_pos = i / max(n - 1, 1)
        if rel_pos <= 0.2:
            score *= 1.4
        elif rel_pos >= 0.8:
            score *= 1.2
        scores.append(score)
    return scores

def summarize(text: str, num_sentences: int = 3) -> str:
    sentences = tokenize_sentences(text)
    if len(sentences) <= num_sentences:
        return text

    freq = word_frequency(sentences)
    scores = score_sentences(sentences, freq)

    # Get top-N sentence indices, sort by original position
    ranked = sorted(range(len(scores)), key=lambda i: -scores[i])[:num_sentences]
    selected = sorted(ranked)

    return " ".join(sentences[i] for i in selected)

# Example
text = """..."""  # Your long text here
print(summarize(text, num_sentences=3))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.