2008年10月24日金曜日

Webページにグラフを描く方法

Webページにグラフを描くWebサービスを見つけたので,メモしておきます.

当初は,Javascriptでそうするライブラリを探していたのですが,ブログのエントリにグラフを収めるには,Google Chart APIを使うのが一番手っ取り早そうなので,使ってみました.

結果はうまくいきました.ただ,現在の案件に必要な機能はやっぱりないみたいなので,結局は自作することになりそうです.でも,とても簡単にグラフが描けるから,これからは重宝しそうです.Googleに感謝ですね.

Google Chart API
http://code.google.com/apis/chart/

WordPressのサイドバーにGoogleMapを表示する方法

WordPressのサイドバーにGoogleMapを表示する方法をメモしておきます.

WordPressでは,サイドバーに置く部品のことをウィジェットと呼ぶみたいです.当初は,ウィジェットとプラグインは別物だと思っていました.だから,インストールするときに,ウィジェットという名前のディレクトリがあるのかと思ってしまい,それを探すのに結構な時間を使ってしまいました.結局,見当たらないので,プラグインのディレクトリに放り込んでみたら,ウィジェットの設定画面に Google Maps Widget が現れました.

WordPress Google Maps Widget
http://shubhhub.com/2007/01/24/wordpress-google-maps-widget/

2008年10月17日金曜日

情報抽出に関する論文

情報抽出に関する以下の論文についてメモしておきます(論文にはない個人的な意見も含んでいます).

Chia-Hui Chang, Mohammed Kayed, Moheb Ramzy Girgis, Khaled Shaalan: A Survey of Web Information Extraction Systems, IEEE Transactions on Knowledge and Data Engineering, Vol. 18, No. 10, pp. 1411-1428, 2006-10.

[背景]
・Webの爆発的成長と普及により,膨大な量の情報源がインターネット上に存在するようになった.
・Web上の情報源の異種性や構造の欠落によって,情報探索や情報検索は限定されたものになっている.
・入力ページを構造化データに自動変換するために,情報抽出の分野では,多大な労力が捧げられてきた.
・情報抽出は,Webマイニングや検索ツールには不可欠である後処理に必要な構造化データを生成する(情報検索は,文書集合から関連する文書を特定することに関心がある.).

[情報抽出タスク]
・入力と出力によって定義できる.
・入力は,自然言語で書かれたテキストや半構造化文書である.
・出力は,k組のリレーションや階層的構造をもった複合オブジェクトである.
・属性の様々な組み換えや入力エラーが生じたときに難しくなる.
・Webを対象とした情報抽出タスクは,伝統的な情報抽出タスクとは異なる.

[伝統的な情報抽出タスク]
・非構造なフリーテキストが対象である.
・自然言語処理技術が有効である.

[Web情報抽出タスク]
・半構造化テキスト(アプリケーションが自動作成したものも多い)である.
・機械学習やパターンマッチング技術が有効である.

[ラッパー]
・情報抽出タスクを実行するプログラムをextractorあるいはwrapperと呼ぶ.
・もともとは,情報統合システムの要素だった.
・情報統合システムでは,ラッパーは,システムの検索モジュールが変更なしに,異なる方式の情報源にアクセスできるように,情報源をラップするプログラムのことである.
・通常は,抽出ルールの集合に基づいてパターンマッチングをする.

[ラッパー帰納]
・ラッパ帰納システムとは,ラッパーを生成するソフトウェアツールである.
・再利用性を最大化,保守性を最小化するため,訓練可能なWIシステムを設計することは重要である.

[関連研究]
・MUCがIEの初期の成果に貢献した.
・多くの研究者がラッパーを分類している.
・IEシステムの評価には,3つの次元(対象とするタスクの種類,利用する技術,自動化の程度)がある.

[タスク]
・構造:非構造(unstructured),半構造(semi-structured), 構造(structured)
・対象:レコード,ページ,サイト
・表現:missing attributeの有無,multi-valued attributeの有無,multi-ordering attributeの有無,disjunctiveルールの有無,抽出対象の粒度(区切り文字によってトークンが区切られている程度)

[利用技術]
・tokenization/encoding schemes:タグレベル,語レベル
・learning algorithm:top-down generalization,bottom-up generalization,pattern mining,logic programming
・extraction rule type:正規文法,論理規則
・features involved:パス表現,構文規則,意味制約,区切り制約
・scan pass:シングルパス,マルチパス

[自動化]
・user expertise
・applicability
・limitation
・page-fetching support
・output support and API support

[WI Systems]
・分類:手作業で構築,教師付き,半教師付き,教師なし

[手作業で構築される WI System]
・ユーザが通常のプログラミング言語や特別なプログラミング言語を使ってWebサイトごとにラッパーをプログラミングする.
・ユーザにプログラミングやコンピュータのスキルを要求する.
TSIMMIS,Minerva,WebOQL,W4FXWrap

[教師付き WI Systems]
・抽出するデータの例をラベルづけしたページの集合を受け取り,ラッパーを出力する.
・ユーザは,ラベルづけされた例の初期セットを提供する.
・ラベリングGUIの利用を訓練するだけでいいので,ラッパー生成のコストを減少できる.
・SRV,RAPIER,WHISK,WIEN,STALKER,SoftMealy,NoDoSE,DEByE

[半教師付き WI Systems]
・教師付き法とは反対に,ユーザから粗い例を受け取る.
・レコードレベル抽出タスクである.
・学習フェーズでは,抽出対象は指定されない.
・IEPAD,OLERA,Thresher

[教師なしIE]
・ラベル付けされたトレーニングデータを用いない.
・ラッパーを生成するのにユーザインタラクションを必要としない.
・入力ページのデータが豊富にある領域からページやテキストを生成するのに使われるデータとして抽出対象は定義される.
・RoadRunner,EXALG,DeLa,DEPTA


つづく.

2008年10月16日木曜日

WordPressにおけるXML-RPCのサポート

現在とある用件でブログクライアントを作成しています.テストのために,とりあえずRollerというブログソフトウェアを使い始めたのですが,レスポンスが遅い,エラーをよく返す,自前のブログクライアントの投稿が結構失敗するなどが原因(すべて私に問題があるかも知れないのですが,それは問わないことにしています)で,ブログソフトウェアをWordPressに変更しようかなと考えています.

そこで,WordPressのXML-RPCの対応状況を調べてみましたが,以下のAPIに対応しているとのことです.Rollerは,metaWeblog APIだったので,パラメータを変えるだけで済みそうです.Happy!

Blogger API
metaWeblog API
Movable Type API

XML-RPC Support
http://codex.wordpress.org/XML-RPC_Support