Duplikatfinder
Andere Sprachen: EnglishEspañolFrançais日本語한국어PortuguêsРусский中文
Der Duplikatfinder ist eine Open-Source-Anwendung zur Erkennung ähnlicher Texte in einer oder mehreren Dateien. Er kann verwendet werden, um 100%ige Duplikate sowie ähnliche, aber nicht identische Inhalte zu finden. Das Tool ist mit mehreren Formaten kompatibel, darunter Klartext, Markdown und XML.
Das Duplikatfinder-Tool kann Ihnen helfen bei:
- Plagiatserkennung
- Content-Management
- SEO-Optimierung
- Datendeduplizierung
Beispiel für doppelten Inhalt
Hier ist ein kurzes Beispiel, um Ihnen eine Vorstellung davon zu geben, was das Tool erkennt:
Anleitung
- Laden Sie die App herunter. Alternativ können Sie es selbst aus den Quellen erstellen.
Führen Sie
./gradlew fatJarmit JDK 21 im Quellverzeichnis aus. Die JAR-Datei liegt anschließend unterbuild/libs/duplicate-finder.jar. - Stellen Sie sicher, dass Java 21 oder höher auf Ihrem Computer installiert ist
- Öffnen Sie im Terminal den Ordner mit der heruntergeladenen .jar-Datei
-
Führen Sie
java -jar duplicate-finder.jarmit den folgenden Parametern aus:Parameter Bedeutung Beispiel -r/--rootRelativer oder absoluter Pfad zum Ordner, in dem Sie nach doppeltem Inhalt suchen möchten. Standard: das aktuelle Arbeitsverzeichnis. -r=./my-project/-o/--outputRelativer oder absoluter Pfad zum Ordner, in dem Sie die Analyseergebnisse speichern möchten. Standard: ./duplicate_finder_output, relativ zum aktuellen Arbeitsverzeichnis. -o=./my-project/duplicates/-f/--fileMaskDateien: Geben Sie die zu durchsuchenden Dateierweiterungen ohne führenden Punkt und durch Kommas getrennt an. Mit * werden alle Erweiterungen einbezogen.
Parser: Jeder Eintrag kann eine Erweiterung allein oder extension:parser sein. Der Parser bestimmt, wie eine Datei zum Vergleich in Textabschnitte aufgeteilt wird. Ohne Angabe wird er anhand der Erweiterung gewählt; unbekannte Erweiterungen verwenden file.
Standard: Die Standardliste der Erweiterungen ist .md, .mdx, .xml, .adoc, .asciidoc und .properties. Mit -f ersetzen Sie diese Liste.
Parsernamen (nach dem Doppelpunkt) und die erzeugten Textabschnitte:
- md – ein Markdown-Element
- line – eine einzelne Textzeile
- xml – ein XML-Element
- adoc – AsciiDoc-Element
- file – der gesamte Dateiinhalt
- properties – ein Eigenschaftswert
-f=md,mdx
Nur .md- und .mdx-Dateien durchsuchen, beide mit dem Markdown-Parser.-f=topic:xml,txt:line
.topic-Dateien nach XML-Elementen und .txt-Dateien zeilenweise durchsuchen.-f="*:line"
Alle Dateien durchsuchen und jede Zeile als eigenen Textabschnitt behandeln.-l/--minLengthDie Mindestlänge (in Zeichen) für einen zu analysierenden Textabschnitt. Standard: 100 (Textfragmente kürzer als 100 Zeichen werden ignoriert) -l=150-s/--minSimilarityDer Mindestgrad der Ähnlichkeit zwischen zwei Textabschnitten, um als Duplikate betrachtet zu werden. Standard: 0.9 (90%) -s=0.85-d/--minDuplicatesDie Mindestanzahl von Duplikaten, damit eine Duplikatgruppe gemeldet wird. Standard: 1 (ein Duplikat reicht aus) -d=5-ui/--uiOb die interaktive Benutzeroberfläche verwendet werden soll oder nicht. Optionen: - none – keine Oberfläche, nur in Dateien schreiben
- swing – alte Oberfläche
- compose – neue Oberfläche, Standard
-ui=none-v/--verboseDie Dauer der Indexierung und Analyse in der Konsole ausgeben. Standardmäßig deaktiviert. Fehler bei übersprungenen Dateien werden unabhängig von dieser Option gemeldet. -v-g/--gram(fortgeschritten) N-Gramm-Länge – beeinflusst Geschwindigkeit, Speicherbedarf und Genauigkeit der Analyse. Der Unterschied hängt von den Besonderheiten des Inhalts ab. -g=10-w/--keepWhitespaceMehrfache aufeinanderfolgende Leerzeichen im geparsten Inhalt beibehalten. Standardmäßig werden Leerzeichen normalisiert, d.h. mehrere aufeinanderfolgende Leerzeichen werden als eines behandelt und angezeigt. -w-i/--inlineDen Inhalt verschachtelter Elemente in ihr umschließendes Element einbeziehen. Zum Beispiel:
<parent>Some content including <child>nested content</child></parent>Mit dieser Option wird das äußere Element als 'Some content including nested content' geparst, während es standardmäßig als 'Some content including </>' geparst wird.
-i
Konfigurationsdatei
Sie können Einstellungen in duplicate-finder.properties im Inhaltsverzeichnis (-r oder das aktuelle Verzeichnis) speichern. Verwenden Sie die langen Optionsnamen ohne -- als Schlüssel. Beispiel:
fileMask=topic:xml,md,mdx
minSimilarity=0.85
minLength=200
ui=none Ohne Argumente wird die Datei aus dem aktuellen Verzeichnis geladen; mit -r wählen Sie ein anderes Inhaltsverzeichnis. Fehlende Einstellungen verwenden die Standardwerte. Die Optionen -o, -ui und -v können gespeicherte Einstellungen überschreiben. Wenn Sie -s, -l, -d, -f, -g, -w oder -i angeben, wird die Konfigurationsdatei vollständig ignoriert.
Befehlsbeispiel
Hier ist ein Beispiel, wie Ihr Befehl aussehen könnte:
java -jar duplicate-finder.jar -r=/Users/me.user/my-site -f=md,mdx -s=0.85 -d=5 -l=200
Der obige Befehl führt Folgendes aus:
-
-r=/Users/me.user/my-site– nach ähnlichem Inhalt in '/Users/me.user/my-site' und seinen Unterverzeichnissen suchen -
-f=md,mdx– nur Dateien mit den Erweiterungen '.md' und '.mdx' berücksichtigen und nach Markdown-Regeln analysieren -
-s=0.85– nur Übereinstimmungen mit einer Ähnlichkeit von 85% oder höher melden -
-d=5– nur Texte melden, die 5-mal oder öfter dupliziert wurden -
-l=200– nur Texte mit 200 Zeichen oder mehr melden
Ergebnisse
Je nach Einstellungen und Projektgröße müssen Sie möglicherweise etwas warten, bis die Analyse abgeschlossen ist. Danach werden die Ergebnisse im Duplikat-Viewer geöffnet und im mit der Option '-o' definierten Ordner gespeichert. Standardmäßig werden Textberichte in ./duplicate_finder_output im Arbeitsverzeichnis gespeichert. Mit -ui=none speichern Sie Berichte, ohne den Viewer zu öffnen.
Hier sehen Sie, was im Duplikat-Viewer angezeigt wird:
- Symbolleiste: Konfigurieren Sie die Schriftgröße, Sortierreihenfolge und ob Sie nur einen einzelnen Referenz-Chunk (2) für jede Duplikatgruppe sehen möchten. Mit Fuzzy search können Sie eine Textabfrage eingeben und ähnliche Passagen mit einem einstellbaren Ähnlichkeitsschwellenwert finden.
- Referenz-Chunk-Liste: Wählen Sie den Chunk aus, der als Referenz für den Vergleich dient.
- Duplikat-Chunk-Liste: Nachdem Sie den Referenz-Chunk (2) ausgewählt haben, zeigt diese Liste die ähnlichen Chunks an. Um ein Duplikat anzuzeigen, wählen Sie es aus der Liste.
- Referenz-Chunk-Vorschau: Nachdem Sie den Referenz-Chunk (2) ausgewählt haben, können Sie seinen Inhalt hier anzeigen. Gemeinsame Teile werden grün angezeigt, während unterschiedliche Teile rot angezeigt werden. Je mehr Duplikat-Chunks (3) einen gemeinsamen Teil haben, desto grüner wird er erscheinen.
- Duplikat-Chunk-Vorschau: Nachdem Sie den Duplikat-Chunk (3) ausgewählt haben, erscheint hier seine Vorschau. Sie können sie für einen schnellen Vergleich mit dem ausgewählten Referenz-Chunk (4) verwenden.
Mehr erfahren & Kontakt
Wenn Sie sich für die Entwicklung dieses Tools interessieren, schauen Sie sich die zugehörige Blog-Serie an:
- Duplikatfinder für Text
- Duplikatfinder für Text: Anforderungen
- Junie programmiert (AsciiDoc-Unterstuetzung)
- Duplikatfinder für Text: Algorithmus
Für Feedback können Sie mich über die Kontaktdaten in der Fußzeile dieser Seite erreichen. Ich freue mich über Ihre Anregungen und Feature-Wünsche.
Lizenz
Der Code ist unter der MIT-Lizenz lizenziert, was bedeutet, dass Sie ihn für jeden Zweck frei verwenden, forken und modifizieren können.