ToolActToolAct

Outil de déduplication de texte

Supprimez rapidement le contenu en double du texte, prend en charge la déduplication par ligne, mot et phrase

Texte d'entrée
Résultat dédupliqué

Mode de déduplication

Options

Statistiques

Éléments originaux0
Éléments uniques0
Éléments dupliqués0

Qu'est-ce que la déduplication de texte ?

Text Deduplicate supprime les lignes, mots ou entrées répétés d’un texte afin de rendre les listes plus propres et plus faciles à relire. Il sert pour extraits CSV importés, listes de mots-clés, collections d’e-mails, fragments de logs, codes produit, variantes de prompts et notes où les doublons viennent de copies, fusions ou exports défectueux. L’essentiel réside dans la règle de comparaison: casse, espaces de début ou fin, lignes vides, ponctuation, normalisation et ordre d’origine peuvent décider si deux entrées sont identiques. L’outil accélère le nettoyage, mais ne remplace pas la revue métier lorsque de petites différences ont du sens.

Mode d'emploi

Opérations de base

  1. Saisissez ou collez le texte à dédupliquer dans la zone de texte de gauche
  2. Choisissez le mode de déduplication approprié (par ligne, mot, phrase, etc.)
  3. Ajustez les options si nécessaire (sensibilité à la casse, conserver l'ordre, etc.)
  4. Consultez les résultats de déduplication et les statistiques en temps réel à droite
  5. Cliquez sur le bouton Copier pour enregistrer le résultat dans le presse-papiers

Description des modes

  • Par ligne : traite chaque ligne comme une unité indépendante, supprime les lignes identiques
  • Par mot : découpe le texte par espaces, supprime les mots en double
  • Par phrase : découpe par points, points d'interrogation et points d'exclamation, supprime les phrases en double
  • Par paragraphe : sépare selon les lignes vides et supprime les paragraphes en double
  • Par caractère : supprime les caractères qui apparaissent plusieurs fois dans le texte

Cas d’utilisation

Supprimer les lignes, mots, phrases, paragraphes ou caractères répétésChoisissez l’unité à dédupliquer et l’outil conserve la première occurrence tout en préservant l’ordre des éléments uniques. Chaque mode utilise une stratégie de découpage et de jonction appropriée de sorte que les traitements par ligne, paragraphe, mot et caractère se comportent différemment. La recherche par table de hachage s’exécute en temps O(n) par passe, de sorte que même de longues listes sont dédupliquées en un seul cycle du navigateur.
Auditer les doublons avant de copier le texte nettoyéLes statistiques affichent le nombre d’origine, le nombre d’éléments uniques et le nombre de doublons supprimés. L’affichage optionnel des doublons liste les éléments répétés trouvés, ce qui est utile avant de nettoyer des listes de diffusion, des listes de mots-clés, des logs ou des exports d’enquêtes. Examiner d’abord la liste des doublons permet de confirmer que les bonnes entrées ont été fusionnées avant de partager le résultat nettoyé.
Contrôler la correspondance sensible à la casseActivez la sensibilité à la casse lorsque Apple et apple doivent rester séparés, ou désactivez-la lorsque le texte répété doit être détecté indépendamment de la capitalisation. Cela rend le même outil aussi bien pour le nettoyage de prose que pour les listes techniques exactes. Le mode insensible à la casse normalise l’entrée en minuscules avant le hachage, de sorte qu’un long log ne conserve pas ‘ERROR’ et ‘error’ comme entrées distinctes.
Nettoyer des listes d’e-mails ou de tags en préservant l’ordreCollez un export d’e-mails et passez en mode ligne avec une correspondance insensible à la casse pour fusionner [email protected] et [email protected]. L’ordre de première occurrence est conservé de sorte que la liste nettoyée respecte toujours le regroupement d’origine pour l’import CSV. La stabilité du tri est importante ici : la sortie doit préserver la séquence d’entrée et non être réordonnée alphabétiquement.
Normaliser les espaces blancs avant de dédupliquer des ensembles de mots-clésSupprimez les espaces de début et de fin et sautez les lignes vides pour que les tabulations isolées issues d’un copier-coller ne créent pas de faux doublons. Cela est essentiel lorsque la liste source provient d’un export de tableur où les lignes vides et les entrées indentées gonflent le comptage des doublons. Une seconde passe sur la liste nettoyée avec des règles plus strictes ne trouve généralement aucune collision supplémentaire, ce qui est un bon signe que la normalisation a fonctionné.

Principe technique

La déduplication est une analyse en un seul passage soutenue par un Set JavaScript. Le Set ECMAScript utilise l'algorithme d'égalité SameValueZero (la même comparaison que Array.prototype.includes, où NaN est égal à NaN mais +0 est égal à -0) et la spécification exige qu'il offre une recherche moyenne sous-linéaire — V8 l'implémente comme une table de hachage à adressage ouvert avec insertion amortie en O(1), si bien que l'ensemble du passage est en O(n) par rapport au nombre d'éléments. L'alternative naïve — pousser dans un tableau résultat et appeler indexOf sur chaque élément — est en O(n²) et devient pénible à partir d'environ 10 000 entrées. Le découpage dépend du mode : le mode ligne découpe sur /\r?\n/ pour absorber à la fois les fins de ligne CRLF (Windows) et LF (Unix), le mode mot découpe sur /\s+/, le mode phrase sur /(?<=[.!?])\s+/, et le mode paragraphe sur /\n{2,}/. Chaque unité passe par des normaliseurs optionnels avant de devenir une clé de Set : trim() pour supprimer les espaces de début et de fin, toLowerCase() pour une correspondance insensible à la casse, et String.prototype.normalize('NFC') pour que les chaînes visuellement identiques écrites en forme composée (é, U+00E9) vs décomposée (e + U+0301) se réduisent à une seule entrée. L'ordre est préservé car le tableau résultat est construit dans l'ordre d'itération — le Set n'est consulté que comme filtre « ai-je déjà vu ceci ? ». Le même choix de structure sous-tend SQL DISTINCT et Python set() ; la seule véritable alternative pour des dizaines de millions d'éléments est un filtre de Bloom probabiliste, qui échange un faible taux de faux positifs (environ 1 % à 10 bits/élément) contre une mémoire constante et qui est surdimensionné pour un outil de texte côté navigateur.

  • La recherche par Set utilise l'algorithme SameValueZero (ECMA-262 §7.2.10) — NaN correspond à NaN, +0 correspond à -0, sinon égalité stricte
  • V8 implémente le Set comme une table de hachage ; insert et has sont en O(1) amorti, rendant l'ensemble de la déduplication en O(n) contre O(n²) pour indexOf
  • Le regex du mode ligne /\r?\n/ gère CRLF, LF et CR de fin en un seul découpage ; ignorer cela laisse des suffixes '\r' invisibles qui faussent la correspondance exacte
  • La normalisation Unicode via String.prototype.normalize('NFC') regroupe les formes composées/décomposées (par ex. 'é' U+00E9 vs 'e' + U+0301) en une seule clé
  • Le mode insensible à la casse ne passe la clé qu'en minuscules — la valeur en casse d'origine est préservée en sortie de sorte que le premier 'ERROR' est conservé tel quel tandis que les lignes 'error' suivantes sont écartées
  • La préservation de l'ordre est gratuite : le tableau résultat est construit dans l'ordre d'entrée et le Set n'est consulté que comme filtre, il se comporte donc comme SQL DISTINCT avec un tri stable
  • Pour plus de 10 millions d'éléments où la mémoire devient le goulot d'étranglement, un filtre de Bloom (environ 10 bits/élément pour 1 % de faux positifs) remplace le Set — non nécessaire dans le navigateur, où un Set d'1 million de chaînes tient confortablement sous 100 Mo

Exemples

Déduplication de lignes, première occurrence conservée

Entrée :
apple
banana
apple
orange
banana

Sortie :
apple
banana
orange

Déduplication de lignes avec espaces supprimés

Entrée :
hello
  hello
hello 
world

Sortie (après trim) :
hello
world

Déduplication insensible à la casse

Entrée :
ERROR
error
Warning
WARNING
warning

Sortie (insensible à la casse) :
ERROR
Warning

Extraction d'une liste d'e-mails uniques

Entrée :
alice@example.com
bob@example.com
ALICE@example.com
carol@example.com
bob@example.com

Sortie (insensible à la casse, mode ligne) :
alice@example.com
bob@example.com
carol@example.com

Déduplication de mots

Entrée : hello world hello again world

Sortie : hello world again

Déduplication de phrases

Entrée : This is a test. This is a test. Another sentence.

Sortie : This is a test. Another sentence.

FAQ

Qu'est-ce qui est considéré comme un doublon ?

Chaque unité (ligne, mot, phrase, paragraphe ou caractère) est comparée aux autres. Les unités identiques sont des doublons. Activez ou désactivez la sensibilité à la casse. La page sort la liste déduppliquée et indique combien de doublons ont été retirés.

L'ordre est-il préservé ?

Oui : la première occurrence de chaque élément unique est conservée à sa position d'origine, et les doublons suivants sont supprimés. La sortie préserve l'ordre original.

Les lignes vides sont-elles traitées comme des doublons ?

Les lignes vides sont comparées comme n'importe quelle autre ligne. La première ligne vide est conservée ; les lignes vides identiques apparaissant plus loin sont supprimées comme les autres doublons.

Peut-il dédupliquer par sous-chaîne ou par colonne ?

Non. La déduplication agit sur le contenu complet de chaque unité (ligne, mot, phrase, paragraphe ou caractère). Il n'y a pas de mode basé sur une colonne ou une sous-chaîne.

Va-t-il trier la sortie ?

Non. La sortie conserve toujours l'ordre d'origine. Il n'y a pas d'option de tri.

Quelle taille de fichier peut-il gérer ?

La limite est la mémoire du navigateur. Des centaines de milliers de lignes fonctionnent sur les navigateurs de bureau. Les fichiers de plusieurs millions de lignes manquent de mémoire ; pour ceux-là, utilisez un outil CLI comme `sort -u` ou `awk '!seen[$0]++'`.

Mon texte est-il envoyé ?

Non. La déduplication utilise un Set en mémoire dans votre navigateur. Les lignes collées ne sont pas transmises.