Ask HN: What is the best NLP API/library for sentiment/emotional analysis?

5 points by wu-ikkyu ↗ HN
What is the best, preferably free/open source, NLP API/library out there for sentiment, emotional, concept, and keyword analysis?

I'm currently designing an application which will run NLP on daily journal entries in order to gain a personal meta psychological analysis over time.

Because of the potentially sensitive/private nature of the journal entries, privacy is a very important consideration.

Thank you in advance.

5 comments

[ 2.8 ms ] story [ 29.2 ms ] thread
(comment deleted)
(comment deleted)
What you're asking for can't really exist. If it could I'd provide it for you in spaCy.

There's not really any such thing as "sentiment". You can classify reviews as positive or negative, and then train a model to reproduce those annotations pretty accurately. But a model trained to do that is unlikely to do anything useful for your task --- the knowledge for your task is quite different.

You need to create some labelled data and train your own text classification model. There are tonnes of tools for this. Scikit-Learn, Fast-Text and Vowpal Wabbit are all good places to look, for different use-cases.

>There's not really any such thing as "sentiment". You can classify reviews as positive or negative, and then train a model to reproduce those annotations pretty accurately.

Here's an example of what I'm looking for in terms of sentiment and emotion.

https://natural-language-understanding-demo.mybluemix.net

Journal entries can be given an overall positive/negative sentiment rating and then plotted on a line graph over time.

Drops in positivity could then be further analyzed by looking at the keywords and concepts of the affected time period.

Similar analysis could be done with the emotional analysis (i.e. joy, anger, fear).

I've input a couple test journal entries into that example and it seems feasible, but I'm looking for something free and/or that I could host myself though I realize I may be asking for more than I can get.

You can train a system like this using free tools, but you need the training data.

I'm not sure how IBM trained this system. Honestly I find the accuracy here pretty indistinguishable from chance --- I think there's a strong Barnum effect here.