Wikipedia解析
- 2. Wikipediaとは
誰もが無料で自由に編集に参加できるインターネット百科事典
コンテンツはXMLファイルとしても提供されている
http://dumps.wikimedia.org/
Uzabase 22
- 3. Wikipediaダンプの配信仕方
下記のウェブサイトからダウンロード可能
http://dumps.wikimedia.org/
各ダンプは月に1~3回生成される
すべてのダンプはXML形式
Uzabase 33
- 4. 記事の例
<page>
<title>ピザ</title>
<id>28082</id>
<revision>
<id>46484702</id>
<parentid>46484672</parentid>
<timestamp>2013-03-03T20:53:16Z</timestamp>
<contributor>
<username>Nipisiquit</username>
<id>62077</id>
</contributor>
<text xml:space="preserve">
[[ファイル:Supreme pizza.jpg|thumb|250px|
アメリカ風ピザ]]
'''ピザ'''(イタリア語の pizza ({{IPA-
it|ˈpiʦ:a}})
に由来する「'''ピッツァ'''」の表記も用いられる)は、
[[小麦
粉]]、水、塩、イースト、砂糖、少量の[[オリーブ油]]
をこねた後
Uzabase に発酵させて作った生地を丸く薄くのばし、その上に具 44
- 5. Wikipediaダンプの種類
記事、テンプレート、メタページの最新版のみ
jawiki-20130307-pages-articles.xml.bz2 1.7GB
enwiki-20130304-pages-articles1-27.xml.bz2 9.2GB
全ページの最新版のみ
jawiki-20130307-pages-meta-current.xml.bz2 2.0GB
enwiki-20130304-pages-meta-current1-27.xml.bz2 17.9GB
全ページの全ての版
jawiki-20130307-pages-meta-history.xml.bz2 31.0GB
enwiki-20130304-pages-meta-current1-27.xml.bz2 500GB
Uzabase 55
- 7. Wikipediaダンプはなぜ必要?
コーパス(⇒大量のテキストデータ)が必要な技術はたくさんある
音声認識、自動翻訳、解体素解析、日本語入力システム、
検索エンジン、など
有名なコーパス
日本語
– 毎日新聞、日経新聞、京都大学テキストコーパス、BCCWJ
英語
– British National Corpus、Brown Corpus、
Google Web N-Gram Corpus
Uzabase 77
- 8. Wikipediaダンプの解析
非構造化データ
記事の本文やタイトルなどの抽出、プレーンテキストへの変換
、など
– gwtwiki
– WikipedaExtractor
構造化データ
DBpedia
Uzabase 88
- 9. gwtwiki
Javaライブラリ
wikitextをHTMLやプレーンテキストなどに変換できる
Wikipediaダンプを簡単に解析できる
IArticleFilter handler = new ArticleFilter();
WikiXMLParser wxp = new WikiXMLParser(
“/path/to/dump.xml.bz2”, handler);
wxp.parse();
public class ArticleFilter implements IArticleFilter {
public void process(WikiArticle page, Siteinfo siteinfo) {
String title = page.getTitle();
String bodyText = page.getText();
...
}
}
Uzabase 99
- 10. gwtwiki
Javaライブラリ
wikitextをHTMLやプレーンテキストなどに変換できる
Wikipediaダンプを簡単に解析できる
WikiModel wikiModel = new
WikiModel("http://www.mywiki.com/wiki/${image}",
"http://www.mywiki.com/wiki/${title}");
String plainStr = wikiModel.render(
new PlainTextConverter(),
bodyText);
Uzabase 10
10
- 11. WikipediaExtractor
http://medialab.di.unipi.it/wiki/Wikipedia_Extractor
Wikipediaダンプをプレーンテキストに変換するPythonスクリプト
<text xml:space="preserve">
[[ファイル:Supreme pizza.jpg|thumb|250px|
アメリカ風ピザ]]
'''ピザ'''(イタリア語の pizza ({{IPA-it|ˈ piʦ:a}})
に由来する「'''ピッツァ'''」の表記も用いられる)は、[[小
麦
粉]]、水、塩、イースト、砂糖、少量の[[オリーブ油]]をこね
た後
に発酵させて作った生地を丸く薄くのばし、その上に具を乗せ、
[[オーブン]]や専用の[[竃]]などで焼いた食品である。
...
ピザ(イタリア語の pizza (イタリア語発音: [ˈpiʦ:a])に由来する
「ピッツァ」の表記も用いられる)は、小麦粉、水、塩、イースト、砂
糖、少量のオリーブ油をこねた後に発酵させて作った生地を丸く薄くの
Uzabase
ばし、その上に具を乗せ、オーブンや専用の竃などで焼いた食品である。11 11
- 12. WikipediaExtractor
http://medialab.di.unipi.it/wiki/Wikipedia_Extractor
Wikipediaダンプをプレーンテキストに変換するPythonスクリプト
WikiExtractor.py [options]
-c, --compress : compress output files using bzip
-b, --bytes= n[KM] : put specified bytes per output file (default 500K)
-B, --base= URL : base URL for the Wikipedia pages
-o, --output= dir : place output files in specified directory (default current)
-l, --link : preserve links
--help : display this help and exit
> bzcat jawiki-latest-pages-articles.xml.bz2 | WikiExtractor.py -o extracted
Uzabase 12
12
- 17. DBpedia
http://dbpedia.org/
Wikipediaから構造化データを抽出するプロジェクト
100以上の言語が対応されている
しかし、カバー率はそれぞれ違う
N-Triples形式で配信される
Uzabase 17
17
- 18. DBpediaの例
<http://dbpedia.org/resource/Toyota>
<http://dbpedia.org/property/companyType>
"Public" .
<http://dbpedia.org/resource/Toyota>
<http://dbpedia.org/property/industry>
<http://dbpedia.org/resource/Automotive_industry> .
<http://dbpedia.org/resource/Toyota>
<http://dbpedia.org/ontology/foundingDate>
"1937-08-28" .
<http://dbpedia.org/resource/Toyota>
<http://dbpedia.org/ontology/foundedBy>
<http://dbpedia.org/resource/Kiichiro_Toyoda> .
Uzabase 18
18
- 19. DBpediaへのクエリ
SPARQLでクエリすることができる
http://dbpedia.org/snorql/
例
1900年以前にベルリンで生まれた人
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT ?name ?birth ?death ?person WHERE {
?person dbo:birthPlace :Berlin .
?person dbo:birthDate ?birth .
?person foaf:name ?name .
?person dbo:deathDate ?death .
FILTER (?birth < "1900-01-01"^^xsd:date) .
}
ORDER BY ?name
Uzabase 19
19