2012年5月14日月曜日

婚活奮闘記 lv.7 ~オートメーション化

だいぶ、Lv.6から日が開いてしまいましたが・・・
今回はあまり推奨できないネタです;

自分なりに、色々試行錯誤した中の一つですが、
結果としては上手くいくまでの労力と、その後の結果に開きがありすぎたので、
よっぽど改善の妙案でもない限り、真似しない方がいいですよと先に言っておきます。

・・・まあ、失敗談として参考にしてもらえればと思います。


さて、Lv.6にて、申し込みメールの雛形を作り、条件ごとにパターンを変えることで、なるべくコピペメールと思われないような申し込みメールを送ることを考えました。


その後しばらくして、延々と新規女性にパターンごとの組み合わせメールを送りながら、ふと思ってしまったのです。

これ、自動化できるんじゃないか?

と。
よほど特徴的なことでも書いてなければ、結局自分でも年齢とか性別とか、趣味・出身地くらいでメールパターンを選ぶわけで、これくらいなら自動判断も不可能じゃない!
と思ってしまったわけです。

ってことで、プログラミング開始。
Webページの取得とかはあまり詳しくなかったんですが、C#でも可能なんですね。
.NET Frameworkのクラス・ライブラリでもWebアクセス系のライブラリがあって、ひとまずこれでログイン→ページ取得→ページ解析を行うことに。


ページ解析はゴリゴリと文字列比較でタグ判定を行いましたが、この辺はもっと楽なやり方があったのかも・・・;
というか、これだけWeb系のライブラリとか充実しててないことはないと思うんですが、当時はひとまず自動ログイン&自動ページ取得&自動テキスト送信まででいっぱいいっぱいで、そこを調べて・・・って労力がわきませんでした。


と、いう感じで、まずは定期的にサイトへログイン→女性の新規入会者のリストを取得するプログラムを作成!


ここからは時間はかかりますが楽な作業です。
ひたすら、ページの内容に合わせて、こちらに必要なデータを取得していきます。
登録名・年齢・居住地・出身地・趣味・家族構成・・・etc
この辺のデータを、今度は自分が扱いやすい形にして、かつローカルに保存できるようにします。


ローカル保存するデータは、後で自分がメンテナンス等する場合に見やすいようにテキスト形式がいいなぁってことで、XML形式にして保存しました。


<personal>
<edit no="0">
<name>みじんこさん</name>
<date>2008/04/01</date>
<time>14:50</time>
<locate>
<now>東京都</now>
<old>広島県</>
</locate>
<like>料理、ファッション</like>
</edit>
</personal>

まあ、こんな感じですねw
入れた値はサンプルってことでてきとーですよw 実際にはもう少し種類もありますし、入り組んでます。

で、サイト巡回してXMLデータを吐き出したら、今度はそのXMLデータを読み込んで、送信用テキストを作ります。

ここで、第一の問題は趣味の部分です。
趣味は自由回答の部分も多く、

「身体を動かす事、美容、温泉、料理など、好きな事はたくさんあります☆」

みたいな崩した文章であることも多いです。
XML保存時はまるまるテキストとして保存しちゃいますが、メール作成用の解析に使う時はここがすごくややこしくなります;

特に、自分が選択肢として使用したい「ゲーム」っていう単語。

なんでわざわざ半角カタカナを使うんだ!

もう、直接会ったら説教してやりた・・・ いやいや; 熱くなり過ぎました;
でもほんと多いんですよ。
ファッションとか、ゲームとかカフェとか使ってる輩が・・・
(↑私怨にて、もう輩呼ばわり;)

特に、まだ『ゲーム』ならいいですよ。
これが、『ゲーム』とかになったり・・・

違い分かります?


伸ばし棒だけが、全角なんですよ!


ほんとに、何を考えてるんだと・・・ いやいや、熱くなり過ぎました;

他にも、「映画」「映画鑑賞」とか、文書比較の際はこの辺結構気を使いましたね。

居住地も、
関東近辺って書いてる人や、神奈川県だけの人から、神奈川県横浜市西区まで書いてる人もいて、一概に「ご近所ですね!」パターンかどうかを判別できない;
ので、住所を調べて自分の近くの市町村だけをリストアップした地名リストを作成し、そこからの文字列比較を行いました。
例えば、「東京都」の人には「ご近所ですね!」パターンに行きませんが、「東京都大田区」の人には「ご近所ですね!」パターンが行くような感じです。

比較パターンは、Lv.6にて考察したものがほとんどまるまる適用できるので、
後はその比較がちゃんと出来るように文字列の絞込みをするのが大変で、パターンマッチはわりとスムーズに行きました。

そして、運用開始当初は・・・

まず、当たり前ですが人力では有り得ないスピード感に、驚愕しますw
そのことで問題も起きました


「新規登録してから2分と経たないうちに返信が来てびっくりしました」


・・・こんな返答メールが返って来たのです。
幸いにも、Lv.4Lv.5でプロフィール自体を頑張った後だったせいか、この返答をくれた人からは、

「多少、コピペメールなのかとも思ったけど、気になったから返信しました」

とも言ってもらえたんですが、
これはまずい・・・ってことで、巡回の間隔を30分ごとに変更。
それでも、例えばたまたま平日の深夜3時くらいに登録した方とかだと、まず間違いなく自分が一番のりになれます。
これ、意外と大きい強みでした。

メールを返してくれた方の一人と、結構突っ込んだ話もできるようになったので聞いたんですが、

「やっぱり、登録して一週間くらいは何百通っていうメールが来るんで、最初の20通くらいは文章までちゃんと読むけど、それ以降はよっぽど印象的なタイトルでもない限り、開くのも面倒になった」

と。
この20通くらいは人によって、増減すると思うんですが、

最初の10人になることはかなり大きなアドバンテージになる。

これは実感として、素直にそう思えます。

しかし、これが大きな落とし穴になるとは・・・;

そう、「最初の10人はちゃんと文章を読んでもらえる」可能性が限りなく高い・・・
つまり、自分の小細工が発覚してしまう危険性も高くなる、ということです;

もちろん、こいつコピペメールを絨毯爆撃で送りつけてるな!
と相手に思われても、その人が自分にその旨送ることはそうないと思うので、自覚するまでは時間がかかるのですが・・・

運命のメールは、わりと早く送られてきました。

「名前や文面を少し変えただけでのメールを何人にも送るのは迷惑です!」

そういうメールを受け取ってしまったのです;
それも、改めてプロフィールを見ると、すごく自分が気になる方から・・・
その人がどうして分かったのかは定かではないですが、後から考えればやはり色々と穴のあるソフトで、

・意図しない条件分岐で、プロフィール相手からは違和感のあるメールが届くことがある。
(この辺は気がつく度に直したんですが、例えば趣味が一つも合わないと、県が違うのに「ご近所ですね」パターンが選択されるといった感じの)

・名前と新規取得時の日付から個人を特定していたので、後から名前変更されると新規登録者と誤認してしまう。

・また、単純に同じ人が新規登録し直した場合は判別できない。


特に後者二つが問題で、同じ人に何通も送ってしまうので、自動メールだとばれやすかっただろうなぁ・・・と思います;

それに、条件分岐もそうなんですが、運用しながらのデバッグになってしまうので、続けていけば精度も上がっていったとは思うんですけど、その間に少しずつ信用を失っていくプレッシャーに耐えられなかった、というのが正直なところです。

どれくらいいるかは分かりませんが、男性に比べて女性は友達同士でサイトに登録したりすることもあるとか。
この場合、片方に悪事がバレると、自動的にもう片方からもブラックリスト扱いになります;

こういう影響を考えると、リスクの方が高いなと判断しまして・・・
そっと、開発を中断したのです。

ただ、やってみてすごく思い知ったことがあります。
繰り返しになりますが、それが、

最初の10人になることはかなり大きなアドバンテージになる。

です。
これは自動化でないと、中々達成できない条件ではあるんですが、

例えば土曜の夜とか、自分の中で一番サイトを監視できる時間帯を決めて、
(これは逆に言えば、その時間帯がお互いオフな確率の高い時間帯ということで、後々お付き合いまで考えた時に、こういう時間帯が合ってるのはけっこうプラスにもなりますw)

その時間帯中は、いつもよりマメにサイトを巡回し、この人!と思った人には早めにメールを送る!を心がけると、人力でも最初の10人に滑りこむ確率が高くなります。

ので、こちらは結構お勧めですw

自動化の方は・・・
今振り返ると、相手プロフィールの解析から申し込みメールの作成を行うのって、ある意味AIに近いと思うんですよね。
口語の文章解析・複雑な条件分岐・重みつけ・・・等々、Googleとかでもやってそうw
その辺のプログラミングに造形の深い人が作ったら、もっと精度高く作れるのかなぁとか、そういう意味での実験的な好奇心はありましたが、

当時の自分がそうであったように、
人生かけて切実な人も集うあの場で、「出会い」以外の目的を持つ者の干渉は邪魔以外の何ものでもありません!

自分の試みも、切実故に行ったものだったんですが、
「効率化」を目指しすぎて、何かいろんなものを失った・・・
そんな、骨折り損のくたびれ儲けだったのかなぁと、今振り返ると思うばかりなのです;

2 件のコメント:

  1. 自動化面白そう! しかも手段と目的が入れ替わってないのがすごい! 自分なら間違い無くプログラムに傾倒してますよ。PlaggerとかPipesとかLucene、kakasi、mecabu、Hadoopとか使ってみたいネタは山程ありますし。まぁでも半自動ぐらいにしておくのがいいんでしょうねぇ。

    返信削除
    返信
    1. いや、でも、自分も手段と目的が入れ替わりそうな誘惑はありましたよw Web系のブログラムも詳しいんですねぇw ↑とかほとんど知らないのばっかりでしたけど、当時知ってたらまた色々やりようもあったのかなぁw

      削除

このブログを検索