いなばにっき

とある大学助手のだらだら日記

スポンサーサイト

いなばにっきはblog.1783.orgに引っ越しました。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

動作確認用にWikipediaの小さなサンプルを作ってみる

いなばにっきはblog.1783.orgに引っ越しました。

先に作ったデータはあまりにも数が少ないので、Wikipedia から適当な数のサンプルを生成する必要がありそう。
てことで、件数を指定すると、その数のサンプルを生成するスクリプトを準備しておくことに。

先日落としてきたWikipedia 日本語版の件数は、486,137件。ただし、リダイレクトやノートなどを含めると、1,205,158件。(2008/4/25時点)

念のため

grep "<page>" jawiki-20070903-pages-articles.xml | wc -l

で調べてみる

1分ほどで終了。776140 件。あれー。どっちの数とも違う。むむぅ。
てことは、手元のデータは、記事+リダイレクトとみていいんだろうか。
うーむ。

悩んでても仕方ないので、先に進む。

そんなに細かくやる必要もないので、ざっくりと等間隔抽出で。
一応、いくつかサンプルを作る可能性があるので、引数で「何件のサンプルを作るのか」をいじれるようにしておく。あと、今のところ、<page>の数は決め打ちだけど、今後のことを考えると、これも一度データをなめて動的に生成するほうがいいな。
出力時、前後に <mediawiki>~</mediawiki>を追加する。
出力先は標準出力にしているので、適宜リダイレクトしてファイルに落とす方向で。

ということで、<page>~</page>の範囲だけを、指定された数、ランダムに出力するスクリプト。

#!/usr/bin/ruby

limit = ARGV[0]
target = ARGV[1]

$stderr.print "#{target}から#{limit}件抽出します\n"

interval_tmp = 776140 / limit.to_i
interval = interval_tmp.round
$stderr.print "抽出間隔は #{interval} です\n"

srand
start = rand(interval)
$stderr.print "#{start} から始めます\n"

needles = Array.new

i=start
while i < 776140
needles.push(i)
i += interval
end

#puts needles

print "<mediawiki xmlns=\"http://www.mediawiki.org/xml/export-0.3/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.mediawiki.org/xml/export-0.3/ http://www.mediawiki.org/xml/export-0.3.xsd\" version=\"0.3\" xml:lang=\"ja\">\n"

flag = false
buffer = String.new

pageCounter = 0
fh = open(target)
fh.each{|line|
if /<page>/ =~ line
pageCounter += 1
if needles.include?(pageCounter)
flag = true
end
end

if flag == true
buffer += line
if /<\/page>/ =~ line
print "#{buffer}\n"
flag = false
buffer = ""
end
end
}
print "</mediawiki>\n";
fh.close


ざっくり100件回してみて2分くらい。1000件だと3分。10000件だと20分くらい。

これでようやくサンプルができたので、このサンプルから、いよいよプレーンテキスト化を本格的に考える。はず。
スポンサーサイト

« Smoke on water - Japan version|Top|Wikipedia のデータをテキストファイルにするメモ(2) »

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://tetz.blog39.fc2.com/tb.php/230-c010889f

Top

HOME

いなば

Author:いなば
とある私立大学のダラダラ助手。
機械には人格があると信じて疑わない。
最近、体脂肪率がすこ~し下がってとってもうれしい。

あわせて読みたい

にほんブログ村 教育ブログ 大学教育へ

ネットショップチャットレディSEO対策SEO誕生日プレゼントパワーストーン自動車

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。