リアルタイムにTwitterのつぶやきの話題推定をする技術「どたばたかいぎ」研究途中報告

お久しぶりです。えりっくです。実装に関しては別エントリにまとめることにします。
筑波大学大学院システム情報工学研究科産学間連携推進室にて、ぼく含め3人で研究をしています。ここでの研究は企業と連携をとり、社会に還元することを目的としています。もし実用化できれば、Twitterユーザたちにサービスとして展開することも考えています。 既にこの研究は既にニコニコ大百科(有限会社未来検索ブラジル様)、Pixiv百科事典(Pixiv様)の記事データ提供によるご協力を頂いております。

で、どういう技術なの。

タイトルの通りつぶやきからその話題を推定する技術の研究をしています。
この研究がうまくいくと、TwitterのTLに張り付く必要がなくなります。

Excelわからんー。こんなのPerlでゴリゴリ書いたら一発ですよ」

とあなたがつぶやいたら、

「Wordの出来の悪さに比べてヤツの出来はやばい。Microsoft本気出してる。」
PerlよりRubyにしませんか(´・ω:;.:... 」

みたいなつぶやきがだれかさんによってTLに流れた時に勝手にあなたに通知されるようになります。
映画サマーウォーズの1シーンにもあるように、TLのつぶやきが話題ごとにまとめられて表示されるユーザインタフェースTwitterクライアントもできるかもしれません。夢がひろがるね。

アイディア

一般的に、普通はtf-idf(単語が出てきた回数)だとか使ってその語彙分布から文章の話題を推定します。ところがTwitterの文章は140文字以内なのでこういうアプローチが使えない。じゃあどうするか。

つぶやきに含まれる特徴的な語の上位概念・関連概念を予め用意しておき、つぶやきに含まれる単語1つ1つの上位概念・関連概念を探索して取得する
っていうのをおもいつきました。例えば「Erlang」という単語には「関数型言語」「オープンソース」「並行計算」「Erlang」「プログラミング言語」が対応するように辞書を用意しておけば、「Erlang」を含むつぶやきの話題は「関数型言語」「オープンソース」「並行計算」「Erlang」「プログラミング言語」である、と推定ができます(いろいろ端折った)。っていう。仕組み自体は至極簡単でしょ。「おもいついた」っていうのが恥ずかしくなるくらい。

表記ゆれ

ところで、日本語には表記ゆれが存在しますね。「Google」「GOOGLE」「グーグル」とか。「おっぱい」「乳房」や「一次メモリ」「主記憶装置」「メインメモリ」といった同一概念のものもあります。これらを同一視させたいですね。つぶやきから特徴的な単語を抽出したあとに、それぞれを違う単語に置き換えられないか確かめ、変換します。

からのー

変換された特徴語たちを使い、データベースからそれぞれの上位概念を取得して...その先はちょっとまだ検討中です←
最終的に「このつぶやきとこのつぶやきは話題が似てる度〜%だ!」というような推定ができるようになりたいな、と思ってます。その上位概念が抱える単語数が多ければ多いほど重要度を下げたりとかいろいろ考えてるんですけどね。いままでお話したことを図で書くとこんな感じ。


理想と現実

「上位概念なんてどっから持ってくるんだよ」
うん、言うと思った。でもこれみんなよく知ってるアレを使うんですよ。
Wikipedia
ニコニコ大百科
Wikipedia
「関連項目」だとか「カテゴリ」あたりから上位概念とか関連概念を引っ張り出してきます。あと記事名も取得して持っておきます。これを文章中から特徴語を抽出するために使います。
WikipediaMySQLのダンプをPerlのようなもので殴ってデータ生成
ニコニコ大百科はデータ提供してもらって自前パースしてPerlのようなものd(ry
Pixivもデータ提供してもらってPerlの(ry
快く承諾していただいたブラジル様とPixiv様に感謝。

頑張ったお陰でいいかんじの概念データベースが出来上がりました。例えば

ももクロ百田夏菜子ちゃんが可愛すぎて生きるのが辛い。あのえくぼは本当にずるい。」

というつぶやきからは

が取得できました。

いまどこまで実装できてるの?

User Streamsからつぶやきを拾い、上位概念をつぶやきごとにリアルタイムに表示するところまでできてます。プロトタイプをPerlで書いてたんですが、途中からErlangに移行しました。別エントリに書く予定です。

今後の課題

  • 曖昧さのある単語の推定(特に略語。ACは「交流電源」なのか「公共広告機構」なのか)
  • 未知概念のオンライン学習
  • 話題推定アルゴリズムの更なる研究
  • つぶやきの話題類似度比較アルゴリズムの研究