今更だけどmixi日記キーワードランキングのお話
日記キーワードって私も結構面白い機能だと思います。世の中で言及されていることがなにか、一定の指標で見ることができるので。(ただ、得られる情報はやはりmixiにフィルタリングされているし、割と雑多ごとが多く、「重要な情報」ではないことは確かですかね。大まかな波を見渡すことはできても、魚を捕まえることはできない、というカンジ(?))
mixi日記キーワードランキングの秘密 | mixi Engineers' Blog
- 日記の本文を自然言語処理(形態素解析)して名詞のみを抽出する。
- 特定の名詞が頻繁に連続する場合、それを複合名詞として合体させる。
- 頻度が高い語を選ぶ。
- そうすると一般語ばかり選ばれてしまうので、対象日以外の日の頻度に応じてペナルティをかける。
- そうすると顔文字や絵文字などの無意味な語が多く選ばれるので、字種や長さに応じてペナルティをかける。
- 表記揺れで集計がぶれることがあるので、似たような文字列は頻度を合算する。
うんうん、そうですよね。
形態素解析使ったアプリってなんか作ってみたいんだよね。*2やっぱり人が何言ってるかとか、文章いっぱい集めてみたらどうなっていたのか、とか面白いなーと。
そういった意味で、
それでもとても精度が高いランキングを生成できているという自負があるのですが、その原因の第一はおそらくmixiの日記という良質なコーパス(自然言語処理の対象データ)が利用できることにあると思います。一般的なWebサイトではそもそも日付などの時間情報を用いたランキングを作ることは困難ですし、ブログをクロールする戦略ではノイズが多すぎて、信頼できる記事を一日に数10万件も集めるのは難しいでしょう。
mixi日記キーワードランキングの秘密 | mixi Engineers' Blog
そうそう、実際コレですよ。使える素材がいっぱいあるっていいですねー。技術者は楽しいんだろうな。
先日、ドラマ「ライフ」を見た次の日mixiにアクセスしたらキーワードランキングに「ライフ」が入っていたので詳細を見てみたら、意外とセカンドライフの話題も多かったりとか・・・まあ結構その辺のノイズは自動化ゆえに仕方のないことなのかもしれないですが。
キーワードのランキング作る際には、そういう日記のキーワードは「セカンドライフ」になっていても、「このキーワードについて書かれた日記」を表示する際にはやっぱり全文から部分一致という方法なんでしょうか?ノイズ除去の段階で日記一覧を生成しておけばこのあたりも解消できるのかな、と思ったり。まぁでもそう簡単にはいかないか^^;
形態素解析を用いてる的なものは、はてなダイアリーの「最近言及したキーワード」にもありますよね。これも好きだけど全部がでっかくなったりするときもあったりしてちょっと面白い。
と、まあ戯言エントリーでした。