【連想くん】せっかくの情報蓄積をクローラーが破壊する

連想くんがβ版になり、特に何もなければ、システム的にこれで完成にしようと思ったのですが、一つやっかいな問題に遭遇してしまいました。

ここ数日で、検索エンジンのクローラーが連想くんに入り始めて、せっかくの蓄積データを荒らしてしまったからです。

機能として「連想した単語からさらに連想できる」ようになっているのですが、クローラがそれを使って、どうでもいい単語(例えば英単語など)までリンクをたどってしまい、そのせいでアクセスログに残ってしまったからです。特に、「a」「the」などの英単語は結構引っかかりやすいため、そいつをたどられてしまうと人気単語が全部英単語になってしまうのです。

最初は禁止ワードとしてこれらを登録していこうと思ったのですが、単語履歴をみたら既に2000くらい意味不明なものが登録されている状態で、これはダメだと思い別の方法を考えることに。
結局、人の手で入力された単語と、人気キーワードで表示されたものだけを履歴として残し、更に連想する場合は記録しないことにしました。

クローラーの行為そのものは、当方としてもありがたいわけで、連想くんのリンクが増えれば増えるほど、連想くんのサイトの価値が上がる訳なので、クローラーを禁止するのはもったいないです。ただ、意味不明な単語が登録されてしまう点はサービスの質を下げるだけなので、今回対策を立てた次第です。似たような仕組みを考える場合は、気をつけた方がいいですね。

「連想単語」の抽出の精度を上げる、という方法もあるのですが、これは機械的な手法を採っているためになかなか難しい問題です。仕組みについては今後明かしていくとして、どんな文章解析でもゴミは出てしまうため、仕方のない問題ではあります(しかもサービスを始めて間もないので、搭載されている辞書も学習されていないのでなおさら防ぐのは難しい)。もっと抽出が利口になったら元に戻すことも出来るのですが…

ちなみに、連想単語の抽出を含めた情報の入手はgoogleの検索等から行っているため、日本語サイトに限定して入手してくれれば、少なくとも英単語の登録は頻度が下がるのですが… 残念なことに、googleのオプションにそのようなものはないようなので、このような結果になってしまっているとも考えられます。