def subeventpie(): """子观点占比 """ topic_name = request.args.get('query', default_topic_name) # 话题名 # topic_name = u'APEC2014-微博' topicid = em.getEventIDByName(topic_name) eventcomment = EventComments(topicid) comments = eventcomment.getAllNewsComments() cluster_ratio = dict() for comment in comments: if 'clusterid' in comment: clusterid = comment['clusterid'] try: cluster_ratio[clusterid] += 1 except KeyError: cluster_ratio[clusterid] = 1 results = dict() total_count = sum(cluster_ratio.values()) for clusterid, ratio in cluster_ratio.iteritems(): feature = eventcomment.get_feature_words(clusterid) if feature and len(feature): results[','.join(feature[:3])] = float(ratio) / float(total_count) return json.dumps(results)
def ratio(): """子观点占比 """ topic_name = request.args.get('query', default_topic_name) # 话题名 news_id = request.args.get('news_id', default_news_id) topicid = em.getEventIDByName(topic_name) eventcomment = EventComments(topicid) comments = eventcomment.getNewsComments(news_id) cluster_ratio = dict() for comment in comments: if 'clusterid' in comment: clusterid = comment['clusterid'] try: cluster_ratio[clusterid] += 1 except KeyError: cluster_ratio[clusterid] = 1 results = dict() total_count = sum(cluster_ratio.values()) for clusterid, ratio in cluster_ratio.iteritems(): feature = eventcomment.get_feature_words(clusterid) if feature and len(feature): results[','.join(feature[:3])] = float(ratio) / float(total_count) return json.dumps(results)
def keywords(): """关键词 """ topic_name = request.args.get('query', default_topic_name) # 话题名 news_id = request.args.get('news_id', default_news_id) topicid = em.getEventIDByName(topic_name) eventcomment = EventComments(topicid) clusterids = eventcomment.get_cluster_ids(news_id) results = dict() for clusterid in clusterids: fwords = eventcomment.get_feature_words(clusterid) results[clusterid] = [fwords[:5], fwords] return json.dumps(results)
def keywords(): """关键词 """ topic_name = request.args.get('query', default_topic_name) # 话题名 news_id = request.args.get('news_id', default_news_id) topicid = em.getEventIDByName(topic_name) eventcomment = EventComments(topicid) clusterids = eventcomment.get_cluster_ids(news_id) results = dict() for clusterid in clusterids: fwords = eventcomment.get_feature_words(clusterid) results[clusterid] = [fwords[:5], fwords] return json.dumps(results)
def cluster(): """展现聚类结果 """ topic_name = request.args.get('query', default_topic_name) # 话题名 news_id = request.args.get('news_id', default_news_id) sort_by = request.args.get('sort', 'weight') topicid = em.getEventIDByName(topic_name) eventcomment = EventComments(topicid) comments = eventcomment.getNewsComments(news_id) cluster_results = dict() for comment in comments: if 'clusterid' in comment: clusterid = comment['clusterid'] try: cluster_results[clusterid].append(comment) except KeyError: cluster_results[clusterid] = [comment] ''' sentiment_dict = dict() for clusterid, comments in cluster_results.iteritems(): positive = 0 negative = 0 for c in comments: if c['sentiment'] == 1: positive += 1 if c['sentiment'] in [2, 3]: negative += 1 sentiment_dict[clusterid] = u'(积极:' + str(positive) + ',' + u'消极:' + str(negative) + ')' ''' results = dict() for clusterid in cluster_results: feature = eventcomment.get_feature_words(clusterid) if feature and len(feature): cluster_results[clusterid].sort(key=lambda c: c[sort_by], reverse=True) results[clusterid] = [ ','.join(feature[:5]), cluster_results[clusterid] ] return json.dumps(results)
def cluster(): """展现聚类结果 """ topic_name = request.args.get('query', default_topic_name) # 话题名 news_id = request.args.get('news_id', default_news_id) sort_by = request.args.get('sort', 'weight') topicid = em.getEventIDByName(topic_name) eventcomment = EventComments(topicid) comments = eventcomment.getNewsComments(news_id) cluster_results = dict() for comment in comments: if 'clusterid' in comment: clusterid = comment['clusterid'] try: cluster_results[clusterid].append(comment) except KeyError: cluster_results[clusterid] = [comment] ''' sentiment_dict = dict() for clusterid, comments in cluster_results.iteritems(): positive = 0 negative = 0 for c in comments: if c['sentiment'] == 1: positive += 1 if c['sentiment'] in [2, 3]: negative += 1 sentiment_dict[clusterid] = u'(积极:' + str(positive) + ',' + u'消极:' + str(negative) + ')' ''' results = dict() for clusterid in cluster_results: feature = eventcomment.get_feature_words(clusterid) if feature and len(feature): cluster_results[clusterid].sort(key=lambda c: c[sort_by], reverse=True) results[clusterid] = [','.join(feature[:5]), cluster_results[clusterid]] return json.dumps(results)