単語レベルテキスト差分比較 | 2つの文章を単語単位で比べる
修正前と修正後の文章を左右に並べ、追加された単語と削除された単語をその場で色分け表示。語数ベースの類似度パーセントで、2つのバージョンがどれだけ離れたかを一目で把握できます。
💡 文字単位と行単位のあいだの粒度
差分ツールの多くは両極のどちらかに寄っています。文字単位の差分は1文字打ち替えるたびに反応するため、誤字を1つ直しただけで段落中に細かな印が散らばります。コードレビューでおなじみの行単位の差分は、1語動かしただけでも行全体を「変更」と扱います。文章の推敲はその中間にあり、言い回しを直したときに実際に変わったのは単語であって、文字でも行全体でもありません。
このツールは両方のテキストを空白で区切って語に分割し、語の並びに対して最長共通部分列 (LCS) を計算します。結果は変更履歴のように読め、共通の語は無色、追加された語は緑、削除された語は赤い取り消し線で示されます。比較の単位が単語なので、1語の移動や類義語への置き換えが、1文字単位のノイズの壁ではなく、読みやすい編集マップとして現れます。追加・削除・変更なしの集計と類似度スコアにより、改稿の重さを数値でもすばやく確認できます。
🧐 よくある質問
文字単位の差分と何が違いますか? 文字単位の差分は1字ずつ比較するため、誤字を1つ直すだけで隣接する複数文字に印が付くことがあります。単語単位の差分は空白区切りの語を単位にするので、同じ修正が「1語削除・1語追加」として報告されます。文章の編集では単語単位のほうが格段に追いやすくなります。
類似度パーセントはどう計算されますか? 変更なしの語数を、2つの語数のうち多いほうで割った値をパーセント表示しています。完全に同じ文章なら100%、共通語が1つもなければ0%です。
空白を使わない言語でも使えますか? このアルゴリズムは空白で語を区切るため、空白で単語を分ける言語向けです。日本語や中国語のように空白のない文章は語のトークンがごくわずかになり、文字単位やn-gramのツールのほうが意味のある結果になります。
入力できる長さに上限はありますか? 明確な上限はありませんが、厳密なLCS計算は語数に対して二乗オーダーで増えます。非常に大きな入力では自動的に高速な近似処理へ切り替わり、精度を少し譲って速度を確保し、画面の反応を保ちます。
コピーした出力はどんな形式ですか?
追加語は [+ ]、削除語は [- ] で囲まれ、変更なしの語はそのまま並ぶため、読みやすいプレーンテキストの変更ログとしてどこにでも貼り付けられます。
📚 豆知識
このツールの背後にある最長共通部分列問題は、1970年代にベル研究所で生まれた古典的な diff コマンドを支える考え方と同じで、動的計画法の教科書的な例として知られています。バイオインフォマティクスはまったく同じ論理を借りて、語の代わりに塩基を扱いながらDNAやタンパク質の配列を整列させます。エッセイの2つの草稿を比べるときも、ゲノムの2本の鎖を比べるときも、問いは同一です。両方のバージョンが共有する最も長い要素の連なりは何か、そして一方から他方へ移るために何を挿入・削除したのか、です。