📚
wikiextractorでWikipedia記事から本文抽出する際のエラーと回避方法
こちらで配布されているWikipedia記事のdumpデータはxml形式なので、ここから本文を抽出します。
wikiextractor
というパッケージを使うことで簡単にできるはずなのですが、2022/03/20に試したところいくつか不具合を踏んでしまって困ったので、うまくいった方法を紹介します。
wikiextractorのREADMEでは以下の方法が紹介されています。
git clone https://github.com/attardi/wikiextractor
cd wikiextractor
python -m wikiextractor.WikiExtractor <Wikipedia dump file>
しかしこの方法ではbdb.BdbQuit
なる実行時エラーが出てしまいうまくいきません。
解決方法
pipでのinstallに切り替え、v3.0.4をinstallします。3.0.5と3.0.6では上記の問題が起こっているようです。
また、Pythonのバージョンが3.7以前であることを確認し、3.8以降であれば切り替えます。3.8以降ではv3.0.4をインストールしてもTypeError: cannot pickle '_io.TextIOWrapper' object
と出てしまいます。
pyenvでPythonを管理していれば、次のようにします。
pyenv local 3.7
pip install wikiextractor==3.0.4
wikiextractor <Wikipedia dump file>
これでプレーンテキストとして本文を抽出することができます。
Discussion