示例#1
0
 def calculate_feedback(grouped):
     result = {}
     for username in grouped:
         if not is_valid_matrikel_nummer(username):
             continue
         value = grouped[username]
         feedback_lengths = [int(line[COMMENT_LENGTH_COL]) for line in value]
         median_feedback = median(feedback_lengths)
         result[username] = median_feedback
     return result
示例#2
0
 def handle_forum_entries(grouped):
     result = {}
     for username in grouped:
         if not is_valid_matrikel_nummer(username):
             continue
         value = grouped[username]
         written_count = len(value)
         subject_lengths = [int(line[SUBJ_COL]) for line in value]
         text_lengths = [int(line[TEXT_COL]) for line in value]
         result[username] = (written_count, average(subject_lengths), median(text_lengths))
     return result
示例#3
0
 def calculate_avg_score(grouped):
     result = {}
     for username in grouped:
         if not is_valid_matrikel_nummer(username):
             continue
         value = grouped[username]
         by_result_id = groupby(value, [RESULT_ID_COL])
         result_scores = [float(line[0][RESULT_SCORE_COL]) \
                          for line in by_result_id.values()]
         avg_score = average(result_scores)
         num_scores = len(by_result_id.keys())
         max_score = max(result_scores)
         if max_score == 0:
             quality_score = 0
         else:
             quality_score = float(sum(result_scores)) / float(max_score)
         result[username] = (quality_score, avg_score, num_scores)
     return result
示例#4
0
 def count_pluses(d):
     return dict((x, len(d[x])) for x in d\
                 if is_valid_matrikel_nummer(x))
示例#5
0
 def calculate_read(grouped):
     return dict((username, len(grouped[username])) for username in grouped\
                 if is_valid_matrikel_nummer(username))