珠玉のダジャレ生成プロジェクトレポジトリ Rhymer
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
.gitignore
Dockerfile
README.org
docker-compose.yml

README.org

Rhymer

珠玉のダジャレ生成プロジェクトレポジトリ Rhymer

現状

Docker で、

  1. mecab-unidic-NEologd で make された CSV を作ります。
  2. CSV ファイルから単語を PostgreSQL のデータベースに流し込みます。(create-db.sh)
  3. Happy rhyming!

How to use

準備

export PGVERSION=11 # or 10, 9, ...
docker-compose down
docker-compose up --build -d
docker-compose run app ./create-db.sh

./create-db.sh で CSV からデータベースへデータを流し込みます。

これで select-word.rb のようにすると、Ruby の String オブジェクトに #dajare メソッドが生えます。

Ruby 実行例

require './select-word.rb'

'した'.dajare

ランダムでその読み方で始まるダジャレが出力されます。

Benchmarks

Creating DB

export PGVERSION=11
docker-compose down
docker-compose up --build -d
time docker-compose run app ./create-db.sh

のベンチマーク

PostgreSQL 11

1.03user 0.15system 0:18.60elapsed 6%CPU (0avgtext+0avgdata 47632maxresident)k
0inputs+8outputs (0major+25368minor)pagefaults 0swaps

PostgreSQL 10

1.00user 0.18system 0:18.11elapsed 6%CPU (0avgtext+0avgdata 45760maxresident)k
0inputs+8outputs (0major+25251minor)pagefaults 0swaps

PostgreSQL 9

1.01user 0.17system 0:19.43elapsed 6%CPU (0avgtext+0avgdata 45524maxresident)k
0inputs+8outputs (0major+25194minor)pagefaults 0swaps

Selecting

docker-compose run app ruby benchmark-select.rb
  • String.dajare は Ruby のコードで String に dajare メソッドをはやしたものを多数起動するものです。毎回データベースに接続し直すという雑な実装です。
  • PostgreSQL select は、それはあんまりなので1回だけデータベースに接続して、そのまま SELECT を発行するベンチマークです。

PostgreSQL 11

                 user     system      total        real
String.dajare  1.571993   0.133628   1.705621 ( 27.632465)
                 user     system      total        real
PostgreSQL select  0.030765   0.012489   0.043254 ( 49.565850)

PostgreSQL 10

                 user     system      total        real
String.dajare  1.603802   0.152695   1.756497 ( 28.066918)
                 user     system      total        real
PostgreSQL select  0.017889   0.025146   0.043035 ( 50.333151)

PostgreSQL 9

                 user     system      total        real
String.dajare  1.897162   0.184556   2.081718 ( 79.409097)
                 user     system      total        real
PostgreSQL select  0.017323   0.045738   0.063061 (150.408147)

Thanks

  • mecab-unidic-NEologd (mecab の追加用辞書。しょっちゅう新しい単語が追加されている)