[PYTHON] Comment utiliser WikiExtractor.py

Il peut arriver que vous ayez besoin du texte brut de Wikipédia, par exemple parce que vous avez besoin d'un échantillon pour apprendre le traitement du langage naturel. Il existe un OSS appelé wikiextractor qui extrait le corps de l'article des données de vidage fournies par Wikipédia, alors notez comment l'utiliser.

How to Use Tout d'abord, clonez https://github.com/attardi/wikiextractor et copiez WikiExtractor.py dans votre répertoire de travail.

De base

python WikiExtractor.py <path_to_the_wikipedia_dump_file>

Il semble que vous puissiez spécifier directement jawiki-latest-pages-articles.xml.bz2 etc. sans décompresser le fichier de vidage.

Fichier de vidage XML de Wikipedia

curl https://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2 -o jawiki-latest-pages-articles.xml.bz2

Si vous souhaitez spécifier l'année en détail, récupérez-la ici: [https://ja.wikipedia.org/wiki/Wikipedia:%E3%83%87%E3%83%BC% E3% 82% BF% E3% 83% 99% E3% 83% BC% E3% 82% B9% E3% 83% 80% E3% 82% A6% E3% 83% B3% E3% 83% AD% E3% 83% BC% E3% 83% 89](https://ja.wikipedia.org/wiki/Wikipedia: téléchargement de la base de données)

L'état de traitement d'environ 4 millions de titres est affiché dans le journal standard. Le traitement prend des dizaines de minutes à plusieurs heures.

Format de sortie

Un répertoire appelé «texte» est créé et les fichiers sont créés avec la structure suivante.

/text
├─/AA
│ ├─wiki_00
│ ├─wiki_01
│ :
│ └─wiki_99
├─/AB
│ ├─wiki_00
| :
│ └─wiki_99
:
├─/AZ
| ├─wiki_00
| :
├─/BA
| ├─wiki_00
: :

Les articles de Wkipedia sont classés dans l'ordre ABC (ordre alphabétique pour le Wiki japonais) dans l'ordre de ʻAA`.

Chaque wiki_XX est du texte brut et le format est le suivant. Il peut également être sorti au format Json (décrit plus loin).

    <doc id="" revid="" url="" title="">
        ... (Texte de l'article)
        </doc>

Options recommandées

python WikiExtractor.py <input_path> --processes <process_num> -o <output_path> --json -b <n[KMG]>

--- processus: spécifiez comme --processes 8, spécifiez le nombre de cœurs de processeur et procédez à plusieurs processus.

---- json: Sort avec json chaque ligne.

{"id": "", "revid": "", "url":"", "title": "", "text": "..."}

--- b: Par défaut, chaque fichier wiki_XX est séparé par 1 Mo. Vous pouvez assouplir la limite en spécifiant -b 1G. Si vous voulez que la sortie soit un fichier, - b Si vous faites quelque chose comme 5G, il sera généré dans un fichier.

Je veux sortir dans un fichier

Lorsque vous l'utilisez dans le traitement du langage naturel, il peut être pratique d'avoir un fichier texte.

cat text/*/* > jawiki.txt

référence

Recommended Posts

Comment utiliser WikiExtractor.py
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Comment utiliser virtualenv
Comment utiliser Seaboan
Comment utiliser le shogun
Comment utiliser Pandas 2
Comment utiliser Virtualenv
Comment utiliser numpy.vectorize
Comment utiliser pytest_report_header
Comment utiliser partiel
Comment utiliser Bio.Phylo
Comment utiliser SymPy
Comment utiliser x-means
Comment utiliser IPython
Comment utiliser virtualenv
Comment utiliser Matplotlib
Comment utiliser iptables
Comment utiliser numpy
Comment utiliser TokyoTechFes2015
Comment utiliser venv
Comment utiliser le dictionnaire {}
Comment utiliser Pyenv
Comment utiliser la liste []
Comment utiliser python-kabusapi
Comment utiliser OptParse
Comment utiliser le retour
Comment utiliser pyenv-virtualenv
Comment utiliser imutils
Comment utiliser Qt Designer
Comment utiliser la recherche triée
[gensim] Comment utiliser Doc2Vec
python3: Comment utiliser la bouteille (2)
Comprendre comment utiliser django-filter
Comment utiliser le générateur
[Python] Comment utiliser la liste 1
Comment utiliser FastAPI ③ OpenAPI
Comment utiliser Python Argparse
Comment utiliser IPython Notebook
Comment utiliser Pandas Rolling
[Note] Comment utiliser virtualenv
Comment utiliser les dictionnaires redis-py
Python: comment utiliser pydub
[Python] Comment utiliser checkio
[Aller] Comment utiliser "... (3 périodes)"
Comment faire fonctionner GeoIp2 de Django
[Python] Comment utiliser input ()
Comment utiliser le décorateur
[Introduction] Comment utiliser open3d
Comment utiliser Python lambda
Comment utiliser Jupyter Notebook
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Comment utiliser Google Colaboratory
Comment utiliser les octets Python
Comment utiliser cron (mémo personnel)
Python: comment utiliser async avec