Wordlogue: 頻度付き語彙列を用いたブログの分類と検索

PDF
長尾 確
名古屋大学 情報メディア教育センター
東中 竜一郎
NTTコミュニケーション科学基礎研究所

アブストラクト

ブログ内のテキストへのタグ付けとソーシャルブックマークとの連携により、頻度付き語彙(複合語を含む)列によってブログエントリーの特徴を表現し、そのXML表現をRSSに含めて配信することにより、ブログの分類と検索を支援する仕組みを提案する。このシステムを、Wordlogue(ワードローグ)と呼ぶ。Webブラウザ上で任意の語彙にアノテーションを付与する仕組みによって、形態素解析された文の任意の要素を容易に結合し、頻度付き語彙列を構成するインデックスの一部とする。このとき、ソーシャルブックマークを検索してマッチする語彙を選択することもできる。ブログ検索サービスのクローラでも同様なことが可能であると思われるが、それをしない理由は、ブログの著者が自分で操作した方がきめ細かな調整が可能で、自分のブログに興味を持たせる手段にもなるからである。Wordlogueはサーバーで動作し、ブログエントリーのテキストを送信すると、形態素解析を行ってタグ付きのテキストを返す。その結果をインタラクティブに操作し、ソーシャルブックマークとの照合などを行う。さらに、それら操作の結果を受け取ると、サーバーは頻度付き語彙列を可視化した図を生成し、HTMLタグのコピーペーストによって任意のブログに貼り付けることができる。

1 はじめに

ブログ内のテキストへのタグ付けとソーシャルブックマークとの連携により、頻度付き語彙(複合語を含む)列によってブログエントリーの特徴を表現し、そのXML表現をRSSに含めて配信することにより、ブログの分類と検索を支援する仕組みを提案する。このシステムを、Wordlogue(ワードローグ)と呼ぶ。

Webブラウザ上でブログに含まれる任意の語にアノテーションを付与する仕組みによって、形態素解析された文の任意の要素を容易に結合し、頻度付き語彙列を構成する。このとき、ソーシャルブックマークを検索して関連記事の多い語の情報を参照することもできる。

いわゆるブログ検索サービス(たとえば、テクノラティ)のクローラでも同様なことが可能であると思われるが、それをしない理由は、ブログの著者が自分で確認しながら作成する方がきめ細かな調整が可能で、自分のブログに興味を持たせる手段にもなるからである。

また、頻度は単純な出現頻度だけでなく、照応や省略のアノテーションも考慮して、代名詞や主語等の省略によって参照されている語も重複して出現しているものとみなす。これは、本来重要であるべき語の出現頻度が少ない場合に、重要性を正しく反映させることができる。頻度が同じ語に対して、ソーシャルブックマークに関連する記事が多い語の重要性を高く設定することもできる。

Wordlogueはサーバーで動作し、ブログエントリーのテキストをブラウザ上で入力すると、形態素解析を行ってタグ付きのテキストを返す。その結果をインタラクティブに操作し、ソーシャルブックマークとの照合などを行う。さらに、それら操作の結果を受け取ると、サーバーは頻度付き語彙列を可視化した図を生成し、XML-RPCを使って、自分のブログに送信することができる。

Wordlogueサーバーはブログの更新情報を含むRSSをトランスコードし、頻度付き語彙列の情報をRSSと統合する。それにより、ブログ分類・検索サービスをより高度にすることができる。

2 Wordlogue

一般にブログにはカテゴリーが付与され分類に利用されているが、ブログエントリー内に複数のトピックが含まれることもあるため、単一のカテゴリーに属するには不適切な場合がある。

そのため、ブログエントリー内の任意の語(あるいはその上位語)がそのエントリーを代表するキーワードになり得ると考え、テキストを解析して内容語を抽出し、出現頻度の高いものを選択するという手法が考えられる。

しかし、一般に同じ人間が同じ文脈では同じ対象や行為を表すために同じ語を用いることが少ないため、単純な出現頻度では中心的な話題が反映されないことがある。

また、通常の形態素解析では、できるだけ詳細に解析するため、必要以上に細かく文を分解することが多いが、たとえば、固有名詞や書名などはより細かく分割すべきではないだろう。つまり、そのような語をまとめて一つのものとして扱う必要があるだろう。

そこで、形態素解析された結果に、比較的容易な手段で言語構造に関するアノテーションを施し、より精度の高い(出現/被参照)頻度付き語彙列を生成する手法を提案する。この手法および実装されたシステムをWordlogue(ワードローグ)と呼ぶ。

Wordlogueは、ブログオーサーが、ブログエントリーを投稿する際に、まず形態素解析を行い、その後、語の分割・統合、代名詞の照応、用言の主語・目的語の省略に関する言語的アノテーションを付与する仕組みを提供する。その結果はRDF形式でデータベースに保存されRSSをトランスコードする際に利用される。

さらに、XMLデータから頻度付き語彙列を生成し、それをヒストグラムとして可視化した図をブログに追加することができる。この図は、Wordlogueサーバーにリンクされており、ブログエントリーに関する詳細な情報を閲覧することができる。

Wordlogueのさらなる特徴にソーシャルブックマークとの連携がある。これは、del.icio.usなどのソーシャルブックマークサービスにすでに登録されているキーワードとWordlogueデータを照合し、ある語のブログ内の頻度だけでなく、ソーシャルブックマークにおけるその語の位置づけも知ることができる。

3 アノテーションウィザード

Wordlogueで操作するアノテーションは、基本的に2つに分けられる。一つは文の分割および内容語の判定で、形態素解析結果を操作し、複合語の統合(たとえば書名や固有名詞などは一語にする)や未知語への品詞の付与を行う。もう一つは、照応や省略に関する、語間のリンクである。

言語的アノテーションには専用ツールが必要である。われわれは、以前から言語的アノテーションのためのクライアントアプリケーションであるアノテーションエディタを開発している。今回は複雑な操作を必要とするエディタではなく、より簡易的なものとして、Web上のウィザードを作成した。これをアノテーションウィザードと呼ぶ。

アノテーションウィザードの利用手順は以下の通りである。

  1. Wordlogueにログインし、文章を書く(図を参照)。ブログサーバーのXML-RPCのURLとブログIDをあらかじめ設定しておく。

  2. 次に、ブラウザの解析ボタンをクリックして、形態素解析結果を閲覧する。このとき自動的にソーシャルブックマークが検索され、関連記事の件数が表示される(図を参照)。また、ソーシャルブックマークサービスの提供する関連記事一覧へのリンクも付与される。形態素解析には、奈良先端科学技術大学院大学で開発された茶筌を用いている。また、ソーシャルブックマークはdel.icio.usを用いている。

  3. ここで、形態素解析結果を修正する。これは、主に、形態素解析で必要以上に分割された複数形態素を結合することによって行われる(図を参照)。この図では、Wordlogueという単語が文字ごとに分割されてしまったので、間の空白を削除することで一語に修正された。この場合、結合前の各形態素の属性は保持されない。形態素解析結果の修正に応じて、ソーシャルブックマークの検索結果も自動的に変化する。

  4. 次に、未知語への品詞付与を行う。これは茶筌の採用している日本語品詞体系をリスト表示して、適切なものを選択することによって行われる(図を参照)。

  5. 次に、代名詞の照応に関するアノテーションを付与する。これは、代名詞をその先行詞(名詞)の候補で置き換えた文(候補が複数の場合は、複数文)を表示して、適切な文を選択することによって行われる(図を参照)。該当無しという選択肢もある。置き換えた文では、置き換えられた名詞は赤い文字で表現される。

  6. 次に、用言の主語と目的語の省略に関するアノテーションを付与する。これも照応の場合と同様に、省略語(名詞)の候補および助詞を挿入した文(これも候補が複数の場合は、複数文)を表示し、適切な文を選択する(図を参照)。このとき、挿入された部分は、青い文字で表現される。

  7. 最後に、簡易表示された頻度グラフを確認して、内容を確定する(図を参照)。任意の段階に戻ってやり直すこともできる。確定された内容から、より視認性のよいヒストグラムをSVGを用いて生成し、JPEGイメージに変換して、エントリーのテキストと一緒に、XML-RPCを用いてブログサーバーに送信する。ブログエントリーは図のようになる。ヒストグラムのバーには色が付いており、赤いバーは、本文中に3回以上出現したものを示し、緑のバーは、ソーシャルブックマークに関連記事が存在するものである。ブログサーバーへのエントリーの登録と同時に、すべてのアノテーション情報をRDF形式でWordlogueデータベースに登録する。

アノテーションデータはXMLおよびRDF形式でデータベースに登録される。このときオリジナルのブログエントリーとアノテーションとの関係はRDF形式で記述される。ブログエントリー間の類似性などの計算に利用される。

4 ブログの分類と検索

Wordlogueを用いることによって、ブログの分類と検索を高度化することができる。たとえば、ブログの分類にソーシャルブックマークのタグ(あるいはキーワード)が用いられているが、同じコンテンツに複数のキーワードが付与されている場合、どのキーワードが内容をより正確に表しているかは明確ではない。

Wordlogueは、ブログエントリーの詳細な言語情報を用いることによって、ブログサービスの高度化を実現する。そのための重要な機能が、RSSトランスコーディングである。

4.1 RSSトランスコーディング

ブログの特徴として、RSSフィードの機能を用いて、ブログの更新を通知し、検索やマイニングを行うことができる点が挙げられる。ただし、RSSに含めることができる情報はタイトルや本文(の一部)やDublin Coreで規定されているメタデータエレメントに限定されている。

われわれは、ブログサーバーに手を加えることなくRSSを拡張し、語や文の構造、およびソーシャルブックマークへのリンク情報に基づいて、ブログの分類や検索を高度化する手法を開発している。それは、Wordlogueサーバーに蓄えられた情報に基づいて、ブログの生成するRSSをトランスコードしてからフィードする仕組みである。このトランスコードされたRSSを拡張RSSと呼ぶ。

WordlogueサーバーはRSSリーダーやブログ検索サービスからリクエストを受け、ブログサーバーから得られたRSSにWordlogueデータが付与されたエントリーへのリンクが含まれている場合に拡張RSSを生成して送信する。

拡張RSSを受け取ったサーバーやRSSリーダーは、Wordlogueの情報を用いて、自動的にソーシャルブックマークに登録したり、ブログエントリー間の類似性を計算することなどができる。

5 今後の課題

拡張RSSを利用したサービスはまだ一般には存在しないので、その仕様や、WordlogueサーバーのAPIを公開し、運用を推奨する必要がある。WordlogueサーバーのAPIはXML-RPCを利用して実装されている。

Wordlogueデータは、ブログエントリーに対するアノテーションという位置づけであり、そのアノテーションの再利用を考えるべきである。たとえば、形態素および照応や省略の言語情報を用いたブログの要約、言い換え、翻訳などが考えられる。これには、セマンティックトランスコーディングの技術が利用可能である。またWordNetのようなオンライン辞典の作成に貢献することができるだろう。