Windows 上下载并提取 Wikipedia

news/2024/7/23 23:25:14 标签: docker

下载资源

很久以前看过了 Wikipedia 是支持 dump 的,不得不说真是造福人类的壮举。我其实也用不到这个,但是看见不少人是用来做 NLP 语料训练的。不过最近我也想尝试一些新的东西(我就是单纯想要这个文本数据),所以就去把它给下载下来了。这个东西很大的,下载可能需要很久的时间,所以需要自己解决这个过程中面临的问题。

在这里插入图片描述

我下载的是 English Wikipedia,差不多 20 G,上面的 wiki_extract 是我自己建立的空目录,准备用来存放提取的文件的。

提取资源

下载的是一个压缩文件,里面是 xml 格式的,这里不直接解压它了。而是通过一个程序来提取它:wikiextractor。
不过这个程序的作者说了,它在 Windows 平台可能会有问题,我不信邪真的去尝试了,结果真的报错了,这里看起来是我的 Python 版本(Python 3.11)太高了导致:

在这里插入图片描述

那怎么办好呢?我最近安装了 Docker Desktop,以前我对这个东西是十分抗拒的,因为很多年以前它对 Windows 的支持并不好,但是今非昔比了,现在它和 WSL2 结合之后,真的成了一个十分有用的工具了!!!

DockerDesktop 安装并启动

在这里插入图片描述

不过在国内拉取镜像受到网络因素的影响,十分难受。我因为我大学时弄的一个阿里云的服务器,所以添加了阿里云的镜像加速功能。下面的内容,要求你了解一些 docker 的内容,其实也很简单了,直接按部就班应该也没有问题。

拉取python镜像,这里选择一个版本相对较低:

docker pull python:3.7

然后把本地的 E:\Wiki 挂载到容器的 /wiki 目录,再开一个交互式终端,直接跟着下面的操作来一气呵成吧!

在这里插入图片描述

因为容器里面是没有 wikiextractor 的,所以需要自己安装一下,也不用写一个 Dockerfile 来构建镜像了,那简直是浪费时间,反正你也就用一次。即用即装反而是最优解了(不过容器停止了以后,啥也没有了,哈哈。)。

我把 processes 参数设置成了 20,这个任务对于 CPU 的压力还是蛮大的:

在这里插入图片描述

下面补充一个提取的 Gif 图:

在这里插入图片描述


http://www.niftyadmin.cn/n/5046849.html

相关文章

Python 判断回文数

"""判断输入的数是否为回文数介绍:回文数:数字从高位到低位正序排列和低位到高位逆序排列都是同一数值例如:数字 1221 无论正序还是逆序都是 1221知识点:1、获取字符串长度函数len()2、条件语句if/elif/else3、循环…

2、SpringBoot_依赖介绍

三、SpringBoot介绍 1.parent 前言:之前是使用spring/springmvc 开发,整合不同的组件会有很多依赖,这些依赖会涉及到很多的版本信息,版本信息多了之后可能会导致版本冲突问题概述:把很多组件技术的搭配放到一起&…

【Docker】Docker的使用案例以及未来发展、Docker Hub 服务、环境安全

前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 作者简介: 辭七七&#xf…

【淘宝开店】新手入门开网店教程

一、上架产品流程顺序 1. 上架10个产品2. 早中晚各上架1件产品3. 连续上架4天 二、产品培训 动销率要求: 店铺产品数必须>10公式: 店铺最近30天有销量产品数 / 店铺上架总产品数 * 100%1. 从动销率可以得出, 店铺产品不宜过多2. 小卖家前期最佳建议产品数10个 三、上架产品…

Elasticsearch 分片down(unassigned shard)常用处理方式

近期多次出现ES集群上报"Elasticsearch实例存在down状态的主分片“或"Elasticsearch实例存在down状态的副本分片“,对该问题现象的处理步骤和方法进行总结。 【可能原因】 问题参考: https://github.com/elastic/elasticsearch/issues/2319…

指定程序在哪个GPU上运行

摘要: 当本地(或服务器)有个多个GPU时,需要指定程序在指定GPU上运行,需要做以下设置。 目录 一、在终端上指定GPU二、在程序中指定GPU三、系统变量指定GPU四、pytorch中指定GPU 一、在终端上指定GPU 在终端运行程序时…

【前端打怪升级日志之ES6篇】玩转函数

学习资料 阮一峰老师《ECMAScript 6 入门》— 函数的扩展 总结应用 1. 函数参数默认值与对象解构赋值默认值的结合使用 // 场景:方法调用时传参希望只传第二个参数 // 方案1: function foo({x1,y2}){console.log(x,y); } foo({}) //1 2 foo({x:2}) /…

【数据结构】list.h 常用函数实现详解

目录 一、概述二、基础函数✨2.1 INIT_LIST_HEAD✨2.2 list_empty 三、添加结点的函数✨3.1 __list_add✨3.2 list_add✨3.3 list_add_tail 四、删除结点的函数✨4.1 __list_del✨4.2 list_del 五、获取结构体指针、遍历链表✨5.1 list_entry✨5.2 list_for_each✨5.3 list_for…