Background

For the project Map World News, I needed to do sentiment analysis on articles, to show the map above. A popular options is to use the NLTK library, but it can be difficult to deploy.

I originally used the amazing Data Science Toolkit by Pete Warden, which provides a set of simple HTTP APIs, and a python library to make it even simpler. However DSTK is not local, so processing a lot of different items is very time consuming.

I learned that DSTK used a simple algorithm and a wordlist from Finn Årup Nielsen, and implemented it myself on Map World News. However, that was a little bit of work, and things have just gotten even easier:

Fast, local, sentiment analysis in Python

Finn Årup Nielsen has just released a Python module named AFINN to add sentiment analysis using his wordlist to your project, and it could not be easier:

>>> from afinn import Afinn >>> afinn = Afinn() >>> afinn.score('This is utterly excellent!') 3.0 In Danish: >>> afinn = Afinn(language='da') >>> afinn.score('Hvis ikke det er det mest afskyelige flueknepperi...') -6.0 With emoticons: >>> afinn = Afinn(emoticons=True) >>> afinn.score('I saw that yesterday :)') 2.0

To install AFINN, simply run

pip install afinn

You can see AFINN working on Map World News in /api/article.py.