wikiextractor 提取维基百科语料报错的解决办法

2023-11-05

我提取维基百科语料的时候,刚开始使用的wikiextractor ,后来发现总是报错,于是就没有用了,由于很多人都在问我是怎么提取的,现在把代码公布下

代码不是我写的,是从一个网站找到的,由于太久了,忘记了网站的地址,就没办法贴原网址了,如果作者看到了请私信我原网址

作者的邮箱是:panyangnlp@gmail.com

使用方法:命令行输入命令:

python data_pre_process.py zhwiki-latest-pages-articles.xml.bz2(维基百科语料库) wiki.zh.text(保存的文件)

 源码:

# -*- coding: utf-8 -*-
# Author: Pan Yang (panyangnlp@gmail.com)
# Copyrigh 2017
from __future__ import print_function

import logging
import os.path
import six
import sys

from IPython.core.page import page
from gensim.corpora import WikiCorpus

page.encoding = 'utf-8'

# 将维基百科xml语料库封装成txt格式
# python data_pre_process.py zhwiki-latest-pages-articles.xml.bz2 wiki.zh.text
if __name__ == '__main__':
    program = os.path.basename(sys.argv[0])
    logger = logging.getLogger(program)

    logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s')
    logging.root.setLevel(level=logging.INFO)
    logger.info("running %s" % ' '.join(sys.argv))

    # check and process input arguments
    if len(sys.argv) != 3:
        print("Using: python process_wiki.py enwiki.xxx.xml.bz2 wiki.en.text")
        sys.exit(1)
    inp, outp = sys.argv[1:3]
    space = " "
    i = 0

    output = open(outp, 'w', encoding='utf-8')
    wiki = WikiCorpus(inp, dictionary={})
    for text in wiki.get_texts():
        if six.PY3:
            output.write(bytes(' '.join(text), 'utf-8').decode('utf-8') + '\n')
            #   ###another method
            #   output.write(space.join(map(lambda x: x.decode("utf-8"), str(text))) + '\n')
        else:
            output.write(space.join(text) + "\n")
        i = i + 1
        if i % 10000 == 0:
            logger.info("Saved " + str(i) + " articles")

    output.close()
    logger.info("Finished Saved " + str(i) + " articles")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wikiextractor 提取维基百科语料报错的解决办法 的相关文章

随机推荐

  • jdk1.8的Future特性简介及使用场景

    文章目录 Future简介 什么是Future Future的使用场景 Future接口内部的常用方法 Future的常见用法 一 基础用法 重写Callable接口的call方法 放到异步线程的 submit方法中执行 代码实例 二 进阶
  • UEFI 之 Capsule Update (固件更新)

    概要 什么是UEFI Capsule Update呢 Capsule 顾名思义 是 胶囊 的意思 所以UEFI Capsule Update可以理解为胶囊式固件更新 UEFI规范定义了Firmware Management Protocol
  • 【华为OD机试真题 JS】靠谱的车

    标题 靠谱的车 时间限制 1秒 内存限制 262144K 语言限制 不限 程序员小明打了一辆出租车去上班 出于职业敏感 他注意到这辆出租车的计费表有点问题 总是偏大 出租车司机解释说他不喜欢数字4 所以改装了计费表 任何数字位置遇到数字4就
  • [Scala]001-初识

    Scala 发音 sk l 取自于 Scalable 可伸缩 可扩展的 Language简写 01 基本概念 1 多范式 多种编程方法 目前有四种程序设计方法 面向过程 面向对象 函数式 泛型 编程范式 programming paradi
  • latexit使用教程

    必备条件 下载MacTex mpkg zip并安装 写好test bib文件和test tex文件
  • Flutter一天一控件之ListTile(列表的实现)

    ListTile简介 Flutter中的ListTile控件是一种常用的列表项控件 它可以用于显示列表中的每一个项 通常包含标题 副标题 图标等内容 ListTile控件的外观和行为类似于Android中的ListView中的列表项 一个简
  • 基于相干解调法和基于相位比较法的2DPSK数字通信系统 MATLAB Simulink仿真

    1 课程设计目的 通过课程设计 巩固已经学过的通信原理课程中有关数字调制系统的知识 加深对相关知识的理解和应用 学会应用Matlab Simulink工具对通信系统进行仿真和调试 设计与实现的过程中充分利用图书馆和网络资源 提高发现问题和自
  • linux虚拟机中和主机三种网络连接方式的区别

    在介绍网络模式之前 关于网络的几个简单命令的使用 ifup eth0 启动网卡eth0 ifdown eth0 关闭网卡eth0 etc network interfaces 网络配置文件 etc init d networking 网络服
  • 软件实训之从调研到设计,产品设计的从0到1

    软件实训之从调研到设计 产品设计的从0到1 内容关键词 调研 设计 产品 课程 软件项目实训 授课老师 张森鹏 新浪ID sunlifestyle 中城投丝路 720科技 知识来源 网络资源汇总整理 张森鹏讲课视频汇总整理 在互联网产品开发
  • 滴滴社招三面(已拿offer)

    一面 项目 基础技术 算法都有 项目部分 1 业务流程 2 具体负责的部分 3 工作职责 4 碰到的问题 以及怎么解决的 每个问题展开说 技术部分 1 JVM内存模型 具体细节 结合实际说每个空间的作用 2 哪些垃圾回收算法 各个垃圾回收器
  • 如何给家人购买保险

    一 保险的本质 保险是为了防范 分散风险 保险的本质是杠杆 是风险对冲 和风险转移工具 杠杆 用低成本的投入 获得风险发生时 高额的索赔 买保险就是买一份协议 一纸合同 二 保险的分类 保险主要有两大类 分别是社会保险和商业保险 社会保险主
  • 计算机网络重点知识解析(2)

    计算机网络重点知识的总结 接上一篇文章 文章目录 HTTP协议 HTTP协议简介 HTTP请求响应的步骤 HTTP常见状态码 GET请求和POST请求 Cookie和Session HTTPS协议 Socket 简介 总结 HTTP协议 h
  • Mybatis的xxxMapper.xml文件节点的statementType属性说明

    概述 在xxxMapper xml文件中可以使用statementType标记使用什么的对象操作SQL语句 说明 StatementType取值说明 1 STATEMENT 直接操作sql 不进行预编译 获取数据 gt gt Stateme
  • 给模型的模块添加触摸点击等交互事件

    给camera添加组件 Component Event Physics Raycaster 给模型添加碰撞体 选中要交互的模块 Component Physics Box Collider 调整collider的size直到合适 最后同时给
  • Windows下python(conda)加载spatialite模板

    如果在python调用spatialite的函数 报错no such function MBRContains ST Contains python则需要加载spatialite扩展 共两步 1 先在The Gaia SINS federa
  • java创建request_java ->HttpServletRequest

    HttpServletRequest HttpServletRequest概述 我们在创建Servlet时会覆盖service 方法 或doGet doPost 这些方法都有两个参数 一个为代表请求的request和代表响应response
  • [JSP暑假实训] 三.MySQL数据库基本操作及Servlet网站连接显示数据库信息

    本系列文章是作者暑假给学生进行实训分享的笔记 主要介绍MyEclipse环境下JSP网站开发 包括JAVA基础 网页布局 数据库基础 Servlet 前端后台数据库交互 DAO等知识 前一篇文章讲解了MyEclipse环境下创建JSP注册表
  • Java锁性能提高(锁升级)机制总结

    锁的使用很难避免 如何尽量提高锁的性能就显得比较重要了 锁偏向 所谓的偏向锁是指在对象实例的Mark Word 说白了就是对象内存中的开头几个字节保留的信息 如果把一个对象序列化后明显可以看见开头的这些信息 为了在线程竞争不激烈的情况下 减
  • 机器学习极好的入门学习视频推荐

    首先说明本人最早看的机器学习视频是吴恩达的机器学习后来发现并不适合我 如果你以前了解过一些算法 不妨看看我以下推荐的视频 对于一点都不了解机器学习的小白 那就更要看我推荐的视频了 当然吴恩达的机器学习也很好 但是相信我 看下面我推荐的视频是
  • wikiextractor 提取维基百科语料报错的解决办法

    我提取维基百科语料的时候 刚开始使用的wikiextractor 后来发现总是报错 于是就没有用了 由于很多人都在问我是怎么提取的 现在把代码公布下 代码不是我写的 是从一个网站找到的 由于太久了 忘记了网站的地址 就没办法贴原网址了 如果