重複ファインダー

他の言語: English Español 한국어 Português Русский 中文

重複検出ツールは、1つ以上のファイル内の類似したテキストを検出するためのオープンソースアプリケーションです。 完全に同一の重複や、似ているが同じではないコンテンツを見つけることができます。 このツールはプレーンテキスト、Markdown、XMLなど複数の形式に対応しています。

重複検出ツールは以下の点でお役に立てます:

重複コンテンツ例

こちらはツールが検出する内容を把握するための簡単な例です:

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.

使い方

  1. アプリをダウンロード または、以下のソースから自分でビルドすることができます ソース.
  2. コンピューターに Java 16 以降がインストールされていることを確認してください
  3. ターミナルで、ダウンロードした .jar ファイルがあるフォルダーを開きます
  4. 次のコマンドを実行します: java -jar duplicate-finder.jar 以下のパラメーターを指定します:

    パラメータ 意味
    -r / --root
    必須
    重複コンテンツを検索するフォルダーの相対パスまたは絶対パス -r=./my-project/
    -o / --output 解析結果を保存したいフォルダへの相対パスまたは絶対パスです。 ディレクトリが指定されていない場合、重複検出ツールは現在の作業ディレクトリを使用します。 -r=./my-project/duplicates/
    -f / --fileMask 解析するファイル拡張子のカンマ区切りリストです。デフォルトでは、すべてのファイルが解析されます。 -f=md,mdx
    -p / --parser

    テキストチャンクとして考慮する内容。以下のオプションが利用可能です:

    • md – マークダウン要素
    • line – テキストの1行
    • xml – XML要素
    • adoc – AsciiDoc 要素
    • file – ファイル全体の内容
    • auto – ファイルマスクから推測を試みる
    -i=md
    -l / --minLength テキストが分析されるための最小長さ(文字数)。 デフォルト値: 100 (100文字未満のテキスト片は無視されます) -l=150
    -s / --minSimilarity 2つのテキストチャンクが重複と見なされるための最小類似度。 デフォルト: 0.9 (90%) -s=0.85
    -d / --minDuplicates 重複グループが報告されるための最小重複数です。デフォルト値:1(1つの重複で十分) -d=5
    -ui / --ui インタラクティブ UI を使用するかどうか。オプション:
    • none – UI なし、ファイルへの書き込みのみ
    • swing – 古い UI
    • compose – 新しい UI、デフォルト
    -ui=none
    -v / --verbose 進行状況とエラーをコンソールに記録するかどうか。 分析に時間がかかりすぎて問題があると思われる場合は、このオプションを使用してください。 デフォルト:記録なし -v
    -m / --memory 低メモリモード - 分析速度を犠牲にして、重複ファインダーのメモリ使用量を最小限に抑えます。 -m
    -g / --gram (上級) ngram の長さ – 速度、メモリ使用量、分析の正確性に影響します。違いはコンテンツの詳細に依存します。 -g=10
    -w / --keepWhitespace 解析された内容で連続する複数の空白を保持します。デフォルトでは、空白は正規化され、連続する複数の空白文字は1つとして扱われ、表示されます。 -w
    -i / --inline

    ネストされた要素の内容を囲む要素に含めます。例えば:

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

    このオプションを有効にすると、外側の要素は 'Some content including nested content' として解析され、デフォルトでは 'Some content including' として解析されます。

    -i

コマンド例

上記のコマンドは以下を実行します:

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

上記のコマンドは以下を実行します:

結果

設定やプロジェクトの規模によっては、分析が完了するまで少し待つ必要があります。 その後、結果は重複ビューアで開き、コマンドラインオプション「-o」で定義されたフォルダーに保存されます。 オプションが指定されていない場合、出力は作業ディレクトリに書き込まれます。

以下は、重複ビューアに出てくるステップです:

Duplicate finder UI Duplicate finder UI
  1. ツールバー:フォントサイズ、並べ替え順序、および各重複グループに対して単一の参照チャンク(2)を 見るかどうかを設定します。
  2. 参照チャンクリスト:比較の参照として使用するチャンクを選択します。
  3. 重複チャンクリスト: 参照チャンク(2)を選択した後、このリストにはそれに似たチャンクが表示されます。 重複をプレビューするには、リストから選択してください。
  4. 参照チャンクプレビュー: 参照チャンク(2)を選択した後、その内容をここでプレビューできます。 共通部分は緑色で表示され、一致しない部分は赤色で表示されます。より多くの重複チャンク(3)が共通部分を持つ場合、より緑色に表示されます。
  5. 重複チャンクプレビュー: 重複チャンク(3)を選択すると、そのプレビューがここに表示されます。 選択した参照チャンク(4)とのクイック比較に使用できます。

詳細情報とお問い合わせ

このツールの開発に興味がある場合は、関連するブログ記事シリーズをご覧ください:

フィードバックがある場合は、このページの下部に記載された連絡先をご利用ください。ご意見や機能のリクエストをお聞きできると嬉しいです。

ライセンス

コードはMITライセンスの下にライセンスされています。これにより、任意の目的で自由に使用したり、フォークしたり、変更したりすることができます。

all posts ->