Semantic Partitioning and Machine Learning in Sentiment Analysis