示例#1
0
文件: views.py 项目: huxiaoqian/case
def get_topic_data(topic, start_ts, end_ts):
    result = {}
    if topic=='APEC':
        result['topic_name'] = 'APEC2014'
    else:
        result['topic_name'] = topic
    result['start_ts'] = ts2datetime(start_ts)
    result['end_ts'] = ts2datetime(end_ts - 3600 * 24)
    propagate_peak = get_propagate_peak(topic, start_ts, end_ts)
    result['propagate_peak'] = json2list('propagate_peak', propagate_peak)
    propagate_peak_news = get_propagate_peak_news(topic, start_ts, end_ts)
    result['propagate_peak_news'] = json2list('propagate_peak_news', propagate_peak_news)
    propagate_keywords = get_propagate_keywords(topic, start_ts, end_ts)
    result['propagate_keywords'] = json2str('propagate_keywords' , propagate_keywords)
    identify_firstuser = get_identify_firstuser(topic, start_ts, end_ts)
    result['identify_firstuser'] = json2str('identify_firstuser', identify_firstuser)
    identify_trendpusher = get_identify_trendpusher(topic, start_ts, end_ts)
    result['identify_trendpusher'] = json2str('identify_trendpusher', identify_trendpusher)
    identify_pagerank = get_identify_pagerank(topic, start_ts, end_ts)
    result['identify_pagerank'] = json2str('identify_pagerank', identify_pagerank)
    result['evolution_topcity'] = get_evolution_topcity(topic, start_ts, end_ts)
    result['moodlens_sentiment'] = get_moodlens_sentiment(topic, start_ts, end_ts)
    result['moodlens_keywords'] = get_moodlens_keywords(topic, start_ts, end_ts)
    result['moodlens_peak'] = get_moodlens_peak(topic, start_ts, end_ts)
    #result['news_fishbone'] = get_news_fishbone()
    topic_abstract = get_topic_abstract(topic, start_ts, end_ts, result['moodlens_sentiment'], propagate_keywords, result['evolution_topcity'])
    result['topic_abstract'] = topic_abstract['abstract']
    return result
示例#2
0
文件: views.py 项目: huxiaoqian/case
def get_topic_abstract(topic_name, start_ts, end_ts, sentiment, keywords, city):
    results = {} # 没有数据--js中写进去的数据
    # 事件发生时间、事件发生地点
    # compute: 舆情信息起止时间、参与人数、舆情信息累积数、参与人群集中地点、关键词、网民情绪占比
    start_date = ts2datetime(start_ts)
    results['info_start'] = start_date
    end_date = ts2datetime(end_ts)
    results['info_end'] = end_date
    user_count, weibo_count = get_info_num(topic_name)
    results['user_count'] = user_count
    results['weibo_count'] = weibo_count
    sentiment_allcount = 0
    sentiment_ratio = {}
    for sentiment_item in sentiment:
        sentiment_allcount += sentiment[sentiment_item]
    for item in sentiment:
        sentiment_ratio[item] = sentiment[item] / (float(sentiment_allcount))
    results['sentiment_ratio'] = sentiment_ratio
    sort_keywords = sorted(keywords.iteritems(), key=lambda x:x[1], reverse=True)
    results['keywords'] = sort_keywords
    city_list = []
    for k in city:
        city_list.append(k[0])
    results['city'] = city_list
    abstract = creat_abstract(results)
    return abstract
示例#3
0
文件: views.py 项目: huxiaoqian/case
def network_quota():
    quota = request.args.get('quota','')
    print 'quota:', quota
    topic = request.args.get('topic','')
    start_ts = request.args.get('start_ts','')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts','')
    end_ts = int(end_ts)
    date = ts2datetime(end_ts)
    windowsize = (end_ts - start_ts ) / Day
    network_type = request.args.get('network_type', '')
    print 'network_type:', network_type
    key = _utf8_unicode(topic)+'_'+str(date)+'_'+str(windowsize)+'_'+quota+'_'+network_type
    try:
        ssdb = SSDB(SSDB_HOST, SSDB_PORT)
        value = ssdb.request('get',[key])
        print 'value.code:', value.code
        if value.code == 'ok' and value.data:
            print 'ok'
            response = make_response(value.data)
            return response
        return None
    except Exception, e:
        print e
        return None
示例#4
0
文件: views.py 项目: huxiaoqian/case
def network():
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts', '')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts', '')
    end_ts = int(end_ts)
    windowsize = (end_ts - start_ts)/Day
    windowsize = int(windowsize)
    end = ts2datetime(end_ts)
    network_type = request.args.get('network_type', '')
    module = 'identify'
    print 'topic, end_ts, windowsize, network_type:', topic.encode('utf-8'), end, windowsize,network_type  
    topic_status = get_topic_status(topic, start_ts, end_ts, module)
    print 'graph_status:', topic_status
    if topic_status == COMPLETED_STATUS:
        query_key =_utf8_unicode(topic) + '_' + str(end) + '_' + str(windowsize) + '_' + network_type
        print 'key:', query_key.encode('utf-8')
        key = str(query_key)
        try:
            ssdb = SSDB(SSDB_HOST, SSDB_PORT)
            results = ssdb.request('get', [key])
            print 'results.code:', results.code
            if results.code == 'ok' and results.data:
                print 'result_code ok'
                response = make_response(results.data)
                response.headers['Content-Type'] = 'text/xml'
                return response
            return None
        except Exception, e:
            print 'error',e
            return None
示例#5
0
文件: views.py 项目: huxiaoqian/case
def get_identify_trendpusher(topic, start_ts, end_ts):
    results = []
    windowsize = (end_ts - start_ts) / Day
    date = ts2datetime(end_ts)
    trenduser_table = read_trend_user_table(topic, date, windowsize)
    if not trenduser_table:
        return []
    results = trenduser_table[1][1:]

    return results
示例#6
0
文件: views.py 项目: huxiaoqian/case
def get_identify_pagerank(topic, start_ts, end_ts):
    results = {}
    topn = 10
    rank_method = 'spark_pagerank'
    domain = 'all'
    windowsize = (end_ts - start_ts) / Day
    date = ts2datetime(end_ts)
    results = read_topic_rank_results(topic, topn, rank_method, date, windowsize, domain)
    
    return results
示例#7
0
文件: views.py 项目: huxiaoqian/case
def trend_user():
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts', '')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts','')
    end_ts = int(end_ts)
    date = ts2datetime(end_ts)
    windowsize = (end_ts - start_ts) / Day
    results = read_trend_user_table(topic,  date, windowsize)
    #print 'trend_user:', results 
    return json.dumps(results)
示例#8
0
文件: views.py 项目: huxiaoqian/case
def get_identify_firstuser(topic, start_ts, end_ts):
    results = []
    windowsize = (end_ts - start_ts) / Day
    date = ts2datetime(end_ts)
    top_n = 20
    firstuser_table = read_table_fu(topic, date, windowsize, top_n)
    if len(firstuser_table)==1:
        return []
    results = firstuser_table[0]
    
    return results
示例#9
0
文件: views.py 项目: huxiaoqian/case
def network_uid_weibos():
    uid = request.args.get('uid', '')
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts', '')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts', '')
    end_ts = int(end_ts)
    date = ts2datetime(end_ts)
    windowsize = (end_ts - start_ts) / Day
    results = read_uid_weibos(topic, date, windowsize, uid)
    return json.dumps(results)
示例#10
0
文件: views.py 项目: huxiaoqian/case
def network_domain_first_user():
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts', '')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts', '')
    end_ts = int(end_ts)
    domain = request.args.get('domain','')
    rank_method = request.args.get('rank_method','')
    date = ts2datetime(end_ts)
    windowsize = (end_ts - start_ts) / Day
    results = time_domain_top_user(topic, date, windowsize, domain, rank_method)
    return json.dumps(results)
示例#11
0
文件: views.py 项目: huxiaoqian/case
def table_fu():
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts','')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts','')
    end_ts = int(end_ts)
    top_n = request.args.get('topn','')
    date = ts2datetime(end_ts)
    windowsize = (end_ts - start_ts) / Day
    results = read_table_fu(topic, date, windowsize, top_n)

    return json.dumps(results)
示例#12
0
文件: views.py 项目: huxiaoqian/case
def trend_makers():
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts', '')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts', '')
    end_ts = int(end_ts)
    rank_method = request.args.get('rank_method', '') # content, timestamp,reposts_count, friends_count, statuses_count 
    date = ts2datetime(end_ts)
    windowsize = (end_ts - start_ts) / Day
    results = read_trend_maker(topic, date, windowsize, rank_method)
    #print 'trend_maker:',results
    return json.dumps(results)
示例#13
0
文件: views.py 项目: huxiaoqian/case
def trend_pushers():
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts', '')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts', '')
    end_ts = int(end_ts)
    rank_method = request.args.get('rank_method', '')
    date = ts2datetime(end_ts)
    windowsize = (end_ts - start_ts) / Day
    results = read_trend_pusher(topic, date, windowsize, rank_method)
    #print 'trend_pusher:', results
    return json.dumps(results)
示例#14
0
文件: views.py 项目: huxiaoqian/case
def closeness_centrality_rank():
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts', '')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts', '')
    end_ts = int(end_ts)
    windowsize = (end_ts - start_ts ) / Day
    date = ts2datetime(end_ts)
    topn = request.args.get('topn', 100)
    topn = int(topn)
    domain = request.args.get('domain', 'all')
    results = read_closeness_centrality_rank(topic, topn, date, windowsize, domain)
    return json.dumps(results)
示例#15
0
文件: views.py 项目: huxiaoqian/case
def network_first_user():
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts', '')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts', '')
    end_ts = int(end_ts)
    rank_method = request.args.get('rank_method','')
    date = ts2datetime(end_ts)
    windowsize = (end_ts - start_ts) / Day
    results = time_top_user(topic, date, windowsize, rank_method)
    #print 'view-len(results):', len(results)
    #print 'results[0]:', results[0]
    return json.dumps(results)
示例#16
0
文件: views.py 项目: huxiaoqian/case
def neighbor_weibo_by_ts():
    uid = request.args.get('uid', '')
    # uid 在网络节点以str形式存放
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts', '')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts', '')
    end_ts = int(end_ts)
    date = ts2datetime(end_ts)
    windowsize = (end_ts - start_ts) / Day
    network_type = request.args.get('network_type', 'source_graph')
    rank_method = request.args.get('rank_method', 'timestamp')
    results = n_weibo_by_ts(topic, date, windowsize, uid, network_type, rank_method)
    return json.dumps(results)
示例#17
0
文件: views.py 项目: huxiaoqian/case
def ds_network_pr_rank():
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts', '')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts', '')
    end_ts = int(end_ts)
    windowsize = (end_ts - start_ts) / Day
    topn = request.args.get('topn', 100)
    topn = int(topn)
    domain = request.args.get('domain','all')
    date = ts2datetime(end_ts)
    rank_method = 'spark_pagerank'
    results = read_ds_topic_rank_results(topic, topn, date, windowsize, domain, rank_method)
    return json.dumps(results)
示例#18
0
文件: views.py 项目: huxiaoqian/case
def network_uid_community():
    uid = request.args.get('uid', '')
    # uid 在网络节点以str形式存放
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts', '')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts', '')
    end_ts = int(end_ts)
    date = ts2datetime(end_ts)
    windowsize = (end_ts - start_ts) / Day
    network_type = request.args.get('network_type', 'source_graph')
    community_id = request.args.get('community_id', '')
    community_id = int(community_id)
    results = read_uid_community(topic, date, windowsize, uid, network_type, community_id)
    return json.dumps(results)
示例#19
0
文件: views.py 项目: huxiaoqian/case
def network_uid_neighbor():
    uid = request.args.get('uid', '')
    #print 'uid:', uid
    uid = int(uid)
    topic = request.args.get('topic', '')
    start_ts = request.args.get('start_ts', '')
    start_ts = int(start_ts)
    end_ts = request.args.get('end_ts', '')
    end_ts = int(end_ts)
    date = ts2datetime(end_ts)
    windowsize = (end_ts - start_ts) / Day
    network_type = request.args.get('network_type','source_graph')
    # network_type="source_graph" or 'direct_superior_graph'
    results = read_uid_neighbors(topic, date, windowsize , uid, network_type)
    return json.dumps(results)