1
crazybubble 2013-08-07 02:15:43 +08:00
不如按照规则制定一个feature pipeline吧, 每条数据过一下这个pipeline,返回一串feature vector,然后这串feature vector可以反映数据符合规则的程度。比如假如你有规则A和B,数据d1,d2,d3. d1可能满足A不满足B;d2满足B不满足A;d3满足A也满足B。这样可以表达他们成:
d1: [1,0] d2: [0,1] d3: [1,1] |
2
xdyl 2013-08-07 06:40:21 +08:00
除了Java的Drools么发现任何好用的规则引擎
|
3
sujin190 OP @crazybubble 这个不行啊,现在有近千万条数据,有必须在很短的时间内完成,同时每时刻都生成新数据,要定时重复过滤才行,每条过滤肯定不行啊
|
5
luojun 2013-08-08 10:59:00 +08:00
我用过VisualRules规则引擎,可以直接在规则中操作数据库,然后使用RuleExecuter来定时执行,设置为5秒钟执行一次,或者设置为每天的00:00执行一次,你说的很短的时间,大概是多长时间呢?因为这个跟你的规则复杂程度也有关系,我曾经试过在规则中从数据库读取200万左右的数据,然后中间经过规则处理也会生成200多万条中间数据,最后在规则中再将数据写回数据库,大概花了5分钟左右的时间,当时用的个人笔记本电脑,
|
7
xdyl 2013-08-08 13:58:15 +08:00
重新看了一下你的要求。
如果规则会变的话,用Drools也可以。 如果有推理过程的话,用Drools也合适。 如果规则不会变也没什么中间数据。还是直接写代码吧 |