|

対話型Blogシステ
ムとは,サーバからのPush型ネタ配信と,メーリングリストを組み合わせた,Blog更新促進システムである.サーバは,インターネットから収集した情
報と,ユーザの過去の返信履歴を学習し,ユーザが興味を持つと思われるネタを,メールで必要なユーザのみに配信する (図2.1.1
サーバがニュースから話のネタを選んで,興味をもちそうなユーザにのみメーリングリストで話題を配信する).
ユーザはこのようにして送信されたメールに対して,返信するだけで自分のBlogを更新できると同時に,同じネタが配信された他のユーザに対して,自動
的に自分の意見を伝えることが可能となる.返信するだけで自動的に自分のBlogを (代理)
更新してくれたり,自動的にバックトラックしてくれるのはMLOGと名付けたサーバである.これにより,既存のトラックバックだけで得られない豊かな,つ
ながりやすいユーザ間コミュニケーションを構築することができる.
本システムは,ネタおよびメールに関するさまざまな機能を有するMLOGサーバを中心とした,図2.1.2対話型Blogシステムの全体構造に示すよう
な構成となる.ユーザはあらかじめ,メールアドレス情報,Blog情報などを登録しておくことで,ネタ配信サービスとメールによるBlogの代理更新サー
ビスを利用することが可能となる.
ネタに関しては,ネタの自動生成,ネタの自動マッチング,ネタの配信,返信の分析などがある.また,Blogの代理更新に関しては,Blogの外部から
の更新,トラックバック送信,携帯電話への対応,複数Blogへの対応などがある.さらにメールに関する処理として,メーリングリストの自動生成,管理な
どがある.これらの連携に関して,図2.1.3
ネタ生成から,Blogユーザ同士がつながっていく流れの例に,MLOGと,ユーザA,ユーザBの動作の流れと処理フローを説明しておく.
図2.1.1
サーバが興味を持ちそうなユーザに話題を配信 図 2.1.2 対話型 Blog システムの全体構造

図2.1.3
ネタ生成から,Blogユーザ同士がつながっていく流れの例
@【MLOG】ネタ生成,メーリングリスト生成,メール配信,管理者
Blog更新
A【ユーザA,ユーザB】メール受信
B【ユーザA】メール返信
C【MLOG】メール受信,ユーザAのBlog更新,管理者Blogへトラックバック
D【ユーザA,ユーザB】メール受信
E【ユーザB】メール返信
F【MLOG】メール受信,ユーザBのBlog更新,管理者BlogとユーザAのBlogへトラックバック
開発にはVine Linux 3.2,MySQL
4.0.25,Postfix 2.0.25,Ruby 1.8.2,Apache 2.0.50,PHP
4.4.1を用いた.本システムの各モジュール間の情報の受け渡しは基本的にデータベースを用いる.そのために本システムでは,MySQL
4.0.25を用いた.データベース内で用いる文字コードはUTF-8とした.
MLOGによって自動更新が行なえるBlogは,SeesaaBlogとLivedoorBlogである.SeesaaBlogへの投稿を実装したクラ
スではXML-RPCを利用し,LivedoorBlogへの投稿を実装したクラスでは,PHPで実装されたAtomAPIを利用した.
本システムでは,新たなネタが配信されるたびに新たなメーリングリストが生成される仕組みになっている.本システムはMTAとしてPostfixを使用
しており,各メーリングリストのアドレスはPostfixのメールエイリアス機能を使用する.ネタが生成されるたびにメールエイリアスが追加され,
newaliasesを実行することで,Postfixに設定の変更が反映される仕組みとなっている.
なお,本システムでは,ネタごとに配信ユーザが決まるのではなく,メールごとに配信ユーザが対応するようになっている.すなわち,メールを受信すると,
そのメールに対してユーザの嗜好を示すキーワードとのマッチングを行ない,適合するユーザを配信対象ユーザとする.これによってよりきめ細かいコミュニ
ティ作りを狙える.
ネタに関しては,(1)自動生成,(2)手動生成,(3)ユーザ提供の3つの手法が考えられる.当初,(1)を目標としたが,自然言語処理の難度が非常
に高く,開発期間内での実装が困難であったため,(2)を適用することにした.ただし,すべてを管理者が考えることは無理なので,手動生成時の補助機能と
して,インターネット上で話題になっているニュースを抽出するスクリプト「ネタ帳」を作成した.ネタ帳では,RSSでニュースサマリを提供している多数の
ニュースサイトを巡回し,取得ニュースを分析する.RSSに対応していないサイト,たとえばGoogleニュースなどは,独自にそれらをRSS化している
サイトや,現存するRSS化ツールを経由して取得した.
ネタの題名,本文を送信すると,そのネタの特徴となるキーワードを設定し,配信するユーザを選択する.キーワードは形態素解析器MeCabを用いて抽出
され,設定される.なお,投稿者 (管理者) は,フォーム上で結果のキーワードの追加・削除を行なうことができる.
ネタを配信する対象となるユーザは,ネタに設定されたキーワードとユーザに設定されたキーワードのうち共通するキーワードが閾値を超える場合に選択され
る.また,投稿者は配信するユーザを自由に追加することができる.各ユーザの興味キーワードは過去の返信歴から学習される.ただし,共通するキーワードか
ら配信するユーザを選択する機能は,現在未実装であり,今後の課題である.
ネタ投稿者に対して,有用なニュース情報を提供するために,ニュースランクを算出する.ここでは多数のニュースサイトで掲示されているニュースほど,注
目度が大きいニュースと定義し,それをニュースランクという値で算出する.ニュースランクを出すために,ニュースに含まれるキーワードの重みを用いる.
ニュースランクは,ニュースに含まれるキーワードを抽出し,それぞれのキーワードランクを総和したものとする.つまり,キーワードランクの高いキーワー
ドを多数含むニュースほど,ニュースランクが高くなる.以下に最近の典型的な例を示す.ここではランクの高くなってしまう一般語の排除が問題となった.
ニュース: 民主党,ライブドア事件で,引責問題へ
キーワードランク: 6 1 6 5
ニュースランク: 6+1+6+5=18
本システムにより,これまでになかったBlog間の連携が生まれ,Blog全体の活性化が促進できると同時に,ユーザの恒常的なBlog更新の手助けに
なると思われる.
|