Twitterのタイムラインなどでたまに見かける「検索避け」という概念は結構面白い。
す/げ/し/ゅ/ん/い/ち
上記の文字列は、当たり前のように「すげしゅんいち」と読むことができるわけだが、
文字の間に/(スラッシュ)を入れると、こちらも当たり前のことなのだが「すげしゅんいち」という検索では引っかからない。
私達の目から見たら、大した違いの無い文字列のように見えるのだけれども、質的には全く異なる物になっている。
当たり前の事をもう一度書くが、視覚的な意味把握と文字列解析は違う。
私達は/(スラッシュ)と意味のある文字列を瞬時に分別して「無視する」ことができるわけだが、コンピュータは/(スラッシュ)も文字列の一つとして扱ってしまうので無視できない(検索避けの条件を予めプログラムしておけばいいとかそういう話は面白く無いのでここではしません)。
これは、2次元的に面で文字列全体を把握し、意味を捉える視覚能力と、1次元的に線で文字列を捉える解析システムの違いとも言える。
面で捉えれば、意味を把握できるが、線だと1文字ずつ逐一処理する必要があるために、/(スラッシュ)も意味を把握する必要が出てきてしまう。
さて、では面的に意味を捉えられるみなさんの視覚能力に挑戦してみることにする。以下の文字列を読み取ってもらいたい。
たたたこたたれたたたはたたたたたよたたたたためたたたたたるたたたかたたたたなた
今度は読み取るのに、かなりの負荷がかかったのでは無いだろうか。
記号から文字になった瞬間、私達は無意識に意味を読み取ろうとしてしまうため、
文字を記号として捉えられないがゆえの負荷が起こっている。
話を元に戻そう。
「検索避け」とはつまり、文字列にノイズを入れても、面的に意味を把握できる人間の認知能力に依存することで、特定の意味を保持することができる現象を利用した技である。
意味の保持やノイズの除去というのは実際にはかなり難しい技術だろうと想像できるのだが、人間を介することで、いともあっさりと実現することができる。
このように、敢えて人間の認知能力に依存することで(コンピュータ)システムの裏をかくという構造は、面白い。