Sentiment analysis (SA) is one of the most important tasks in the natural language processing (NLP) field. Many researchers have been trying to build an efficient SA system for many applications such as detection of terrorist activities, customer support management, analyzing customer feedback, market research, competitive research, and many others. Almost all these researches deal with a classification task, and they tried to solve one or two of the challenges that face this task. In this research, a complete SA system was constructed for processing five main challenges in SA and studying the effect of each one on the system. These challenges are the processing of negation, multi-polarity of words, text multi-polarity, semantically ambiguous words (exact meaning), and sarcasm. Some solutions were introduced for these challenges for getting high accuracy. It is the first work for studying the effect of these five challenges collectively with novel solutions to some of them. For aspect-based SA, three different classifiers were used; support vector machine (SVM), maximum entropy (MaxEnt), and long short-term memory (LSTM). The best results for f-measure were 0.833, 0.852, and 0.875 using the LSTM method on Foursquare ABSA, SemEval2014 (laptop and restaurant) datasets, respectively. We induced the most effective negation processing on the SA system from many test scenarios, followed by multi-polarity of words, semantically ambiguous words, text multi-polarity, and sarcasm, respectively. Also, the proposed sarcasm processing technique was evaluated on two annotated corpora with sarcasm, iSarcasm, and Rillof datasets, before applying it on SA.