PythonのWikiExtractorで躓いた話
日本語版Wikipediaでダンプをダウンロードして、WikiExtractorを用いて文章を抽出しようとしていた時にそれは起こった。
さて実行しようと思ったとき、次のようなエラーが……
File "WikiExtractor.py", line 60, in <module>
from .extract import Extractor, ignoreTag, define_template, acceptedNamespaces
ImportError: attempted relative import with no known parent package
まず文を翻訳するとこんなことだった。
<module>内のファイル「WikiExtractor.py」、60行目
.extract import Extractor、ignoreTag、define_template、acceptedNamespacesから
ImportError:既知の親パッケージがない状態で相対インポートを試行しました
……何を言っているのかいまいち理解できないけど、60行目に原因がありそう。
そう思ってVS Codeで見てみると、importのところで、.expertとなっているところを発見。なので"."のみにしてリトライすると無事成功しました。(多分)
もしかしたら自分のとこだけかもしれないけど、一応報告。
追記
バージョンを2.75にするとうまくいきます。上記の訂正部分は勘違いでした。
......あともしかしたら、Ver3.00は60行目の".extract"の部分の"."を消すとうまくいくかもしれません。
こっちも参考に.
------2021-06-20追記-----
確実に成功させる方法
CUIのLinux(CentOS)を使っていてエラーが出ない方法を見つけたので報告
まずwikipediaのデータをゲットするところから。CUIなのでwgetを使って
wget https://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2
を実行します。
で次にgitを使います
git clone https://github.com/attardi/wikiextractor
を実行して、クローンします。
次に
cd wikiextractor
というコマンドを実行して、
python3 wikiextractor.WikiExtractor ~/.jawiki-latest-pages-articles.xml.bz2
とやるとできます。
多分Windwosでも同じだと思う。
参考: