Détecteur de Doublons

Autres langues : English Español Deutsch 日本語 한국어 Português Русский 中文

Le détecteur de doublons est une application open-source pour détecter du texte similaire dans un ou plusieurs fichiers. Il peut être utilisé pour trouver des doublons à 100% ainsi que du contenu similaire mais pas identique. L'outil est compatible avec plusieurs formats, notamment le texte brut, Markdown et XML.

L'outil de détection de doublons peut vous aider avec :

Exemple de contenu en double

Voici un exemple rapide pour vous donner une idée de ce que l'outil détecte :

Chunk 1:
Open the Google Play Store on your Android device, search for "AwesomeApp", then tap "Install" to download and install the app.
Chunk 2:
Open the App Store on your iOS device, search for "AwesomeApp", then tap "Get" to download and install the app.

Comment utiliser

  1. Téléchargez l'application. Alternativement, vous pouvez le compiler vous-même à partir de les sources.
  2. Assurez-vous que Java 16 ou une version ultérieure est installée sur votre ordinateur
  3. Dans le terminal, ouvrez le dossier contenant le fichier .jar que vous avez téléchargé
  4. Exécutez java -jar duplicate-finder.jar avec les paramètres suivants :

    Paramètre Signification Exemple
    -r / --root
    requis
    Chemin relatif ou absolu vers le dossier où vous souhaitez rechercher du contenu en double -r=./my-project/
    -o / --output Chemin relatif ou absolu vers le dossier où vous souhaitez enregistrer les résultats de l'analyse. Si aucun répertoire n'est spécifié, le détecteur de doublons utilisera le répertoire de travail actuel. -o=./my-project/duplicates/
    -f / --fileMask Liste d'extensions de fichiers séparées par des virgules à analyser. Par défaut, tous les fichiers sont analysés. -f=md,mdx
    -p / --parser

    Ce qui doit être considéré comme un fragment de texte. Les options suivantes sont disponibles :

    • md – un élément markdown
    • line – une seule ligne de texte
    • xml – un élément XML
    • adoc – élément AsciiDoc
    • file – le contenu du fichier entier
    • auto – tenter de déduire du masque de fichier
    -i=md
    -l / --minLength La longueur minimale (en caractères) pour qu'un fragment de texte soit analysé. Par défaut : 100 (les fragments de texte de moins de 100 caractères sont ignorés) -l=150
    -s / --minSimilarity Le degré minimum de similarité entre deux fragments de texte pour être considérés comme des doublons. Par défaut : 0.9 (90%) -s=0.85
    -d / --minDuplicates Le nombre minimum de doublons pour qu'un groupe de doublons soit signalé. Par défaut : 1 (un doublon suffit) -d=5
    -ui / --ui Utiliser ou non l'interface interactive. Options :
    • none – pas d'interface, écriture dans les fichiers uniquement
    • swing – ancienne interface
    • compose – nouvelle interface, par défaut
    -ui=none
    -v / --verbose Afficher la progression et les erreurs dans la console. Utilisez cette option si l'analyse prend trop de temps et que vous soupçonnez un problème. Par défaut : pas de journalisation -v
    -m / --memory Mode basse mémoire - minimise l'empreinte mémoire du détecteur de doublons au détriment de la vitesse d'analyse. -m
    -g / --gram (avancé) longueur du n-gramme – affecte la vitesse, l'empreinte mémoire et la précision de l'analyse. La différence dépend des spécificités du contenu. -g=10
    -w / --keepWhitespace Conserver les occurrences de plusieurs espaces consécutifs dans le contenu analysé. Par défaut, les espaces sont normalisés, ce qui signifie que plusieurs caractères d'espacement consécutifs sont traités et affichés comme un seul. -w
    -i / --inline

    Inclure le contenu des éléments imbriqués dans leur élément englobant. Par exemple :

    <parent>Some content including <child>nested content</child></parent>

    Avec cette option, l'élément externe sera analysé comme 'Some content including nested content', alors que par défaut il est analysé comme 'Some content including'.

    -i

Exemple de commande

Voici un exemple de ce à quoi votre commande pourrait ressembler :

java -jar duplicate-finder.jar -r=/Users/me.user/my-site -i=md -f=md,mdx -s=0.85 -d=5 -l=200

La commande ci-dessus effectuera les actions suivantes :

Résultats

Selon les paramètres et la taille du projet, vous devrez peut-être attendre un peu que l'analyse se termine. Ensuite, les résultats s'ouvriront dans le visualiseur de doublons et seront enregistrés dans le dossier défini par l'option '-o'. Si aucune option n'est spécifiée, la sortie est écrite dans le répertoire de travail.

Voici ce que vous verrez dans le visualiseur de doublons :

Duplicate finder UI Duplicate finder UI
  1. Barre d'outils : configurez la taille de police, l'ordre de tri et si vous souhaitez voir un seul fragment de référence (2) pour chaque groupe de doublons.
  2. Liste des fragments de référence : sélectionnez le fragment qui sert de référence pour la comparaison.
  3. Liste des fragments en double : après avoir sélectionné le fragment de référence (2), cette liste affichera les fragments similaires. Pour prévisualiser un doublon, sélectionnez-le dans la liste.
  4. Aperçu du fragment de référence : après avoir sélectionné le fragment de référence (2), vous pouvez prévisualiser son contenu ici. Les parties communes sont affichées en vert, tandis que les parties différentes sont affichées en rouge. Plus les fragments en double (3) ont des parties communes, plus ils apparaîtront en vert.
  5. Aperçu du fragment en double : après avoir sélectionné le fragment en double (3), son aperçu apparaîtra ici. Vous pouvez l'utiliser pour une comparaison rapide avec le fragment de référence sélectionné (4).

En savoir plus et contact

Si vous êtes intéressé par le développement de cet outil, consultez la série d'articles de blog associée :

Pour vos commentaires, vous pouvez me contacter en utilisant les coordonnées en bas de cette page. Je serai heureux d'entendre vos avis et demandes de fonctionnalités.

Licence

Le code est sous licence MIT, ce qui signifie que vous êtes libre de l'utiliser à n'importe quelle fin, ainsi que de le forker et de le modifier.

all posts ->