2つの文章の変更箇所を、行と文字で見つけます
テキスト比較ツールは、元の文と修正後の文を行単位で突き合わせ、修正後にだけ増えた行を「追加」、元の文にしかない行を「削除」、対応する行はあるのに内容が変わった行を「修正」として表示します。修正行の中はさらに文字や単語の単位で比べるので、「10月27日(月)」が「10月28日(火)」に変わったなら、「7」と「8」、「月」と「火」のように実際に変わった部分だけが濃く表示されます。
作業エリアには最初からお知らせ修正版の例が入っていて、修正3行・追加1行・削除1行、類似度78.2%がすぐに確認できます。2つの欄の文章を消して自分の文章を貼り付ければ、入力するたびに再比較します。文章もファイルも、このブラウザー内だけで処理します。
テキスト比較が役に立つ場面
2つの文章を目で交互に読むと、数文字の修正は見落としがちです。数字1つ、助詞1つで意味が変わる文章ほど、機械的に突き合わせたほうが速く確実です。
- 校正・添削の結果を確かめるとき:他の人が直してくれた原稿、校正ツールを通した文章、生成AIが整えた文で、どこがどれだけ変わったかを確認します。意図しない書き換えが混じっていないかも探せます。
- 契約書・規約・社内規程の改定版を受け取ったとき:期間・金額・日付のように、数字だけがわずかに変わる条項がいちばん危険です。文字の強調を見れば、「2027年」が「2028年」になった1文字の違いまで分かります。
- お知らせ・プレスリリース・案内文を出し直すとき:修正版を送る前に変更した行だけを「変更点」としてまとめたり、前回送った文との違いを相手に説明したりするのに使えます。
- 翻訳・字幕・データ一覧を検品するとき:同じ原文から作った2つの訳文、字幕ファイルの2つの版、書き出した一覧2つを比べて、抜けた行や増えた行を探します。
- 設定ファイルやコードの断片を比べるとき:開発ツールのないパソコンでも、2つの版の違いを diff 形式ですぐ得られます。インデントだけが変わった行は、空白を無視で除外できます。
使い方
- A の元の文の欄に変更前の文章を、B の修正後の欄に直した文章を貼り付けます。各欄のファイルボタンでテキストファイルや DOCX を開くか、ファイルを欄の上にドロップしても構いません。
- 入力するとすぐに、概要と結果が更新されます。順番を逆に入れてしまったときは、2つの欄の間にある ⇄ ボタンで元の文と修正後を入れ替えます。
- 空白やインデントの違いを除くなら空白を無視を、英字の大文字小文字の違いを除くなら大文字小文字を無視をオンにします。
- 結果では左右表示と1列表示、文字強調と単語強調を選べます。長い文章は変更箇所のみをオンにして、上下の矢印で変更位置を1つずつ移動するか、右側の変更マップのマークを押して移動します。
- 結果を残すときはdiffをコピーか保存を押します。広い画面で見るなら全画面を使います。
結果の読み方
左右表示では左が元の文、右が修正後で、修正行は同じ行に向かい合って並びます。1列表示では、修正前の行(−)のすぐ下に修正後の行(+)が続きます。行番号は、それぞれの文書での実際の行番号です。
| 表示 | 意味 |
|---|---|
| ~ 修正 | 両方に対応する行があり、内容が変わった行です。元の文側は赤い背景、修正後側は緑の背景で、行の中の変わった部分だけがさらに濃くなります。 |
| + 追加 | 修正後にだけある行です。左右表示では、元の文側の欄は斜線で空けてあります。 |
| − 削除 | 元の文にだけある行です。行の中で消えた文字は、濃い背景に取り消し線を引いてあるので、色の区別がつきにくくても見分けられます。 |
| = 同じ | 2つの文章で同じ行です。変更箇所のみを表示にすると、変更の前後2行だけを残して折りたたまれます。 |
| ≈ | 空白を無視や大文字小文字を無視のために、同じとみなした行です。文字は違っても、選んだ条件では同じ扱いです。 |
| · → ⍽ □ | 空白だけが変わった位置を見えるようにした記号です。順に、半角スペース、タブ、改行しない空白、全角スペースを表します。 |
| 200B | 幅のない空白(U+200B)のように、画面に見えない文字が変更箇所に混じっているとき、その文字のユニコード番号を小さな箱で表示します。 |
概要の類似度リングは、2つの文章が文字の面でどれだけ同じかを、棒グラフは同じ・修正・削除・追加の行の割合を表します。結果の右にある細い帯は変更マップです。文書全体の高さに対して変更の位置を色で示すので、長い文章でも変更がどこに集まっているかがひと目で分かり、押すとその場所へ移動できます。
例で見る比較結果
作業エリアの例ボタン3つを押すと、下の結果がそのまま表示されます。行数は結果の表の行数ではなく、それぞれの分類に入った行の数です。類似度は小数第1位で切り捨てた値です。
| 例 | 修正 | 追加 | 削除 | 同じ | 類似度 | 読み方 |
|---|---|---|---|---|---|---|
| お知らせ修正版 | 3 | 1 | 1 | 3 | 78.2% | 日時・曜日・場所を直した行、新しく入れたオンライン参加の案内、削った議事録の案内が一緒に出ます。 |
| 契約条項 | 4 | 1 | 0 | 0 | 82.9% | 4つの条項がすべて修正で、第7条が追加です。数字だけが変わった行は、変わった桁だけが濃く表示されます。 |
| 設定ファイル(そのまま) | 5 | 1 | 0 | 2 | 81.4% | インデントを2桁から4桁に変えたため、括弧の2行を除くすべての行が修正になります。 |
| 設定ファイル(空白を無視) | 3 | 1 | 0 | 4 | 85.1% | インデントだけが違う2行は同じとみなすので、値が変わった3行と追加された1行だけが残ります。 |
設定ファイルの例は、同じ文章でも比較条件によって結果が大きく変わることを示しています。インデントの規則を変えたファイルをそのまま比べると、ほぼすべての行が修正になり、本当に変わった値が埋もれてしまいます。
空白を無視と大文字小文字を無視は、いつオンにするか
空白を無視は、行の中のスペース・タブ・全角スペースをすべて取り除いて比べます。大文字小文字を無視は、大文字と小文字がある文字を小文字にそろえて比べます。どちらの条件でも改行はそのままなので、行が分かれたり合わさったりした違いは見え続けます。表の中の ・ は空白1つです。
| 元の行 | 修正後の行 | 標準 | 空白を無視 | 大文字小文字を無視 | 両方 | 違い |
|---|---|---|---|---|---|---|
東京·大阪 | 東京大阪 | 修正 | 同じ | 修正 | 同じ | 半角スペース1つの違いです。 |
··"port":·8080, | ····"port":·8080, | 修正 | 同じ | 修正 | 同じ | インデントが2桁と4桁です。 |
行末の空白· | 行末の空白 | 修正 | 同じ | 修正 | 同じ | 行末に残った空白1つの違いです。 |
Report | report | 修正 | 修正 | 同じ | 同じ | 英字の先頭の大文字小文字だけが違います。 |
Tokyo·Station | tokyo··station | 修正 | 修正 | 修正 | 同じ | 大文字小文字と空白の数が両方違います。 |
日本語の文章では、半角スペースや全角スペースの有無で意味が変わることはあまりありませんが、英単語や数字が混じる文では「ノートPC」と「ノート PC」のような違いが出ます。表記のゆれそのものを直している最中なら、空白を無視はオフにして見てください。パスワード、ファイルパス、プログラムの変数名のように大文字小文字を区別する値を確認するときも、大文字小文字を無視はオフのほうが安全です。改行コード(WindowsのCRLFとMac・LinuxのLF)と最終行の後ろの改行の有無は、オプションに関係なく同じとみなし、それだけが違う場合は状態表示で別にお知らせします。
このツールが違いを見つける方法
行の突き合わせ:2つの文章を行のリストとして置き、行の順序を保ったまま両方に同じように残る行をできるだけ多く選びます。これは最長共通部分列(LCS)を求める問題で、元の文を修正後にするために必要な行の削除・追加の回数を最小にする問題と同じです。このツールは、1986年にユージン・マイヤーズ(Eugene W. Myers)が発表した O(ND) アルゴリズムでこの問題を解きます。N は2つの文章の行数の合計、D は必要な削除・追加の回数なので、変更が少ないほど早く終わり、途中で経路を二分する方式のため、大きな文書でもメモリをあまり使いません。git diff の標準アルゴリズムもこの方式です。
修正行の組み合わせ:同じ行にはさまれた削除行と追加行のかたまりの中で、2文字ずつの断片がどれだけ重なるかで似ている度合いを測ります。順序を保ったまま似ている度合いの合計が最大になる組を先に選び、残りの行は前から順に組にして修正として扱います。そのため、直した行のすぐ前に新しい文を入れても、新しい文は追加、直した行は修正として、それぞれ正しい位置に収まります。
行内の比較:組になった2行を、さらに文字または単語に分けて同じアルゴリズムで比べます。文字はユニコードの書記素クラスター(見た目1文字のまとまり)を単位にするので、絵文字や結合文字が途中で割れません。単語は、ブラウザーの単語境界(Intl.Segmenter)の規則に従って区切ります。日本語はスペースで区切らない言語ですが、この規則で語のまとまりに分かれるため、単語強調でも読みやすい単位で表示されます。ただし、区切り方はブラウザーの辞書に左右されるので、ブラウザーによって境界が少し違うことがあります。そのうえで、変更にはさまれた短い同じ断片を変更に取り込み、「brown → red」のように人が読みやすいかたまりにします。この整理は、Google の diff-match-patch の意味整理(cleanupSemantic)で使われる規則に沿っています。
類似度:同じ行と修正行の中で同じ位置に対応した文字数を S、元の文と修正後の文字数を A と B とすると、類似度 = 2 × S ÷ (A + B) です。改行は数えず、空白を無視をオンにしたときは空白も数えません。2つの文章が完全に同じときだけ100%と表示し、ほんの少しでも違えば切り捨てて、100%にならないようにしています。
diff のコピー・保存形式の読み方
diffをコピーと保存は、GNU diff の unified 形式(diff -u)で出力します。上のお知らせの例をコピーすると、下のようになります。変更した行の前後に同じ行を3行ずつ付け、変更どうしが6行以内に近ければ1つの区間にまとめます。
--- 元の文
+++ 修正後
@@ -1,7 +1,7 @@
【お知らせ】10月定例会議のご案内
-会議は10月27日(月)午後2時から3階の会議室で開催します。
+会議は10月28日(火)午後3時から3階の大会議室で開催します。
議題は下半期の予算確認と新規プロジェクトの日程です。
-持ち物:ノートPC、前四半期の報告書
-出席が難しい場合は金曜日までにご返信ください。
-議事録は会議の翌日に共有します。
+オンラインで参加する場合は、会議用リンクをご利用ください。
+持ち物:ノートPC
+出席が難しい場合は木曜日までにご返信ください。
よろしくお願いします。
\ No newline at end of file
---と+++の行は、元の文と修正後の名前です。ファイルを開いて比べたときは、ファイル名が入ります。@@ -1,7 +1,7 @@は、元の文の1行目から7行、修正後の1行目から7行がこの区間だという意味です。区間が1行なら-5のように行番号だけを書き、片方が空なら+0,0のように、その直前の行番号と0を書きます。- 行頭のマイナス(-)は元の文にだけ、プラス(+)は修正後にだけある行で、空白で始まる行は両方で同じ行です。1つの区間の中では、元の文の行をすべて書いてから修正後の行を書きます。
- この形式は patch コマンド(
patch 元のファイル < 保存した.diff)で元のファイルに適用すると修正後と同じになり、コードレビューツールやメールでも広く読まれています。各行の元の改行(CRLF・LF)をそのまま含み、最後の行に改行がなければその下に\ No newline at end of fileの行を付けます。空白を無視や大文字小文字を無視をオンにして作った diff はその違いを含まないので、適用用に使うなら両方をオフにして作ってください。
ファイルと文字コード
テキストファイルは2 MBまで、DOCX は20 MBまで開けます。拡張子は問わず、中身が文字でできたファイルなら、TXT・MD・CSV・JSON・HTML・SRT・ログファイルのどれでも読み込みます。先頭付近に0バイトがあれば、画像や実行ファイルのようなバイナリファイルとみなして読みません。
- 文字コードの判定:ファイルの先頭にバイトオーダーマーク(BOM)があれば、そのとおり UTF-8・UTF-16 として読み、なければまず UTF-8 で読みます。UTF-8 として合わなければ、EUC-KR(Windows 拡張の CP949 を含む)、Shift_JIS、Windows-1252 で読み、日本語のかなや漢字、韓国語、ラテン文字が自然に出る文字コードを選び、選んだ文字コードを欄の上に表示します。Windows のメモ帳で「ANSI」として保存した日本語のファイル(Shift_JIS の仲間である CP932)は、この場合にあたります。
- DOCX:圧縮された DOCX の中の本文(word/document.xml)から、段落1つを1行として読みます。表はセルごとに1行、テキストボックスの文字も本文の順に入れます。変更履歴が残っているときは、挿入された文字は入れ、削除された文字は除いた状態、つまりすべての変更を承諾した本文として読みます。ヘッダー・フッター・脚注・コメントや、フォント・色などの書式は比較しません。
- 読み込まない形式:HWP・HWPX・PDF・DOC・Excel・PowerPoint と画像ファイルは直接読み込みません(HWP は主に韓国で使われる文書形式です)。元のアプリや PDF ビューアーで本文をすべて選択してコピーしてから貼り付けてください。PDF からコピーした文章はページの終わりごとに行が切れていることがあるので、両方を同じ方法でコピーしないと正確に比べられません。
間違えやすい点
- 元の文と修正後を逆に入れた:追加と削除が入れ替わって見えます。古い文章が A、新しい文章が B になっているか確かめ、逆なら ⇄ ボタンで入れ替えます。
- 片方だけ自動で改行された文章を貼り付けた:メールや PDF からコピーした文章は、画面の幅に合わせて行が切れているため、すべての行が違うと出ることがあります。2つの文章を同じ場所から同じ方法でコピーしてください。
- 類似度を盗用率として読んだ:類似度は、文字が同じ順序で残っている割合にすぎず、出典や引用かどうかは判断しません。文をそっくり写した文章でも、順序が違えば類似度は低く出ます。
- 無視オプションをオンにしたまま diff を適用した:空白を無視をオンにして作った diff には、インデントの変更が入っていません。ファイルに適用する diff は、オプションをオフにして作ります。
- 見えない文字を見落とした:Web からコピーした文章には、幅のない空白や改行しない空白が混じっていて、目には同じなのに違うと出ることがあります。変更位置に 200B のような箱や ⍽ の記号が見えたら、その文字が原因です。
制限と注意
- 1文書あたり50万文字、2万行まで比較します。それより長い文章は、章やページの単位に分けて比べてください。結果が1,000行を超える長い文章では、結果は変更箇所のみの表示で始まります。
- 2つの文章がほとんど違うときは、行の突き合わせに1秒の時間制限を設けます。超えたら残りの区間では同じ行をそれ以上探さず、行を順番に組み合わせて修正・追加・削除に分け、状態表示でお知らせします。このため修正行の数が実際より多く出ることがあります。結果欄は一度に3,000行まで表示し、残りは一番下のボタンで続けて開きます。
- 段落の移動は別に追跡しないので、削除と追加になります。同じ文が何度も繰り返される文章では、どの行どうしを合わせるか複数の答えがありえて、人が組にしたものと違って見えることがあります。
- 比較するのは文字だけです。意味が同じ別の表現、誤字脱字の有無、書式・フォント・画像は判断しません。
- 入力と結果は保存しないので、ページを閉じると消えます。個人情報を含む比較結果をコピーして共有するときは、内容をもう一度確認してください。
出典
基準日 以下の文書は2026年10月22日に原文で確認しました。マイヤーズの論文の掲載誌情報は Crossref の書誌で確認しています。例の表の行数・類似度と diff の例はこのツールの計算結果で、diff の形式は、無作為な文書120組を patch コマンドで元の文に適用して修正後と完全に一致するか、空の区間の表記(-0,0)が diff コマンドの出力と同じかを突き合わせました。
- 01Eugene W. Myers — An O(ND) Difference Algorithm and Its VariationsAlgorithmica 1巻251~266ページ(1986年11月、DOI 10.1007/BF01840446)。最長共通部分列と最短編集スクリプトが同じ問題であること、線形空間の変形
- 02J. W. Hunt, M. D. McIlroy — An Algorithm for Differential File Comparisonベル研究所 Computing Science Technical Report #41(1976年7月)
- 03GNU Diffutils マニュアル — Unified Format-u オプション、文脈の行はデフォルトで3行
- 04GNU Diffutils マニュアル — Detailed Description of Unified Format---・+++ のヘッダー、@@ の区間ヘッダー(1行の区間は開始行番号のみ)、行頭の空白・-・+ の意味
- 05Git ドキュメント — git-diff--diff-algorithm(デフォルトは myers)、--word-diff
- 06Google diff-match-patch — APIdiff_cleanupSemantic:人が読みやすい変更のかたまりに整理
- 07Unicode — UAX #29 Unicode Text Segmentation書記素クラスター(grapheme cluster)と単語境界
- 08WHATWG — Encoding StandardEUC-KR が Windows コードページ949(拡張完成型)まで扱うこと、Shift_JIS・windows-1252 の解釈
- 09Ecma International — ECMA-376 Office Open XMLDOCX の本文構造(段落 w:p、文字 w:t、変更履歴 w:ins・w:del)
- 10MDN — DecompressionStreamブラウザー内で deflate-raw の圧縮を展開
よくある質問
テキスト比較ツールは無料ですか。入力した文章はサーバーに送られますか。
登録なしで無料で使えます。貼り付けた文章も開いたファイルも、このブラウザー内だけで比較し、サーバーへは送りません。ページを閉じると何も残りません。結果を残すときは、diffのコピーか保存を使ってください。
「修正」と「削除・追加」はどう分かれますか。
同じ行を基準に2つの文章を突き合わせたあと、間に残った削除行と追加行のうち、文字の構成が似ている行どうしを先に組にして修正とします。残りは順に組にし、組になれなかった行だけが削除または追加として残ります。
類似度78%はどのように計算した値ですか。
2つの文章で同じ位置に対応した文字数の2倍を、2つの文章の全文字数で割った値です。改行は数えず、空白を無視をオンにすると空白も数えません。意味が近いかどうかではなく、文字がどれだけそのまま残っているかを表します。
文字強調と単語強調は何が違いますか。
文字強調は、「月曜日」が「火曜日」に変わると「月」と「火」だけを濃く表示するので、助詞や数字のような小さな修正を探すのに向いています。単語強調は、変わった語のまとまりを丸ごと表示するので、文が大きく変わった文章が読みやすくなります。
スペースやインデントの違いだけを除いて見られますか。
空白を無視をオンにすると、行の中のすべてのスペース・タブを除いて比べるので、「東京 大阪」と「東京大阪」や、インデントだけが違うコードの行を同じ行とみなします。同じとみなした行は行番号の横に ≈ が付き、概要に件数が出ます。
Word・一太郎・PDFのファイルも比較できますか。
DOCX はファイルをそのまま開くと、本文の段落を行として読みます。変更履歴が残っていれば、挿入された文字は入れ、削除された文字は除いた本文として読みます。PDF などはアプリから本文をコピーして貼り付けてください。
段落の順番を変えただけなのに、なぜ削除と追加になりますか。
この比較は、2つの文章の行の順序を保ったまま同じ行をできるだけ多く合わせる方式なので、位置を移した段落は、片方では削除、もう片方では追加として出ます。移動は別に追跡しないので、変更箇所のみの表示で2つの位置を確認してください。
diffのコピーに出る @@ -1,7 +1,7 @@ はどういう意味ですか。
unified diff の区間ヘッダーです。元の文の1行目から7行と、修正後の1行目から7行を比べた区間という意味で、その下の行頭のマイナス(-)は元の文にだけ、プラス(+)は修正後にだけある行、空白は両方で同じ行です。