我的目标是从维基百科 xml 转储 ( https://dumps.wikimedia.org/backup-index.html )中获取纯文本(没有链接、标签、参数和其他垃圾,只有文章文本)。我在 GitHub ( https://github.com/attardi/wikiextractor )上找到了 WikiExtractor python 脚本。下载并安装后(我使用 PyCharm IDE,Windows 10),我尝试开始使用
wikiextractor -cb 250K -o extracted D:\Wiki_dumps\ruwiktionary-20211120-pages-articles-multistream.xml.bz2
但后来(预处理后)我得到了以下错误
raise ValueError('cannot find context for %r' % method) from None ValueError: cannot find context for 'fork'
我试图将以下函数中的参数从“fork”更改为“spawn”(来自互联网的建议)
Process = get_context("fork").Process
但这只会导致
TypeError:无法腌制“_io.BufferedWriter”对象
我不知道如何修复它或它可能与什么有关
这是完整的堆栈跟踪:
信息:预处理 'D:\Wiki_dumps\ruwiktionary-20211120-pages-articles-multistream.xml.bz2' 以收集模板定义:这可能需要一些时间。
信息:预处理 100000 页
...
INFO:预处理 2300000 页
INFO:在 209.9s 内加载了 36839 个模板
信息:从 D:\Wiki_dumps\ruwiktionary-20211120-pages-articles-multistream.xml.bz2 开始提取页面。
回溯(最近一次通话最后):
_run_module_as_main 中的文件“C:\Users\Shurup\AppData\Local\Programs\Python\Python310\lib\runpy.py”,第 196 行,返回 _run_code(code, main_globals, None,
_run_code exec(code, run_globals) 中的文件“C:\Users\Shurup\AppData\Local\Programs\Python\Python310\lib\runpy.py”,第 86 行
文件“C:\Users\Shurup\PycharmProjects\pythonProject\venv\Scripts\ wikiextractor.exe_main_.py ”,第 7 行,在
文件“c:\users\shurup\pycharmprojects\pythonproject\venv\lib\site-packages\wikiextractor\WikiExtractor.py”,第 640 行,在主 process_dump(input_file, args.templates, output_path, file_size,
文件“c:\users\shurup\pycharmprojects\pythonproject\venv\lib\site-packages\wikiextractor\WikiExtractor.py”,第 359 行,在 process_dump Process = get_context("fork").Process
文件“C:\Users\Shurup\AppData\Local\Programs\Python\Python310\lib\multiprocessing\context.py”,第 239 行,在 get_context 返回 super().get_context(method)
文件“C:\Users\Shurup\AppData\Local\Programs\Python\Python310\lib\multiprocessing\context.py”,第 193 行,在 get_context 中引发 ValueError('cannot find context for %r' % method) from None
ValueError:找不到“fork”的上下文
这是带有“spawn”而不是“fork”参数的堆栈跟踪