def read_range_count_results(start_ts, over_ts, during=Hour): over_ts = ts2HourlyTime(over_ts, MinInterval) interval = (over_ts - start_ts) / during emotion_dic = {} if during <= MinInterval: for k, v in emotions_kv.iteritems(): count = read_count_results(v, over_ts=over_ts, during=during) emotion_dic[k] = [over_ts * 1000, count] else: end_ts = over_ts start_ts = end_ts - during for k, v in emotions_kv.iteritems(): count = read_count_results(v, start_ts=start_ts, over_ts=end_ts, during=during) emotion_dic[k] = [end_ts * 1000, count] return emotion_dic
def read_range_weibos_results(start_ts, over_ts, during=Hour): over_ts = ts2HourlyTime(over_ts, MinInterval) interval = (over_ts - start_ts) / during emotion_dic = {} if during <= MinInterval: for k, v in emotions_kv.iteritems(): weibos = read_weibo_results(v, over_ts=over_ts, during=during) emotion_dic[k] = weibos else: end_ts = over_ts start_ts = end_ts - during for k, v in emotions_kv.iteritems(): weibos = read_weibo_results(v, start_ts=start_ts, over_ts=end_ts, during=during) emotion_dic[k] = weibos return emotion_dic
def keywords_data(area='global'): """情绪关键词数据 """ customized = request.args.get('customized', '1') query = request.args.get('query', None) if query: query = query.strip() during = request.args.get('during', 24*3600) during = int(during) ts = request.args.get('ts', '') ts = long(ts) begin_ts = ts - during end_ts = ts limit = request.args.get('limit', 50) limit = int(limit) emotion = request.args.get('emotion', 'global') results = {} if area == 'global': search_method = 'global' if query: search_method = 'topic' area = None else: search_method = 'domain' #area = FIELDS2ID[area] area = area search_func = getattr(keywordsModule, 'search_%s_keywords' % search_method, None) if search_func: if emotion == 'global': for k, v in emotions_kv.iteritems(): results[k] = search_func(end_ts, during, v, query=query, domain=area, top=limit, customized=customized) else: results[emotion] = search_func(end_ts, during, emotions_kv[emotion], query=query, domain=area, top=limit, customized=customized) else: return json.dumps('search function undefined') return json.dumps(results)
def data(area='global'): """分类情感数据 """ customized = request.args.get('customized', '1') query = request.args.get('query', None) if query: query = query.strip() during = request.args.get('during', 24*3600) during = int(during) ts = request.args.get('ts', '') ts = long(ts) begin_ts = ts - during end_ts = ts emotion = request.args.get('emotion', 'global') results = {} if area == 'global': search_method = 'global' if query: search_method = 'topic' area = None else: search_method = 'domain' area = FIELDS2ID[area] #将字段转化为对应的索引 search_func = getattr(countsModule, 'search_%s_counts' % search_method, None) if search_func: if emotion == 'global': for k, v in emotions_kv.iteritems(): #工厂模式下分别对三种情感计数 results[k] = search_func(end_ts, during, v, query=query, domain=area, customized=customized) else: results[emotion] = search_func(end_ts, during, emotions_kv[emotion], query=query, domain=area, customized=customized) else: return json.dumps('search function undefined') return json.dumps(results)