Document-level Sentiment Inference with Social, Faction and Discourse Context