🐍
【Windows】Pythonでwikiextractorを使い、WikipediaのXMLファイルからテキストを取り出す
確認済みの環境
※コマンドプロンプトで、ダウンロードディレクトリで作業しました。
Wikipediaから記事のXMLファイルをダウンロードする
今回は、いくつかのデータのみ利用したかったため、以下の方法でダウンロードしました。
このページで、Wikipediaの記事のXMLファイルをダウンロードすることができます。
自然言語処理ですべてのファイルをダウンロードしたい場合は、以下などからダウンロードすると良いと思います。
詳しくは、以下のサイトをご覧くだささい。
wikiextractorを使う(エラー版)
pip install wikiextractor
その後、
wikiextractor ファイル名.xml
以下のエラーが出ます。
エラー内容
INFO: Preprocessing 'ファイル名.xml' to collect template definitions: this may take some time.
INFO: Loaded 180 templates in 0.0s
INFO: Starting page extraction from ファイル名.xml.
Traceback (most recent call last):
File "C:\Users\略\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\略\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\略\wikiextractor.exe\__main__.py", line 7, in \<module\>
File "C:\Users\略\wikiextractor\WikiExtractor.py", line 640, in main
process_dump(input_file, args.templates, output_path, file_size,
File "C:\Users\略\wikiextractor\WikiExtractor.py", line 359, in process_dump
Process = get_context("fork").Process
File "C:\Users\略\multiprocessing\context.py", line 239, in get_context
return super().get_context(method)
File "C:\Users\略\multiprocessing\context.py", line 193, in get_context
raise ValueError('cannot find context for %r' % method) from None
ValueError: cannot find context for 'fork
wikiextractorを使う(エラー対応版)
pip uninstall wikiextractor
※ここで、pip list
してアンインストールを確認
pip install git+https://github.com/prokotg/wikiextractor
※ここで、pip list
して確認
wikiextractor ファイル名.xml
処理されたものは、wikiextractor
を実行した場所(つまり、現在の作業ディレクトリ)の、textディレクトリの中に保存されます。
AAやABなどが作成されていて、その中に、ファイルが保存されているはずです。
記事の形式は、以下のような形式になっています。
<doc id="" revid="" url="" title="">
...
(記事本文)
...
</doc>
12月12日追記 コメントアウトについて
<!--
(<!--)や -->
(-->)があると、xml上、コメントアウトということになってしまい、wikiextractorでテキスト化するときに無視されてしまうようです。
xmlのコメントについては、コメントを記述するを参照
Discussion