Source code for sussex_nltk.evaluation
'''
.. codeauthor::
    Simon Wibberly
'''
[docs]def eval_sentiment(output_file):
    """
    evaluation routine for lang eng course sentiment analysis tasks
    
    should be in the format:
    
    [gold] [prediction]
    
    where tags are either P or N for positive and negative respectively
    
    """
    
    try:
        f = open(output_file)
    
    except IOError, ioe:
        print 'error opening file', ioe
    else :
        
        
        correct = 0.0
        incorrect = 0.0
        
        for line in f:
            split_line = line.split()
            if len(split_line) == 2:
                x, y = split_line
                
                if x == y:
                    correct += 1
                else:
                    incorrect += 1
                    
        try:
            accuracy = correct / (correct + incorrect)
        except ZeroDivisionError:
            accuracy = 0
        
        print "accuracy: %f" % ( accuracy )
        
        return accuracy