はじめに
今回はラベルを付けるために使用するRule Engineをご紹介します。Rule-based Row FilterでほとんどConfigureの書き方は扱ったので、少し煩雑なルールでご紹介します。
今回のテーマ ~Rule Engine~
覚えてほしいこと
ラベルを付けたいときはRule Engine
やりたいこと
下記のようなルールで、ラベルを付けていきたいと思います。当てはまらなかったら次に行くシステムです。
社員表にて、
- 入社日が、2015年代 であれば ”2代目”
- 出身地が大阪府か京都府、かつ 勤務地が大阪支店 であれば "関西人"
- 出身地が東京都である、かつ 勤務地が東京***であれば"関東人"
- 当てはまらなければ、名前をラベルとしてコピー
Rule Engineの使い方
ラベル付けをする際に使います。
Workflow
workflowは下記からダウンロードできます。
Confirm - Before After
まず、各ルールがどうなっているかを見ていきましょう。
Configure
さて、先ほどの4つのルールを記述していきます。Configureの画面配置は、Rule-based Row Filterとほぼ同じですね。
Step1 - Expression ルールの記述
Rule-based Row Filterと同じように条件を記述していきますが、Rule-based Row Filterは条件の後に来る表現がTRUEもしくはFALSEでしたが、今回はラベルになっている点が異なる点です。
一つ一つ表現を確認していきましょう。KNIMEのルール表現は、上から順番に実行されていきます。
ルール1
入社日のコラムは数値(Integer)型なので、2015年代は「20150101以上、20160101より小さい」という表現ができます。
ルール2
複数含まれるような条件を記述するには、INを使用します。INの後に続く中に値があればTRUEとなります。
ルール3
ワイルドカード表現(wild card)*1を使いたいときは、LIKEを使用します。
ちなみにMATCHは、正規表現*2を使いたいときに使用します。
ルール4
それ以外の残った行についてラベル付けを行いたい場合は、「TRUE => 」という表現を用いましょう。もし、この行がなかった場合、すべての条件に当てはまらなかった行は、欠損値として出力されます。
またここで示した通り、他のコラムの値をラベルとして出力することもできます。
Step2 - Append Column/Replace Column 出力コラム設定
ラベルのコラムを、新規追加するか既存のコラムに上書き保存するかを選択できます。
新規追加する場合は新コラム名を、上書き保存する場合は削除する予定のコラム名を入力します。
おわりに
今回はラベル付けよく使用されるRule Engineについて扱いました。今後出てくるSwitchと併用することでよりパワーを発揮します。 応用範囲は多いかもしれません。個人的にはString Manipulationと使いどころをたまに混合します。基本ラベル付けで覚えておくといいと思います!
コロナ落ち着きませんが、徐々に平常通りの生活に戻りつつありますね。皆さんお気お付けて!ではまた!
余談
さて、ラベル付けに関連するおススメ映画は、「翔んで埼玉」です。これ関東人であればみんなが共感できる内輪ネタが多くて本当に面白いです。埼玉県民であればなおさら面白いと思います。関東出身の方で、爆笑したい方ぜひ!
参考リンク
- KNIME公式Node Pit(英語):
- KNIME Example Workflow(英語):
- KNIME TV(英語):