目次
LuceneのFSTの修正に関連して、Kuromojiのパフォーマンス問題が出ているようです。 この問題自体はLucene 8.6.0以降で直る予定のようなのです(Elasticsearchへの影響範囲についてはこれが参考になるかな?)。 で、これに関連して、ベンチマーク計らないとねという話が出ていて、 昔から、LuceneのMikeさんがやっているベンチマークのグラフに載せるのがいいよねという話になっていました。 どうも、これについては、Luceneの中にあるbenchmarkというプロジェクトではなく、MikeさんのGitHubリポジトリにあるプログラムで計測しているようです。
じゃあ、手元でこれどうやって動かすんだろう?ということでやってみたブログになります。 おそらく、99.99%の人は興味ないと思うのでスルーしていただくのがいいと思います。備忘録のために書いてます。
とりあえずgit clone
公開されているリポジトリはこちらです。
手順通りに?
とりあえず、READMEにセットアップなどのやり方があったんで追っていくことに。 とりあえず動くまでの手順は以下のとおりです。
- ディレクトリを決める
$LUCENE_BENCH_HOME
が起点になります。名前は何でもいいみたいです。cd $LUCENE_BENCH_HOME
- リポジトリをクローン -
git clone https://github.com/mikemccand/luceneutil.git util
です。- コレ自体は問題なし。
cd util
- セットアップスクリプトを実行 -
python src/python/setup.py -download
- ここがすごく時間かかります。6GBのファイルをゆっくりダウンロードしてきますので、一晩置いておきましょう(起きたら終わってた)
$LUCENE_BENCH_HOME/data
にenwiki-20120502-lines-1k.txt.lzma
とwikimedium500.tasks
いうファイルがダウンロードされている。
- ダウンロードした圧縮ファイルを展開 -
unlzma enwiki-20120502-lines-1k.txt.lzma
- macOSに
lzma
のコマンド入ってるんですね。知らなかった。 - 終わったら
cd ../
で$LUCENE_BENCH_HOME
に戻っておく
- macOSに
- ベンチマーク対象となるLuceneを用意 -
git clone https://github.com/apache/lucene-solr.git
- READMEには
lucene_candidate
とlucene_baseline
って名前でって書いてあったのですが、これだと、この後の実行フェーズでエラーになりました。 trunk
とpatch
というディレクトリにそれぞれ変更しました。localrun.py
を実行したらこのディレクトリ名だったので(相変わらず、自分、行きあたりばったりな対応してるなぁ。。。)- とりあえず動くかどうかを確認したかったので、
trunk
とpatch
はどちらもリポジトリをclone
したものになってます。動いたのを確認したら、タグを指定して比較したいブランチをチェックアウトする予定。
- READMEには
trunk
とpatch
をビルド -ant jar
*localrun.py
を実行 -cd util
そして。。。- 5.で記述したディレクトリ以外に1箇所Pythonのコードを書き換えた。
src/python/benchUtil.py
内部にhppc-0.8.1.jar
のファイルの存在チェックをしているのだが、2020/06/23時点でのLuceneのリポジトリの依存関係だとhppc-0.8.2.jar
になっており、ファイルが見つからないエラーが出たため、0.8.2
に書き換えた。970行目付近。- 改めて実行したら成功した。
まだ途中
とりあえず、実行するところまではできましたが、結果の見方とかちゃんと調べないとなぁ。 いくつかローカルで対応したものについてはあとでGitHubにIssue立てとくべきだな。
と、動くのを確認したので、日本語周りの準備をしてみてるところです。
-
終わったこと
- 日本語のWikipediaのデータ
jawiki-20200620-pages-articles.xml.bz2
をダウンロードして展開
- 日本語のWikipediaのデータ
-
試している途中
- WikipediaExtractorでXMLからデータを抽出 -
cat ~/tmp/wiki/jawiki-20200620-pages-articles.xml | python -u src/python/WikipediaExtractor.py -b102400m -o extracted
- これは手順が違うかも????
python src/python/wikiXMLToText.py ~/tmp/wiki/20200620-pages-articles.xml ./hoge.txt
- これで、
title
、日付
、本文
が抜き出せそう? - この後に
combineWikiFiles.py
の実行かな?
- これで、
- WikipediaExtractorでXMLからデータを抽出 -
って感じです。 誰得だろうこれ???
comments powered by Disqus