本記事はWikipediaのダウンロード可能なデータについてまとめたものです。Wikipediaではクロール行為は禁止されています(ここを見る限りでは)が、代わりに全記事の情報を圧縮したファイルが公開されています。日本のWikipedia情報ダウンロードページhttp://download.wikimedia.org/jawiki/latest/本記事は2009年の10月下旬に取得した情報を元に書いています。時間が経つと結果が変わる可能性があるのでご注意ください。事前情報2009/10/25に確認した時点では、日本語Wikipediaのダウンロードページには55個のファイルが置いてありました(うち半分は更新を通知する為のRSS)。ファイルの形式は「XML」、「MySQLのダンプ」、「テキスト」などがあります。詳しいデータのインポート方法は、こちらのリンク集が参考になると思います。編集履歴まで含んだ超巨大ファイル。解凍後は200G超えるらしい。スペックの都合により未検証。(全て筆者主観)※ファイル名は前部の「jawiki-latest-」を除く※サイズは解凍前→解凍後のファイルサイズjawiki-latest-abstract.xml全ページの要約(タイトル、ディスクリプション、構成要素)1GB近くある巨大XMLファイル。通常のエディタではおそらく開けない。以下、ファイルの一部(コケ植物の部分)を切り出したもの。<abstract>コケ植物(こけしょくぶつ、)は、原始的な陸上植物の一群である。コケ類(こけるい)や蘚苔類(せんたいるい)、蘚苔植物(せんたいしょくぶつ)などともいう。世界中でおよそ2万種ほどが記録されている。多くは緑色であるが、赤色や褐色の種もある。</links></doc>上記ページを見ると分かる通り、abstractがDescription的な位置に表示され、sublinkはそれ以降の各ブロックを指しています。abstractの最初に括弧で読みを振る習慣があるようなので、読み仮名付き辞書を作る素材として使えそうです。jawiki-latest-all-titles-in-ns0.gz全ページのタイトルを記述したテキストファイル以下のような感じで、改行コード(CR)で区切ってWikipediaの全記事ページのタイトルが記述されています。ランスモールランスロランスロットランスロット_(コードギアス)ランスロット_(小惑星)ランスロット_(曖昧さ回避)ランスロット・アルビオンこのファイルを使って辞書ファイルを生成している人もいるようです。曖昧さを回避する為に括弧内の文字で区別しているものや、「-10」、「1999年」などのただの数字や年号、「2000年代のSF映画の一覧」のような一覧ファイルへのリンクも含まれているので、多少の取捨選択は必要になりそうですが。jawiki-latest-category.sql.gzカテゴリ一覧Category:学問のようなカテゴリページを出力する為の情報です。incrementのID。「1975年の映画」とか、「削除依頼中の記事」とか。カテゴリにあるページ)の数。「セネガルの地形」は5つのページが登録されているとか。「日本の峠」は9つのサブカテゴリを持っているとか。カテゴリ「カテゴリ名」にあるメディアの箇所に表示しているファイルの数。ほとんどのカテゴリは0(ファイルを持っていない)。コモンズと重複しているメディア辺りはたくさんファイルを保持している。use(将来使うかも)だそうです。現状は全レコード「0」が登録されています。どのページがどのカテゴリに所属しているかは、jawiki-latest-categorylinksの方を参照。各記事がリンクしているカテゴリ情報を保存しているテーブルです。pageテーブルのpage_idに紐付く。cl_fromが該当するカテゴリ名。「64GBパック」であれば「ろくよんしいひいはつく」のように、濁点などのない平仮名で形成される。timestamp以下は568868(67式30型ロケット弾発射機)に関するレコード。19:25:32「67式30型ロケット弾発射機」は、4つのカテゴリに所属していることが分かります。3つのカテゴリが表示されていました。スタブが含まれるカテゴリは「まだ成長していない項目」のことで、ページには表示されません。pageテーブルとjoinすれば、どのページがどのカテゴリに所属しているかを一望することができます。cl_toで検索することで、同じカテゴリに所属する言葉を取得することもできます。pageテーブルのpage_idに紐付く。user/passwordを除いて、ドメインを逆転させたURL。タイプ、ディスクリプションなどが保存されている。どの画像がどのページに関連付けられているかは、imagelinksテーブルに格納されている。q0bhu20kvdfvlbhob5frnoq0vj58k8y著作権などの問題が解決されないまま掲載されている画像が多いらしいので、取り扱いには注意が必要。jawiki-latest-imagelinks.sql.gz画像のリンク先情報pageテーブルのpage_idに紐づくil_fromというカラムと、画像ファイル名が格納されるカラムの2つだけを持つ。どのページにどういった画像が使用されているかが一望できる。Wiktionary-logo-en.svg上記の例は、idが5のページ(アンパサンド)は、Commons-logo.svgという画像ファイルを使用していて、idが10のページ(言語)はCommons-logo.svg以下4つの画像を使用しているという意味になる。記述しますが、その「en」に関する情報を格納しているテーブルです。下記は実際のenに関するレコード。遷移先のURLとかの情報が記述されています。falseiw_localやiw_transは行える動作権限に影響するようです。詳しい話は以下に書いてあります。http://www.mediawiki.org/wiki/Interwiki_table/ja662個ほどレコードが設定されているので、見ると「へー、こういうサイトがあるのか」という気持ちになれます。jawiki-latest-langlinks.sql.gz各ページの「他の言語」情報Wikipediaの各ページに貼られている「他の言語」のリンクに関する情報。ヤコブのページは英語、フィンランド語、フランス語、オランダ語、ポーランド語の5つが登録されている。Jakub見ての通り、その言葉に対する各言語のタイトルが取得できる。これを利用して「ヤコブを英語で書くと、Jacob」といった情報が取得できるような気もする。同一の言葉に対してリンクされているわけではないので、参考情報程度にしか使えないかもしれないけど。jawiki-latest-page.sql.gzページ情報(page_idやタイトル等)page_idとページのタイトルが入った大切なテーブル。他のテーブルと結合して使うことも多いです。中身はこんな感じのものが入っています。18630各カラムの意味合いはこんな感じです。categorylinksやexternallinksなどのリンクテーブルと紐づく、結合条件として良く使用されるカラム。一般的な記事ページは「0(NS_MAIN)」、「削除記録」のような管理系のページは「4(NS_PROJECT)」など。言葉を収集したい場合はとりあえず「0」だけ取っておけば間違いが少なくなる。namespaces」を参照。スペースはハイフンに置き換えられている。「_(曖昧さ回避)」などの言葉が入っている場合もある。編集に関するパーミッション。page_restrictionsテーブルがあるバージョンでは無視されるフィールドらしい。この機能が無効になっている場合もあるかもしれないそうな。1の場合はリダイレクトページ。ストップ高というページはこのカラムが1で登録されており、値幅制限というページにリダイレクトされる。1回だけしか編集されていないページは「1」、重ねて編集が行われているページは「0」。0~1の間の小数が入っている。「案内」のところにある「おまかせ表示」の為に使用するカラムらしい。ページが変更された際、キャッシュを無効にする目的で保持するタイムスタンプ。変更履歴のページで各版のリンク先に「oldid=xxxxx」のようなパラメータが付いてる。そのxxxxxの部分にこのカラムの値が入る。現在のページの長さ辞書作成に利用する場合は、page_namespaceが0のタイトルを収集すると良さそうです。page_is_redirectが1のページと遷移先を結びつけることで、言葉の言い換えに関する情報が取れそうな気もします。現状はHIDDENCAT(記事最下部のカテゴリの欄にカテゴリページへのリンクが現れなくなる)を指定する為に使用されている。sysopこんな感じで細かく制限しています。jawiki-latest-pagelinks.sql.gzページ間のリンク情報4000万件以上のレコードを保持する大きなテーブル。我が家の環境ではCOUNTするだけで1分近くかかる。「指輪物語」(page_id=4999)で検索すると、以下のような結果が出ます。エントjawiki-latest-pages-articles.xml.bz2全ページの記事本文を含むXML4GBを超える巨大ファイル。ロースペックのマシンでは取り扱うのは難しいかもしれません。XMLの中身はこんな感じで、ページのIDやタイトル、更新者やコメント、そしてテキスト解析をする際に非常に便利なWikipediaの本文(Wiki記法で書かれている)が書いてあります。xml:space="preserve">'''生物学'''(せいぶつがく、{{Lang-en-short|'''Biology'''}})は[[生物]]や[[生命|生命現象]]を研究する[[自然科学]]の一分野。広義には[[医学]]や[[農学]]など[[応用科学]]・[[総合科学]]も含み、狭義には[[基礎科学]]([[理学]])の部分を指す。一般的には後者の意味で用いられることが多い。類義語として'''[[生命科学]]'''や'''生物科学'''がある(後述の[[#「生物学」と「生命科学」]]参照)。こんな感じで全ページの情報が入っています。XMLで配布されている為、扱いが若干面倒です。こんな大容量をXPATHとかで扱うのも自殺行為ですし、ダンプファイルに変換するツールも用意されていますが、実行してから結果が返ってくるまで時間がかかったりします。rev_id、textだけをカラムに持つ独自テーブルに入れて使っています。textの3つのテーブルのデータが生成されます。使用方法は下記URLが詳しいです。wikipediaのダウンロード&データベースにインポートhttp://d.hatena.ne.jp/dkfj/20070902/1188730207jawiki-latest-pages-logging.xml.gzWikipediaのページに対する操作ログ何時にファイルをアップデートしたとか、記述を削除したといったアクション情報が載っています。revision、などがある。ヨーロッパの部分を切り出したものです。見ての通り、内容自体はpages-articles.xmlと同じです。議論ページなどを含む分、レコード数は若干多くなっています。sysop削除されたタイトルとかを取ることもできなくはないけど、明らかな悪戯で作られた記事のタイトルも取れてしまうので品質の面で微妙です。あと、このテーブルを見ていると、管理している人もタイヘンだなぁと無駄に同情的な気持ちになったりするかもしれません。「.NET_Framework」というページは、以下の8つのワードがリダイレクト先として登録されています。.NET_Framework言い換えや表記の違い、略称、関連語などが登録されているので、頑張ればその辺りの情報を取れるかもしれません。頑張って様々な言い換えをリダイレクト登録しているページもあれば、あまり登録されていないページもあるので(レコード数も40万くらいですし)、参考データの1つくらいの扱いになると思います。詳細は調べてませんが、中身は1レコードのみで、こんな情報が入ってました。11472jawiki-latest-stub-articles.xml.gzpages-articles.xmlの本文を除いた版pages-articles.xmlの本文(text)の部分が、textのIDだけを書く様になっているファイルです。</revision></page>本文を含まない分、latest-abstract.xmlの半分程度とコンパクトなサイズになっています。jawiki-latest-stub-meta-current.xml.gzpages-meta-current.xmlの本文を除いた版stub-articles.xmlと同じ形式です。pages-meta-current.xmlと同じく、議論ページなどを含んでいます。jawiki-latest-stub-meta-history.xml.gzpages-meta-history.xmlの本文を除いた版stub-articles.xmlと同じ形式で、revisionの情報がcurrentだけでなく全て入っています。本文なしなのに7.4Gとかいうかなり大きめなサイズ。更新状況とかを調べたい場合はこれを使うのかも。話題になっているとか荒れているページを探知する手がかりにはなりそうです。下記は174722(クリーブランド・キャバリアーズ)のテンプレート情報の一部です。NBAやPlayer、Country_flagのテンプレートが使用されていることが分かります。10野球用のテンプレートとかバスケ用のテンプレートとかがあるので、意外とカテゴリとしての意味合いも持っている情報のような気がしました。jawiki-latest-user_groups.sql.gzユーザグループ情報ug_group(botとかsysopとか)と、ug_user(IDっぽい数字)が入ったテーブル。