1月時点の日本語wikipediaのデータをxmlからテキスト化すると、10メガのファイルが544個できる。このうちの、一つをprolog化した。3時間くらいかかったと思う。swi-prologに読み込むのに数秒しかかからず、prolog上で検索させても、瞬間的に答えを出してくる。素晴らしい。
試したい方は、以下にデータを置いておきますので、ダウンロードしてみてください。
jawiki-1.zip
plologをインストールしたのち起動し、上記データを解凍して、スタートさせたprologで次のようにコマンドを打って、データと、ルールを組み込んでください。
?- ['jawiki-latest-pages-articles-001.swi','jawikirule.swi'].
例えば、?- left(言葉)とか?- left(ロボット)とか、適当にやってみてください。leftは、その言葉が他の言葉に能動的に働きかける場合、rightは、その言葉が、他の言葉を飾る場合の結果を出してきます。prologですから、セミコロンを入れると、次々に結果を拾ってきます。
ただ、これは、日本語wikipediaの1/544ののデータにすぎません。このまま544個全部をprolog化するのには、数ヶ月かかりそうだ(笑)。どうしたら早くできるのか、それが当面する課題だ。データを分割して、それぞれ別のスレッドで処理するという手はある。それでも10倍くらいのスピードになるだけだろう。それでも1週間、ぶっ続けで計算させる必要が出てくる。もう少し、速くしたい。
※その後、形態素解析、係り受け解析を、スレッド化に対応させることができる、上に書いた方向もうまくいかないことがわかった。