Ejemplo n.º 1
0
def get_sentiment(company_id, text):
    alchemyapi = AlchemyAPI()
    key_phrases = []
    for apikey in engine.get_random_alchemy_credentials():
        alchemyapi.apikey = apikey
        response = alchemyapi.keywords('text', text, {'sentiment': 1})
        if response['status'] == 'OK':
            if len(response['keywords']) == 0:
                return 0
            # related_words = models.RelatedWord.query.filter_by(company_id=company_id).all()
            for keyword in response["keywords"]:
                if 'sentiment' in keyword:
                    if keyword['sentiment'].has_key('score'):
                        key_phrases.append(float(keyword['sentiment']['score']))
                    elif keyword['sentiment']['type'] == 'neutral':
                        key_phrases.append(0)

            if len(key_phrases) == 0:
                return 0
            else:
                return float("{0:.2f}".format(sum(key_phrases)/len(key_phrases)))
        elif response['status'] == 'ERROR' and response['statusInfo'] != 'unsupported-text-language':
            print "ERROR: getting sentiment " + response['statusInfo']
            # Skip onto the next api key
            continue
        else:
            print "None of the above " + response['statusInfo']
            return 0
    #Return none when all api keys are exhausted
    return None
Ejemplo n.º 2
0
def generate_concepts_for_company(company_id, tweets):
    all_tweets_as_string = ' '.join(tweets)
    alchemyapi = AlchemyAPI()
    api_error = False
    for apikey in engine.get_random_alchemy_credentials():
        alchemyapi.apikey = apikey
        response = alchemyapi.concepts('text', all_tweets_as_string)
        related_words = []
        if response['status'] == 'OK':
            for concept in response['concepts']:
                related_words.append(concept['text'])
        elif response['status'] == 'ERROR' and tweets != []:
            print "ERROR getting concepts" + response['statusInfo']
            api_error = True
            # Move onto the next api key
            continue
    # Return null when all api keys are exhausted
    if api_error and len(related_words) == 0:
        return None
    return related_words