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 (最新版,添加了很多字段,但是删除了一个旧字段)

部分表结构

/*
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

直接使用源代码导入

用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导入

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包导入

// 推荐在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] 维基百科中文语料的获取