LoginSignup
4
7

More than 3 years have passed since last update.

WikipediaからCorpusを作る

Last updated at Posted at 2019-05-23

最近、日本語解析をしっかりやろうと思い、日本語分析環境を作り始めました。
Python3系を開発ツールと考えています。

環境

  • MacBook Pro 15 2017
  • macOS Mojave 10.14.4
  • 2.8GHz Core i7
  • Ram 16 GB

MeCabとNEologdをすでに入れてあります。

形態素解析と、SentencePieceを比べるが目的です

Wikipediaから日本語コンテンツをダウンロードする

コマンド wgetでも curlでも 最新版指定

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

結構時間がかかる1時間程度 3GB程度です

ダウンロード後タグ除去する WikiExtractor.py

WikiExtractor  http://medialab.di.unipi.it/wiki/Wikipedia_Extractor
Gitから、 https://github.com/attardi/wikiextractor.git 
ダウンロードしてもクローンしても良い

$ git clone https://github.com/attardi/wikiextractor.git

ホルダーの中のWikiExtractor.pyを使えば良い
注意:Gitのinstallセクションで python setup.py install と書いてあるが setup.pyが無いので無視

WikiExtractor.pyを使って文章のみを切り出す

optional arguments:
-h, --help help
-o OUTPUT, --output OUTPUT, output directory 出力ディレクトリー
-b n[KM], --bytes n[KM] defaultは1M 1つのCorpusサイズ
-B BASE, --base BASE base URL for the Wikipedia pages
-c, --compress compress output files using bzip
この程度分かれば使える

提供サイトのサンプルコードが分かり安い
extractedホルダーに、250Kで、Corpusを展開する

$ WikiExtractor.py -cb 250K -o extracted itwiki-latest-pages-articles.xml.bz2

それを一つのテキストにまとめる
```
$ find extracted -name '*bz2' -exec bzip2 -c {} \; > text.xml


### sentencepieceのモデルを作成
$ pip install sentencepiece

モデルを作る
```python
import sentencepiece as spm
spm.SentencePieceTrainer.Train('--input=wiki.txt, --model_prefix=m --character_coverage=1.0 --vocab_size=32000')

なかなか上手くゆかない、Jupyter notebookではカーネルが落ちてしまう
メモリーとの関係で学習サイズを分解して実行しないといけない。
$ split -l 行数 対象テキスト 接頭子

Wikiならば学習されたモデルが公開されている
https://yoheikikuta.github.io/bert-japanese/

4
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7