def _matchWithFeature(self, c, v, coder_feature, window=1000): cls = BatchIVA batch = Batch() name = "+".join( [c, v] ) filename = os.path.join( cls.feedback_folder, "feedback/"+name+".txt" ) if not os.path.exists(filename): print filename, "not exists" return feedback = [] videoLen = batch._processFeedbackFile(filename, feedback) if c not in cls.coder_backchannel_num: cls.coder_backchannel_num[c] = len(feedback) else: cls.coder_backchannel_num[c] = cls.coder_backchannel_num[c] + len(feedback) try: for feature_name in cls.video_info_buffer[v].iterkeys(): feature_values = cls.video_info_buffer[v][feature_name] for feature_value in feature_values: for f in feedback: if feature_value[0] <= f and f <= feature_value[1]+window: if feature_name in coder_feature: coder_feature[feature_name] = coder_feature[feature_name]+1 else: coder_feature[feature_name] = 1 except Exception, exception: print exception
def aggregate(self, video, aggregated): cls = BatchIVA batch = Batch() ts_set = [] coder_dat_buf = dict() coder_dat_len = dict() videoL = 999999999999L for c in cls.coder_set: name = "+".join([c, video]) filename = os.path.join(cls.feedback_folder, "feedback/"+name+".txt") if not os.path.exists(filename): print filename, "not exists" continue feedback = [] videoLen = batch._processFeedbackFile( filename, feedback ) coder_dat_buf[name] = feedback coder_dat_len[name] = videoLen if videoLen < videoL: videoL = videoLen try: for k in coder_dat_buf.iterkeys(): v = coder_dat_buf[k] if len(v) == 0: pass elif coder_dat_len[k] > videoL + 1500: print coder_dat_len[k], ";", videoL, " [aggregate] ", video, k, " is outlier" else: ts_set.append(v) except Exception, exception: raise exception
def _matchWithFeature(self, coderId, videoId, coder_feature, video_feature, window=1000): try: cls = DiveFeature feedback = [] name = "+".join( [coderId, videoId] ) filename = os.path.join( cls.data_root, "feedback/" + name + ".txt" ) batch = Batch() videoLen = batch._processFeedbackFile(filename, feedback) try: for feature_name in cls.video_info_buffer[videoId].iterkeys(): feature_values = cls.video_info_buffer[videoId][feature_name] for feature_value in feature_values: for f in feedback: if feature_value[0] <= f and f <= feature_value[1]+window: if feature_name in video_feature: video_feature[feature_name] = video_feature[feature_name] + 1 else: video_feature[feature_name] = 1 if feature_name in coder_feature: coder_feature[feature_name] = coder_feature[feature_name] + 1 else: coder_feature[feature_name] = 1 except Exception, exception: print exception except Exception, exception: print "_matchWithFeature => ", exception