Training data for sentiment analysis

NlpMachine LearningText AnalysisSentiment AnalysisTraining Data

Nlp Problem Overview


Where can I get a corpus of documents that have already been classified as positive/negative for sentiment in the corporate domain? I want a large corpus of documents that provide reviews for companies, like reviews of companies provided by analysts and media.

I find corpora that have reviews of products and movies. Is there a corpus for the business domain including reviews of companies, that match the language of business?

Nlp Solutions


Solution 1 - Nlp

http://www.cs.cornell.edu/home/llee/data/

http://mpqa.cs.pitt.edu/corpora/mpqa_corpus

You can use twitter, with its smileys, like this: http://web.archive.org/web/20111119181304/http://deepthoughtinc.com/wp-content/uploads/2011/01/Twitter-as-a-Corpus-for-Sentiment-Analysis-and-Opinion-Mining.pdf

Hope that gets you started. There's more in the literature, if you're interested in specific subtasks like negation, sentiment scope, etc.

To get a focus on companies, you might pair a method with topic detection, or cheaply just a lot of mentions of a given company. Or you could get your data annotated by Mechanical Turkers.

Solution 2 - Nlp

This is a list I wrote a few weeks ago, from my blog. Some of these datasets have been recently included in the NLTK Python platform.

Lexicons


Datasets


References:

Solution 3 - Nlp

Solution 4 - Nlp

If you have some resources (media channels, blogs, etc) about the domain you want to explore, you can create your own corpus. I do this in python:

  • using Beautiful Soup <http://www.crummy.com/software/BeautifulSoup/> for parsing the content that I want to classify.
  • separate those sentences meaning positive/negative opinions about companies.
  • Use NLTK to process this sentences, tokenize words, POS tagging, etc.
  • Use NLTK PMI to calculate bigrams or trigrams mos frequent in only one class

Creating corpus is a hard work of pre-processing, checking, tagging, etc, but has the benefits of preparing a model for a specific domain many times increasing the accuracy. If you can get already prepared corpus, just go ahead with the sentiment analysis ;)

Solution 5 - Nlp

I'm not aware of any such corpus being freely available, but you could try an unsupervised method on an unlabeled dataset.

Solution 6 - Nlp

You can get a large select of online reviews from Datafiniti. Most of the reviews come with rating data, which would provide more granularity on sentiment than positive / negative. Here's a list of businesses with reviews, and here's a list of products with reviews.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionLondon guyView Question on Stackoverflow
Solution 1 - NlpGregory MartonView Answer on Stackoverflow
Solution 2 - NlpKurt BourbakiView Answer on Stackoverflow
Solution 3 - Nlpy2pView Answer on Stackoverflow
Solution 4 - NlpLuchuxView Answer on Stackoverflow
Solution 5 - NlpFred FooView Answer on Stackoverflow
Solution 6 - NlpshiondevView Answer on Stackoverflow