2008-03-30 悪質出会い系サイトの手口
某日,出会い系サイトでサクラのアルバイトをしていた,という人とお話する機会がありました。よく「有料の出会い系サイトはサクラばかりで,本物はいない」って聞きますけれど,実態はどうなのでしょうか。いろいろと聞き出してきましたので,彼らの手口をお教えしましょう。
以後,サクラのアルバイトをしていた人のことを「さくら」さんと呼ぶことにします。さくらさんの正体は,髭を生やしたがっしりとした体格の男性です。佐々木健介に似ているかもしれません。⇒佐々木健介
「どうしてそんな人と知り合いになれたの?」という質問はしないでくださいね。橋の下で拾ってきたのです(なぞ)。
テンプレートから選ぶだけ
私は「出会い系のサクラって四六時中,コンピュータの画面に張り付いていてキーボードを打ち続けているのかな」と思っていました。さくらさんが言うには,「マウスで選ぶだけ」なんだそうです。
どういう意味なのかというと,メールの返信文にはテンプレートがあるのだそうです。条件をいくつか設定すると自動的に返信文が生成されて,「送信」ってボタンをクリックするとお客さんにメールが送られるそうです。
テンプレートの数ですが,数万件の投稿サンプルから作られているそうです。さくらさんは「まず見破れる人はいない」と言っていました。どうやら,壮大なチューリングテストが実践されているようですね。恐ろしいですね。
サイトにアクセスしただけで名前と住所,職業までバレてしまう理由
以降はさくらさんとは関係のない話です。
たまに「住所と名前を登録した覚えがないのに,出会い系の業者から請求書が郵送されて来た」という話を耳にします。どうしてそんなことが可能なのでしょうか。
これは「アンケートに答えるとプレゼントが当たるよ(音符)」という,いわゆる懸賞サイトが黒幕だと言われています。懸賞サイトと出会い系サイトは,じつは同じ業者が運営しているのです。
携帯電話には個体識別番号が存在します。プレゼントが欲しいからといって,懸賞サイトに住所と名前を登録してしまうと,個体識別番号と名前・住所という対応表が作られてしまいます。アンケートの内容に依っては,職業や会社の名前もバレてしまうのかもしれません。
個体識別番号はどのサイトにアクセスしても,同じ番号が通知されます。出会い系サイトは,ほかのサイトで得た名簿を参照することで,個体識別番号から名前と住所を引き出すことができるのです。
上の情報はちょっと古いのかもしれません。最近はもっと手口が巧妙化している可能性があります。恐ろしいですね。
それでも出会いたいあなたへ
「サクラが送りつけてくるメールは機械的に作られたものだし,個人情報は横流しされるみたいでなんだか怖い。それでも出会いたい」と思った人がいるかもしれません。
私が秘訣を伝授しましょう。この方法は古くて新しい方法です。スポーツクラブに通って運動するだけです。体力が許すなら,「重り」を持ち上げる運動をするとさらに効果的です。
つぎにばい菌部屋に行きましょう。おそらく「出会いすぎて困ってしまう」という状態になるはず。回転寿司みたいにつぎつぎいろんな子が来ますから,どの子にしようか迷ってしまうはずなのです。おやおや,何のひねりもありませんでしたね。ごめんなさい(ふめい)。
さて,仮にお付き合いが始まったとしても,ばい菌部屋で出会ったのなら,ばい菌部屋で再会してお別れという悲しい結末を迎えるものなのです。この意味の深さは,経験を積めば分かります。恐ろしいですね(ふめいすぎ)。
それでもしばらくの間,楽しい気分に浸れることには変わりありません。情報機器を捨て去ることで,あなたは自由になれるのです。
関連リンク
2008-03-30 日経ネットマーケティング
日経ネットマーケティングはネット広告の業界誌です。⇒サイト
1年間,定期購読してみることにしました。「そんなもの読んでどうするの?」と思った人がいるかもしれません。私はここ数年,ネット広告の実験を続けています。ちょっと外の様子を知りたくなったのです。
まだあまり読んでいないのだが,感想を少しお話しますね。パラパラめくった雰囲気では,事例集のように見えました。「他社さんはどうしているのかしら?」ということが気になる方には役に立ちそうです。でも同業他社が自社の成功の秘訣なんて教えてくれるわけがありません。嘘はついていないでしょうけれど,肝心なことは書かれていないのかもしれません。
それからこの雑誌,一冊3,500円します。ちょっとしたハードカバーの本に匹敵する価格設定なのです。発行部数がかなり少ないのかもしれません。発行されてからまだ半年くらいだからなのかしれませんが,大手企業の広告がほとんどないのですよ。広告が少ないから,価格を高めに設定しなければならないのでしょう。
価格が高いわりに内容がいまいちって,どこも褒めるところがないような言い方をしてしまいましたね。育てればよいのです。図々しくもこれから載せてほしい記事を要望していこうと思います。
2008-03-23 GATSBY ムービングラバー スパイキーエッジ
某日,行きつけのドラッグストアで「GATSBY ムービングラバー スパイキーエッジ」を買ってきました。⇒商品サイト
以前は同社の「スタイリングワックス パワーファイバー」を使っていたのだが,購入したのはなんと2005年の4月。ようやく使い切ったのです。いやはや長い道のりでした。
さて,ムービングラバー スパイキーエッジの気になる使い心地ですが,セット力は思ったとおりでした。「――パワーファイバー」のときは髪を洗ってもなかなか落ちなくて扱うのが大変でしたが,「――スパイキーエッジ」はシャンプーで落ちやすいようです。それでもさっぱりとは落ちませんが。
気になったのは香りです。青りんごの香りらしいのだが,どうも悪臭だと思うのです。私ね,「過去に嗅いだことがあるような。何の臭いだったかな」と考えてみました。すぐに気付きました。小学生のときのお話です。よく女子が「匂い玉」という怪しげな小物を所持していました。あの匂い玉の臭いなのです。(関係のない話ですが「じょし」って言い方。懐かしいですね。)
私も年のせいかこの頃,夜になると頭が臭くなっているような気がするのですよ(そこのあなたも他人事じゃありませんよ)。だから「青りんご」なんて貧弱な香りじゃなくて,ありがちな「シトラスの香り」でばっちりと誤魔化してほしいのです。
2008-03-20 全文検索システムの導入
SQLiteで実装した日本語全文検索機能をスキャンティ・システムに組み込むことにしました。
<画像の説明>索引付けをいつするか悩みました。今回は「DBデーモン内のモジュール」として動作させることにしました。インデックサは投稿文のクローラとは非同期に動作します。
「ディメンション(dimension)」という機能ブロックの存在に気付いた人がいるかもしれません。いま方式を検討している新機能なのです。日付ディメンション(date dimension)と位置ディメンション(location dimension)の実装を予定しています。実現すれば時間軸方向および空間方向に伸張圧縮した解析ができるようになります。でも,そのまえにN gramベースの全文検索機能を載せる必要があったのです。
さて,未だにこのシステムの正体が分からない人がいるかもしれません。大別するとOLAP(OnLine Analytical Processing,オンライン分析処理)に分類されます。所詮,SQLiteに載せているので本格的なOLAPの足元にも及ばないとは思いますが,本格的になったときに備えて日々,実験を重ねているのです。
»固定リンク »425.ドキュン生活 »Yumi Scanties
2008-03-20 SQLiteで全文検索システムを実装する
SQLiteで,掲示板の投稿文に対する日本語全文検索システムを実装することにしました。全文検索はかなり奥が深く,難易度の高い分野です。決して簡単ではありません。
検索対象の情報量が少ないのならさほど苦労しないのですよ。全情報をメモリに読み込んで,逐次検索すればよいのです。ところが全体をメモリに読み込むことができないくらい大容量の情報を扱う場合,なんらかの方法で「索引付け」をしなければ,探し出すのが難しくなってしまいます。
たとえば,「アルファベット順に並んでいない英和辞書」があったとします。これを使って単語を調べなければならないとしたら,どうでしょうか。大変なことになりそうですよね。単語がアルファベットの逆順に並んでいるのならまだ救い様がありそうですが,「てきとー」に並べられている辞書だとしたら,そんなの使い物になりません。
コンピュータの世界でも考え方は同じです。全文検索するためには,まず情報に索引付けしなければならないのです。ところで,ほとんどすべての商業RDBMSには全文検索のための仕組みが備わっているらしいのですが,今回使うのはSQLiteです。SQLiteにはそんな凝った機能ありませんので,自力で実装しなければなりません。どうすれば良いのでしょうか。そもそもSQLiteにそんなことをやらせて,大丈夫なのでしょうか。
N gramによる全文検索
全文検索における索引付けの方法としてよく使われるのは,「形態素解析」と「N gram」です。今回はN gramを使って全文検索することにしました。業界の人ならおそらく「N gram」と聞いただけで,ピンときたはずです。
ピンと来なかった人のために,ちょっと説明しておきますね。「N gram」のNには任意の数値が入ります。普通は「1 gram」「2 gram」という言い方をします。たとえば「あべまりあ」を2 gramに分割してみましょう。分割した結果は,「あべ」「べま」「まり」「りあ」となります。
「こんな意味不明な単語に分けて,どうして全文検索できるのか分からない」と思った人がいるかもしれません。端折って説明すると,分割した語が使われている位置(記事番号)を記録しておくのです。検索するときはまず分割した語を探して,つぎに分割した語が使われている記事を引き出すのです。
さて,上記の例では「あべまりあ」という平仮名だけが使われた文を考えてみました。現実の日本語文章には,さまざまな文字が使われています。普通,文字の種類に応じて文字の分割数を変えるものなのです。
今回は以下の決まりにしてみました。
- 漢字 ― 1 gram
- ひらがな ― 2 gram
- カタカナ― 2 gram
上記のルールで,「吾輩は猫である名前はまだない」という文をN gramに分解してみましょう。「吾」「輩」「猫」「であ」「ある」「名」「前」「はま」「まだ」「だな」「ない」となります。これらを索引情報としてデータベースに登録しておきます。
今回の方法では品詞を無視します。「名前はまだ」を検索したいときに「はま」と検索する人はいないでしょうが,索引情報には「はま」も登録してしまいます。
リンク表
おそらく飽きずにここまで読み進めた人は,さらなる疑問が湧いているはずです。とりわけリレーショナル・データベースを使ったことがある人なら「N gramに分割した語って,重複だらけになるじゃないのよ」と思うはずなのです。
たとえば以下のみっつの文をN gramに分割してデータベースに登録するとします。
- No.1 「吾輩は猫である名前はまだない」
- No.2 「私は猫が大好きです」
- No.3 「お父さんは犬です名前はカイ」
分割後の語の種類はたくさんありますが,簡単にするために「猫」「名」「です」「犬」だけに注目することにしましょう。索引情報を作りたいのなら,以下の情報を登録できればよいのです。
- 「猫」 → No.1とNo.2
- 「名」 → No.1とNo.3
- 「です」 → No.2とNo.3
- 「犬」 → No.3
ところでリレーショナル・データベースでは,上記のような「列(属性)数が不定個」といったデータ構造を普通は扱いません(普通じゃないときには扱ってしまうこともあります←なぞ)。実際は以下のように格納することになります。ところがこのままではまだ不足なのです。
- 「猫」 → No.1
- 「猫」 → No.2
- 「名」 → No.1
- 「名」 → No.3
- 「です」 → No.2
- 「です」 → No.3
- 「犬」 → No.3
問題になるのは情報量です。SQLiteでは普通,文字列のエンコードにはUTF-8が使われます。日本語2文字の場合UTF-8では6バイト消費してしまうのです。単純に考えて日本語の場合だと「です」という単語が膨大な数,登録されてしまいそうです。容量を節約する方法はないのでしょうか。
素直な考え方として,表を正規化すれば容量を節約できます。分割した語から直接,記事を指し示すのではなく間に「リンク表」を挟むことにするのです。リンク表の列には,「ID値」と「記事番号値」を持たせます。
表の関係を図示すると以下のようになります。
ここまで話を引っ張っておいて,手の平を返すようですが今回の場合,正規化の恩恵はあまりありません。分割後の語の容量は最長で6バイトですが,ディスクの性能によっては容量の増大が問題にならないのかもしれません。その場合,正規化はむしろ有害に働く可能性があります。今回,扱う情報は不変の事実であって,あとで修正されることはありえないのです。たとえば投稿文に「犬」という単語があったとします。それが後に「猫」に修正されることはありません。
SQLクエリ
ようやくSQLの話になります。索引情報を構築するまでは分かったとして,実際にどうやってSQLで記事を検索するというのでしょうか。
データベースに格納した索引情報は,「集合」の要素そのものです。どういう意味なのかというと,数学的には集合演算でいう「積集合」を求めれば良いのです。リレーショナル・データベースは構造上,集合演算が得意でありSQLにも都合の良い演算子が用意されています。
仮に「名前」というキーワードの含まれた記事を検索することにしましょう。まずキーワード自身をN gramに分割します。分割すると「名」「前」となります。つぎに語の出現頻度に対して,語を昇順に並び替えます。語を並び替える理由は,処理効率を良くするためです。数学的には集合の要素は順序を問いませんので,並び替える必要はありません。でも実在するコンピュータで計算させるためには,計算量が少なくなるような工夫をしておかないと,処理効率が悪くなってしまうのです。
SQLiteにはINTERSECTという積集合を求める演算子が用意されています。各語に対してレコードを抽出し,抽出したレコードが指す記事番号の積集合を計算していきます。多少の「揺らぎ」を持たせるためにLIKEで抽出します。たとえば以下のようなSQLになります。
SELECT id, domain, root, no, created, deleted, title, autor, body, ua, host FROM ( SELECT article FROM ( SELECT t2.article AS article FROM ( SELECT id FROM words WHERE value LIKE ? ) AS t1 INNER JOIN links AS t2 ON t1.id = t2.word ) INTERSECT SELECT article FROM ( SELECT t2.article AS article FROM ( SELECT id FROM words WHERE value LIKE ? ) AS t1 INNER JOIN links AS t2 ON t1.id = t2.word ) ) AS t1 INNER JOIN article AS t2 ON t1.article = t2.id ORDER BY root DESC, no
「value LIKE ?」の「?」はプレースホルダです。「?」の個所が,任意の「語」に置き換わるわけです。
最後に
全文検索は非常に奥が深いため,重点となる話題だけをお話しました。
最後に,崖から落っこちるようなことを言ってしまいますよ。今回の方法は,SQLiteには不適だったようです。20万件の投稿文に対して検索させてみましたが,処理速度は遅くないものの索引情報が大きくなりすぎる気がしました。私の設計がマズイからというのが最大の原因でしょうけれど,そもそもSQLiteにやらせてはいけない仕事のような気がしました。
以下,大切なんだけれど漏れてしまったお話を少々。
- 揺れの除去 ― 全文検索で問題になるのは日本語の「揺れ」です。たとえば「フィルム」と言ったり「フイルム」と言ったり,「ボディ」と言ったり「ボデー」と言ったりします。これからを同じコトバとして検索させるため,あらかじめ表記を標準化しておかなければなりません
- 形態素解析とN gram ― じつは過去に形態素解析を使ったバージョンを同じくSQLiteで実装したことがあります。形態素解析は未知語に弱いのですが,N gramは検索漏れがほとんどありません。掲示板の投稿文は言葉遣いがめちゃくちゃなことが多々ありますので,N gramの方が向いていると思います。しかし,索引情報が大きすぎるというわけで,世の中うまくいかないものですね
»固定リンク »420.言語と実装 »コンピュータ-SQLite
2008-03-16 さきほど退院しました
こんばんは,ただいま18時です。先週金曜日から密かに入院しておりました。先週は密かに大変なことになっていたのです。日曜日になって,血液検査の数値結果が改善したので退院してきました。
さて,「経緯を整理すると,数週間前からおさかん爆発が臨界を超えておりついには入院。どれだけ激しかったのやら」と思った人がいるかもしれません。ぜんぜん関係ありませんからね。勘違いしないでくださいね。オラオラ。
病名は政治的な理由により伏せておきますが(なぞ),何やら持病になってしまいそうな気がします(あくまでそんな気がするだけですが)。いやはや人生,山あり谷ありです。
2008-03-05 おさかん係数が高くなりすぎて困ってます
意味不明な件名ですが気にしないでください。内容はさらに意味不明です。
たぶん「春だから」なんだと思いますが,おさかん係数が高くなりすぎてかなり困っています。日中からそわそわしてしまい,どうにも気分が落ち着かないのです。
前回,「ばい菌部屋のロッカーの鍵を持ち帰ってきてしまった」というお話をしました。あの話には続きがあるのです。じつは当日,私は某ばい菌部屋をはしごしてしまったのです。どうも物足りなかったので,おかわりすることにしたのですよ。それで気が済んだのかと思ったら,週の半ばで今度はおさかん爆発です。
たぶん「春だから」なんだと思いますが困ってしまいます。この勢いだと今週末またひと騒動ありそうです。とくに小熊系の人は気をつけてくださいね。万一,見つかったら捕獲されて大変なことになりそうですよ(なぞ)。
2008-03-03 さっきごく軽くばい菌部屋
こんばんは,ただいま22時半です。さきほど市内某ばい菌部屋に立ち寄ってきました。「平日なのにばい菌部屋に行ってきたの?アナタ,気は確か?」と思った人がいるかもしれません。これには理由があるのです。
先週末の出来事です。久しぶりに市内某ばい菌部屋を調査してきました。自宅に戻り,コートのポケットに手を入れたときに「しまった」と思いました。ポケットの中に,ばい菌部屋のロッカーの鍵が入っていたのです。本来なら受付けで返さなければいけないのに,うっかり持ち帰ってしまったのですよ。
すぐばい菌部屋に電話を掛けてみました。「つぎに来るときにでも鍵を持ってきてください」と従業員に言われたのですが,早く返してしまうことにしました。つぎはいつ行くか分からないし,早く返さないとなんだか呪われそうな気がしたのです。(なにしろロッカーってあちらにとっては商売道具でしょ。)
というわけで,お仕事の帰りに軽く立ち寄ってきました。いやはや,ヨコ漏れです。
2008-03-02 NEC LaVie L LL550/7D BIOSアップデートの罠
NEC LaVie L LL550/7DのBIOSをアップデートしてみました。新しいBIOSが公開されたのは2004年6月だそうです。LL550/7Dは2003年の秋モデルですので,発売されてからおよそ半年後に公開されていたのですね。いやはや,ぜんぜん気づきませんでした。
ダウンロード
新しいBIOSはNECのサイトからダウンロードできます。
- 件名:LaVie L(LL530、LL550、LL350、LL570、LL500、LL350、LL390) LaVie G(LG24NR、LG22NR、LG18NR、LG20NR) BIOSアップデートモジュール
- URL: http://121ware.com/psp/PA121/121ETC2/CRM/s/...?modId=3452
- モジュール番号:3452
ダウンロードページのURLが変わってしまっているときは,自力で探すことになります。モジュール番号で検索してみてください。サイトの使い勝手がどうも悪いみたいで,製品の型番で検索してもダウンロードのページに辿り着けませんでした。たぶん「仕様」なんだと思います(なぞ)。
今度はファンが回りっぱなし
BIOSをアップデートするとUSB周りの挙動が安定し,冷却ファンの動作が変わるそうです。LL550/7Dを使っている人なら分かると思うのだが,この機種は冷却ファンが騒がしいです。
「回り始めたかと思ったら止まって,しばらく止まったままかと思ったらまた回り出して‥‥」を延々と繰り返すのです。廉価な製品にありがちな動作なのだが,我慢できない人もいるかと思います。
BIOSをアップデートしてみたのだが,今度はファンが回りっぱなしになりました。てっきりファンが静かになるのと思っていたのに,反対に五月蝿くなってしまったのです。どういうことなのでしょうか。私はBIOSアップデートで対処された不具合を読み直すことにしました。
空冷ファンのオン/オフを頻繁に繰り返す場合がある。
たしかに回ったり止まったりはしなくなりましたけれど,だからといってまさか回しっぱなしにするとは‥‥。最初から期待していませんでしたが,悪い意味で期待に応えてくれましたね。
嫌がらせにしかなっていないのですが,この動作はたぶん「仕様」なんだと思います(←2回目)。
»固定リンク »410.コンピュータ »NEC LaVie L LL550/7D
2008-03-02 マイクロソフトからお年玉をもらう方法
以前,「Microsoft Office Professional 2007を購入した」というお話をしました。
お話するのを忘れていたのですが,Officeを買ったときたまたまキャッシュバックキャンペーン中だったのです。先日,預金通帳を記帳してきたら,1月中旬に1万円が入金されていました。
<画像の説明>マイクロソフトからの振込です。ちょっとしたお年玉なのです。
私ね, Microsoft Visio 2003を買ったときにもキャッシュバックしてもらったことがあります。そのとき気づいたのだが,Officeは年末に買うとお得なのです。年賀状の時期と関係があるらしく,キャッシュバックを利用すると5,000円から1万円安く買うことができます。(お恥ずかしながらヨドバシには毎週行っているのに,ソフト売場にはあまり足を運ばないのでそれまで気づきませんでした。)
Officeのパッケージ版を買おうとする人はあまりいないのかもしれませんが,覚えておくと得するかもしれません。私はお金になる話が大好きなのです(毒)。