1 min read

Wikipedia(Articles) to SQLite3

jawiki-latest-abstract.xmlにWikipedia記事の要約文が書かれているが、本来の要約文でないものがかなり多い。

前回作った要約XMLからSQLite3にぶち込むスクリプトを回して見てみた例

sqlite> .schema
CREATE TABLE wikipedia(title, url, abstract, link_anchor, link_url);

sqlite> select * from wikipedia where title like 'github';
GitHub|
https://ja.wikipedia.org/wiki/GitHub|
| alexa          = 61位|
概要,脚注,参考文献,関連項目,外部リンク|
https://ja.wikipedia.org/wiki/GitHub#.E6.A6.82.E8.A6.81,https://ja.wikipedia.org/wiki/GitHub#.E8.84.9A.E6.B3.A8,https://ja.wikipedia.org/wiki/GitHub#.E5.8F.82.E8.80.83.E6.96.87.E7.8C.AE,https://ja.wikipedia.org/wiki/GitHub#.E9.96.A2.E9.80.A3.E9.A0.85.E7.9B.AE,https://ja.wikipedia.org/wiki/GitHub#.E5.A4.96.E9.83.A8.E3.83.AA.E3.83.B3.E3.82.AF

※見やすいように改行してある

このように、GitHubの要約文がおかしい。
本来であれば、Wikipedia冒頭にある文になっているはず。

ということでWikipedia公式の要約文XMLは使い物にならない。

そこで、Wikipedia記事の全文が記載されているjawiki-latest-pages-articles.xmlを使って冒頭の要約文を抽出してSQLite3にぶち込むスクリプトを書いた。

sugtao4423/WikiArticleXML2SQLite3

sqlite> .schema
CREATE TABLE wikipedia(title, abstract);

sqlite> select * from wikipedia where title like 'github';
GitHub|
GitHub(ギットハブ)はソフトウェア開発プロジェクトのための共有ウェブサービスであり、Gitバージョン管理システムを使用する。
Github|
GitHubへ転送

※見やすいように改行してある

これで正しいのに近い要約文が抽出できる。
ただ、URLの除去は難しかったので諦めた。記法がたくさんあり、正規表現で除去できるレベルではない(と思っている)
あとなぜか抽出できていないページが少しある。100件もないし無視レベルでしょ。と思ってる

URLが含まれている例

sqlite> select * from wikipedia where title like 'nginx';
Nginx|
nginx(「エンジンエックス」のように発音url=http://nginx.org/ja/ |title=nginx |accessdate=2014-09-17)は、フリーかつオープンソースなWebサーバである。処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されており、HTTP, HTTPS, SMTP, POP3, IMAPのリバースプロキシの機能や、ロードバランサ、HTTPキャッシュの機能も持つ。

※見やすいように改行してある