jubaconvの使い方

jubatusのconfigではフィルタールールなどを渡せますが、その辺りを使ってみようとすると、正規表現の動作結果を確認したくなりますよね。

jubaconv というコマンドがあるみたいなのですが、どうにも説明がさっぱりとしていて具体的な使い方がわからなかったのですが、勘で弄ったらなんとかなっちゃったので記載しておきます。

まず http://jubat.us/fv_convert.html ここの初めの方にある、最低限のコンフィグを元にしましょう。

{
  "string_filter_types": {},
  "string_filter_rules": [],
  "num_filter_types": {},
  "num_filter_rules": [],
  "string_types": {},
  "string_rules":
    [ { "key": "*", "type": "space",
      "sample_weight": "bin", "global_weight": "bin" }
    ],
  "num_types": {},
  "num_rules": [
    { "key": "*",  "type": "num" }
  ]
}

これをまるっとコピーして ./a.conf などの適当な名前を付けたファイルに記述して、保存。

[hiro@hiro test]$ jubaconv -i json -o fv -c ./a.conf

とすると、入力を待たれるはずなので、

{"message": "hello world"}

とか入力してエンターすると…

[hiro@hiro test]$ jubaconv -i json -o fv -c ./a.conf
{"message": "hello world"}
/message$world@space#bin/bin: 1
/message$hello@space#bin/bin: 1

うん。
動いたような気がする。

あとはconfigのとこをぐにぐにしてはこれを繰り返して、
どんな風にパースされたり、置換されたりするのかをチェックするべし。