Shotnest · ライブラリ
空白が繰り返される文章を比較する
空白が二つあるRed blueはRed blueと完全には一致しませんが、どちらもred blueにまとまるので、正規化後の一致は「はい」、単語の重なりは1です。
同じさの三つの段階
「完全に一致」は元の文字列を一文字ずつ比べるので、空白が一つ多いだけでRed blueはRed blueと別物になります。「正規化後に一致」は、まず小文字にしてアクセントをそろえ、次に連続する空白、タブ、改行をそれぞれ一つの空白に置き換え、両端を切り詰めます。どちらの入力もred blueになります。続いて「単語の重なり」が異なる語を比べ、ここでは集合が同一なので1になります。
同じまとめ方で、ほかの組も説明できます。Red、タブ、blue、改行のように、タブと末尾の改行がある場合も、正規化するとred blueになります。Caféとcafeも一致します。空白をまとめる前に、アクセントの正規化が行われるからです。
検索で使われる文字の表もここで適用されるので、空白をまとめる前に全角の文字と全角スペースが変換されます。RED BLUEは正規化するとred blueになり、red blueと一致します。
入力値
- 1つ目のテキスト
- Red blue
- 2つ目のテキスト
- Red blue
結果
- 完全に一致
- いいえ
- 正規化後に一致
- はい
- 単語の重なり
- 1
- 1つ目のテキストだけにある
- 利用できません
- 2つ目のテキストだけにある
- 利用できません
テキストの重なりだけでは、2つの画像や文書が同一だとは証明できません。
空白が意味を持つかを判断する
- まず「完全に一致」を読みます。「いいえ」なら、少なくとも一文字が違います。
- 次に「正規化後に一致」を読みます。「はい」なら、違いは大文字小文字、アクセント、空白のどれかでした。
- コード、詩、表のように、レイアウトが意味を持つかどうかを考えます。
- 意味を持つなら、抽出したテキストではなく元のスクリーンショットを比べます。
- Red、タブ、blue、改行とred blue · 正規化後
- はい
- Caféとcafe · 完全
- いいえ
- Caféとcafe · 正規化後
- はい
空白をまとめるときの間違い
- 正規化後の行だけが「はい」のときに、二つのコードスニペットを同一と呼ぶこと。インデントが違うかもしれません。
- 検索欄でも同じように空白がまとめられると思うこと。このサイトではまとめられません。
- 文字認識が段の間の空白を増やしたり落としたりすることを忘れること。
- 正規化後の「はい」を、綴りが同じ証拠と読むこと。MüllerとMullerは正規化すると一致しますが、別の名前かもしれません。
テキストが同じでも、画像は違うかもしれない
正規化後の一致が表すのは、抽出された語だけです。テキストが同じ二枚のスクリーンショットでも、レイアウトや色、文字認識が拾えなかった細部が違うことがあります。
Shotnestのクリーンアップでも、テキストの確認には英字だけの語が使われるので、数字は無視されます。ほぼ同じ二つの画面を見分けるのは、画像のフィンガープリントです。