Sentiment Analysis: Train Separate Models or Use One for All We have been tasked with building an in-house sentiment tool and we are going to use it on a multitude of data sources; survey responses, reviews, social listening etc..

This may be obvious to some but I would like to hear some thoughts. So my question is, would you train separate models for each data source since the documents from each source would be quite different? We would then apply the appropriate model depending on the data source.

Or is it best practice to train one model using a sample of all the data sources and apply that model to everything?
I would suggest that you train a single model. The features correlated with positive or negative sentiment in a review are likely the same as those in a survey response. That is, “good” means good in both, “bad” means bad in both. 

In general you should combine models and datasets when you think that the features in the different situations have the same meanings/interpretations. If they have contradictory or different meanings/interpretations, then you should consider training separate models.