H

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"の部分の"."を消すとうまくいくかもしれません。

 

こっちも参考に.

scuser.hatenablog.jp

 

------2021-06-20追記-----

 

確実に成功させる方法

CUILinuxCentOS)を使っていてエラーが出ない方法を見つけたので報告

 

まず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でも同じだと思う。

 

参考:

github.com