wikipedia 数据 下载 使用

维基百科的数据有什么用

可以用来分词、做实体识别、word2vec、新词发现等

数据下载

下载地址

https://dumps.wikimedia.org/zhwiki/ 中文
ftp://ftpmirror.your.org/pub/wikimedia/dumps/ 所有语言

镜像
https://dumps.wikimedia.org/mirrors.html
https://dumps.wikimedia.org/elwiktionary/
https://dumps.wikimedia.org/enwiki/latest/

https://meta.wikimedia.org/wiki/Mirroring_Wikimedia_project_XML_dumps

数据库及表的创建

维基百科数据库的结构
https://www.mediawiki.org/wiki/Manual:Database_layout
MediaWiki_1_28_0_database_schema

创建数据库及表结构的语句
https://phabricator.wikimedia.org/source/mediawiki/browse/master/maintenance/tables.sql (最新版,添加了很多字段,但是删除了一个旧字段)

部分表结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/*
Navicat MySQL Data Transfer

Source Server : localhost
Source Server Version : 50505
Source Host : localhost:3306
Source Database : wikipedia_zh

Target Server Type : MYSQL
Target Server Version : 50505
File Encoding : 65001

Date: 2018-07-11 17:16:22
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `page`
-- ----------------------------
DROP TABLE IF EXISTS `page`;
CREATE TABLE `page` (
`page_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`page_namespace` int(11) NOT NULL ,
`page_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL ,
`page_restrictions` tinyblob NOT NULL ,
`page_counter` bigint(20) UNSIGNED NOT NULL DEFAULT 0 ,
`page_is_redirect` tinyint(3) UNSIGNED NOT NULL DEFAULT 0 ,
`page_is_new` tinyint(3) UNSIGNED NOT NULL DEFAULT 0 ,
`page_random` double UNSIGNED NOT NULL ,
`page_touched` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0' ,
`page_latest` int(10) UNSIGNED NOT NULL ,
`page_len` int(10) UNSIGNED NOT NULL ,
PRIMARY KEY (`page_id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci
AUTO_INCREMENT=1

;

-- ----------------------------
-- Table structure for `revision`
-- ----------------------------
DROP TABLE IF EXISTS `revision`;
CREATE TABLE `revision` (
`rev_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`rev_page` int(10) UNSIGNED NOT NULL ,
`rev_text_id` int(10) UNSIGNED NOT NULL ,
`rev_comment` blob NOT NULL ,
`rev_user` int(10) UNSIGNED NOT NULL DEFAULT 0 ,
`rev_user_text` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' ,
`rev_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0' ,
`rev_minor_edit` tinyint(3) UNSIGNED NOT NULL DEFAULT 0 ,
`rev_deleted` tinyint(3) UNSIGNED NOT NULL DEFAULT 0 ,
`rev_len` int(10) UNSIGNED NULL DEFAULT '' ,
`rev_parent_id` int(10) UNSIGNED NULL DEFAULT '' ,
`rev_sha1` varbinary(32) NOT NULL DEFAULT '' ,
PRIMARY KEY (`rev_id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci
AUTO_INCREMENT=1

;


-- ----------------------------
-- Table structure for `text`
-- ----------------------------
DROP TABLE IF EXISTS `text`;
CREATE TABLE `text` (
`old_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`old_text` mediumblob NOT NULL ,
`old_flags` tinyblob NOT NULL ,
PRIMARY KEY (`old_id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci
AUTO_INCREMENT=1

;

-- ----------------------------
-- Auto increment value for `page`
-- ----------------------------
ALTER TABLE `page` AUTO_INCREMENT=1;

-- ----------------------------
-- Auto increment value for `revision`
-- ----------------------------
ALTER TABLE `revision` AUTO_INCREMENT=1;

-- ----------------------------
-- Auto increment value for `text`
-- ----------------------------
ALTER TABLE `text` AUTO_INCREMENT=1;

数据导入

mwdumper源代码
git clone https://phabricator.wikimedia.org/diffusion/MWDU/mwdumper.git

mediawiki-tools-mwdumper github地址
git clone https://github.com/wikimedia/mediawiki-tools-mwdumper.git

直接使用源代码导入

1
2
3
4
5
6
7
8
用eclipse导入mwdumper工程,运行Dumper类  (windows下可能会报各种错)
run configuration:
program argument:
--output=mysql://localhost/wikipedia_zh?user=root&password=root&characterEncoding=utf8
--format=sql:1.5
C:/workspace/data/zhwiki-latest-pages-articles.xml.bz2
vm argument:
-Xms128m -Xmx2048

把.xml.bz2转化成.sql,再通过.sql导入

1
2
3
4
5
6
program argument:
--output=mysql://localhost/wikipedia_zh?user=root&password=root&characterEncoding=utf8
--format=mysql:1.5
C:/WorkSpaces/data/zhwiki-latest-pages-articles.xml.bz2
vm argument:
-Xms128m -Xmx2048m

使用jar包导入

1
2
3
4
5
6
// 推荐在linux下运行   
// windows下可能会报各种错
java -jar mwdumper.jar --format=mysql:1.5 zhwiki-latest-pages-articles.xml.bz2 |
mysql -u <username> -p <databasename>

java -jar mwdumper-1.25.jar --format=sql:1.5 zhwiki-latest-pages-articles.xml.bz2 | mysql -u user01 -p wikipedia_zh // 然后会提示你输入mysql数据库的密码

使用

用于word2vec

三种不同格式的离线文档,这个演示xml.bz2
wiki离线文档介绍
https://www.wikidata.org/wiki/Wikidata:Database_download/zh
xowa介绍
http://xowa.org/home/wiki/Help/Download_XOWA.html
中文数据库的下载介绍
https://zh.wikipedia.org/wiki/Wikipedia:%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%8B%E8%BD%BD
中文数据库源
https://dumps.wikimedia.org/zhwiki/

References

[1] Data_dumps
[2] Tools_for_importing
[3] Manual:MWDumper
[4] Import_examples
[5] 把wikipedia中文数据库导入mysql
[6] 维基百科简体中文语料的获取
[7] mediawiki - github
[8] 网上可供下载的数据集合大整理
[9] Wikipedia:数据库下载
[10] 维基百科简体中文语料的获取
[11] backup
[12] linux,windows下如何使用XOWA查看离线的维基百科 XOWA 导入离线wiki
[13] 维基百科中文语料的获取