You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
※画像は公式サイトデモより 最近、自作でWikiエンジンを書いている。Wikiの三大要素(?)として必要なのは、ページがない場合の自動生成、HTMLを記述する事無く記法によって生成される文章、そして不特定多数が編集するための履歴管理機能だ。 履歴管理をする以上、リビジョンの比較ができなければ意味がない。更新の衝突が起こった場合も必要だ。その際に非常に便利なライブラリがこれだ。 今回紹介するオープンソース・ソフトウェアはgoogle-diff-match-patch、各種言語による差分表示ライブラリだ。 google-diff-match-patchはその名の通り、Google謹製のライブラリだ。何と、Webベースのドキュメント作成ソフトウェア、Google Documentsでも使われている代物だ。 提供されているのはJavaScript、JavaそしてPython向けのソースになる。特に
Javascript で diff というのはいくつか試された例はあるようですが、まだこれといった決定打は出ていない様子です。 実は diff は見た目ほど軽い処理ではないので、Javascript にやらせるのはこれが結構大変…… diff の計算量は、おおざっぱに言うと比較対象の要素数の二乗に比例し(実際にはそれより小さくすることができるのですが、まあ話のイメージとして)、かつメモリを大量に消費するので、バッチ的な処理に最適化されていない Javascript にはどうしても荷が重いものとなってしまいます。 比較対象の要素数を減らせば当然計算量は減りますが、行単位で比較してもあまり嬉しくない(わざわざ Javascript で処理するということは自然文が対象と思って良いでしょう)。最小の文字単位だとギブアップ。 ということは形態素解析で分かち書きして、単語単位で diff するのが J
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く