Ejemplo n.º 1
0
def encode_best_rules(obj):
    """
  Given the resulting rule clusters, package them into renderable
  JSON objects
  """
    from scorpion.learners.cn2sd.rule import rule_to_json
    results = []
    for yalias, rules in obj.rules.items():
        for rule in rules:
            result = rule_to_json(rule, yalias=yalias)
            results.append(result)
    return results
Ejemplo n.º 2
0
def encode_best_rules(obj):
  """
  Given the resulting rule clusters, package them into renderable
  JSON objects
  """
  from scorpion.learners.cn2sd.rule import rule_to_json
  results = []
  for yalias, rules in obj.rules.items():
    for rule in rules:
      result = rule_to_json(rule, yalias=yalias)
      results.append(result)
  return results
Ejemplo n.º 3
0
def encode_top_k(obj):
    """
  extract the top_k per c_value and encode as a dictionary:
  {
    c_val: [json_rules in descending influence order]
  }
  """
    from scorpion.learners.cn2sd.rule import rule_to_json
    results = []  #defaultdict(lambda: defaultdict(list))
    for yalias, top_k_rules in obj.top_k_rules.items():
        for c_val, rules in top_k_rules.iteritems():
            for rule in rules:
                rule.c_range = [c_val, c_val]
                result = rule_to_json(rule, yalias=yalias)
                result['c'] = round(c_val, 3)
                results.append(result)
                #results[yalias][c_val].append(result)
    return results
Ejemplo n.º 4
0
def encode_top_k(obj):
  """
  extract the top_k per c_value and encode as a dictionary:
  {
    c_val: [json_rules in descending influence order]
  }
  """
  from scorpion.learners.cn2sd.rule import rule_to_json
  results = [] #defaultdict(lambda: defaultdict(list))
  for yalias, top_k_rules in obj.top_k_rules.items():
    for c_val, rules in top_k_rules.iteritems():
      for rule in rules:
        rule.c_range = [c_val, c_val]
        result = rule_to_json(rule, yalias=yalias)
        result['c'] = round(c_val, 3)
        results.append(result)
        #results[yalias][c_val].append(result)
  return results
Ejemplo n.º 5
0
 def update_rules(self, label, rules):
     q = """update rules set val=%s where reqid=%s and label = %s;
 insert into rules
   select %s, %s, %s 
   where not exists (
     select 1 from rules where reqid=%s and label = %s
   );
 """
     from scorpion.learners.cn2sd.rule import rule_to_json
     jsons = []
     for rule in rules:
         if isinstance(rule, dict):
             jsons.append(rule)
         else:
             jsons.append(rule_to_json(rule, yalias=label))
     val = json.dumps(jsons)
     self.db.execute(q, val, self.reqid, label, self.reqid, label, val,
                     self.reqid, label)
Ejemplo n.º 6
0
 def update_rules(self, label, rules):
   q = """update rules set val=%s where reqid=%s and label = %s;
   insert into rules
     select %s, %s, %s 
     where not exists (
       select 1 from rules where reqid=%s and label = %s
     );
   """
   from scorpion.learners.cn2sd.rule import rule_to_json
   jsons = []
   for rule in rules:
     if isinstance(rule, dict):
       jsons.append(rule)
     else:
       jsons.append(rule_to_json(rule, yalias=label))
   val = json.dumps(jsons)
   self.db.execute(q, 
       val, self.reqid, label, 
       self.reqid, label, val, 
       self.reqid, label)