テキスト差分チェッカー
2つのテキストを並べて比較し、何が変わったかを正確に確認できます。追加された行は緑、削除された行は赤、未変更行は淡色で表示されます。類似度パーセントで全体の概要も確認できます。
比較するテキストを両方のフィールドに入力してください
テキスト差分比較:行単位の比較の仕組みとその重要性
2つのテキストを比較して差異を特定することは、コンピューティングにおける最も基本的な操作の一つです。ドキュメントの変更をレビューする場合でも、コードをデバッグする場合でも、翻訳が原文と一致するか検証する場合でも、テキスト差分ツールは何が追加され、削除され、または変更されなかったかを正確に示します。この行単位の比較アプローチは、Gitなどのバージョン管理システム、コードレビュープラットフォーム、ドキュメント共同作業ツールと同じ原理です。
テキスト差分とは
テキスト差分(diff)とは、2つのテキスト入力を比較し、それらがどこで異なるかをハイライトした出力です。比較は通常行単位で行われます。出力の各行は3つのタイプのいずれかに分類されます:追加(2番目のテキストにあり1番目にない)、削除(1番目のテキストにあり2番目にない)、未変更(両方で同一)。
diffの概念はUnixの初期に正式化されました。1974年にBell研究所のDouglas McIlroyが作成したオリジナルのdiffユーティリティは、最長共通部分列(LCS)アルゴリズムを使用して、一方のファイルを他方に変換するために必要な最小の変更セットを見つけました。このアルゴリズムは、このページで使用されているものを含め、現在のほとんどのdiffツールの基盤であり続けています。
最長共通部分列アルゴリズム
最長共通部分列(LCS)アルゴリズムは、両方のテキストに同じ順序で現れる最長の行のシーケンスを見つけます。2つのテキストの共通点を特定することで、各テキストに固有の行を判定できます。
アルゴリズムは動的計画法を使用して行列を構築します。2つの行が一致する場合、セルの値は対角の前任者に1を加えたものです。それ以外の場合、上または左のセルの最大値を取ります。行列完成後、バックトラッキングステップで実際のdiff出力を生成します。時間計算量はO(m × n)で、mとnは各テキストの行数です。
diff出力の読み方
標準的なunified diff形式では、各行にステータスを示す記号が付けられます。プラス記号(+)は2番目のテキストで追加された行、マイナス記号(-)は1番目のテキストから削除された行を示します。記号なしの行は未変更で、コンテキストを提供します。
diff出力と共に表示される統計情報——追加行数、削除行数、未変更行数、および全体の類似度パーセンテージ——は定量的な概要を提供します。類似度が高くターゲットを絞った追加・削除がある場合、焦点を絞った編集が行われたことを示唆します。
テキスト差分の主な用途
ソフトウェア開発者はdiffツールを常に使用します。GitHub、GitLab、Bitbucketのすべてのプルリクエストは提案された変更のdiffを表示します。ライターや編集者はドキュメントのバージョン比較に、翻訳者は更新されたソースドキュメントの変更箇所の特定に、システム管理者は設定ファイルの比較にそれぞれ利用します。
最も意味のある結果を得るためには、比較前に両方のテキストのフォーマットを統一することをお勧めします。空白、改行、インデントの違いが実際のコンテンツの変更を覚え隠す視覚的ノイズを作り出すことがあります。
よくある質問
テキスト差分比較はどのように機能しますか?
このツールは最長共通部分列(LCS)アルゴリズムを使用して2つのテキストを行単位で比較します。両方の入力間で一致する行の最長シーケンスを見つけ、それ以外を追加または削除としてマークします。アルゴリズムは完全にブラウザ内で実行され、データはサーバーに送信されません。
diff出力の色は何を意味しますか?
緑の行(+付き)はテキストBで追加されテキストAには存在しない行です。赤の行(-付き)はテキストAに存在しテキストBで削除された行です。淡い表示の行は未変更で、両方のテキストの同じ位置に存在します。
類似度パーセンテージはどのように計算されますか?
類似度は、diff出力の全行数に対する未変更行数の割合をパーセンテージで表したものです。同一の2つのテキストは100%の類似度になり、完全に異なる2つのテキストは0%になります。この指標は単語や文字レベルではなく行レベルでの構造的類似性を測定します。
コードの比較にも使えますか?
はい、このツールはソースコード、設定ファイル、JSON、XMLなどあらゆるプレーンテキストで動作します。行単位の比較のため、各行が独立した単位であるコードや構造化テキストで特にうまく機能します。
テキスト入力にサイズ制限はありますか?
厳密な文字数制限はありませんが、非常に大きなテキスト(数千行)はアルゴリズムがブラウザ内で実行されるため、処理に時間がかかる場合があります。一般的なドキュメントやコードの比較では、ツールは瞬時に実行されます。