Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #6
0
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)