本文校合にDiffを使う

Diffは、2つのテキストから差違を取得します。
この実装は文字同士での比較を基礎単位としています。
Diffの結果には、ゴミ情報が含まれるかもしれません。
post-diff cleanupアルゴリズムは、それらのゴミ情報を除去するように努めます。

サンプル文書はテキスト1が青谿書屋本『土左日記』。これは三井合名理事だった大島雅太郎の旧蔵で、現在は東海大学付属図書館桃園文庫の所藏。
テキスト2が尊経閣文庫本『土左日記』。これは加賀藩主前田家の持っていたもので、現在は前田育徳会所藏。国宝。
本文は青谿書屋本の方が優れており、尊経閣文庫本には定家の恣意的な本文改竄が多く含まれているとされている。

テキスト1:

テキスト2:

タイムアウト:


diff計算のマッピングフェーズがこれより長い時間がかかる場合、計算を中断して、それまでに得られた最適解を返します。
計算完了が、指定した時間を越えて必要な場合には、最適でない解が出力される場合があります。
タイムアウトを'0'に指定した場合、計算に無制限な時間を与えますが、メモリが少ないパソコンでは全文が出力されるだけで所期した結果が出ない時があります。
長文の比較を行う場合は、ブラウザが無反応になったり、OSが落ちたりするかもしれませんが、数値を180くらいに設定するなどの方が良いでしょう。
最善なのは章や節の単位に小分けして実行することです。

ゴミ情報除去(Post-diff cleanup):

人間にとっての可読性を高めます。
, 編集コスト:
差分からはみ出るオーバーヘッドがなるべく少なくなるように計算します。編集コストの値を大きく取ると、大雑把に算出し、意味的除去に近い結果となります。
厳密な差違のままで出力します。一文字の違いも見落とさないように本文校合する場合に有用です。

※なお、結果のうち、"¶"は改行の有無を示します。



Diff, Match and Patch Library (20080624) ALL Made by Neil Fraser.
modified HTML sauce by Tanimoto :2008/10/13,2010/01/20