## 1 Introduction  
In the last two decades, the web became a primary source, where people look for information and share experiences and perceptions in the form of comments or opinions. The number of internet users is increasing quickly, and the size of the generated data on social network sites (SNSs) is very large. According to a statistical report issued in January 2017 by Hootsuite, 3.8 billion people (50% of the world's population are internet users and 2.8 billion of them are active users [1]. Another report issued in April 2016 specified the strength of most popular SNSs such as Instagram (400 million users),LinkedIn (450 million Users) and Facebook (1.71 billion monthly active users) [2]. Similarly, monthly active users of Twitter are above 288 million, with over 500 million tweets generated every day [3]. These statistics show the fame and importance of SNSs. Resultantly, such SNSs platforms generate a gigantic amount of Unstructured User Generated Contents (UUGC). Such UUGC contains precious information and can play an important role in decision making that can be advantageous for both consumers and organizations. It is almost difficult for a human to check and categorize such a huge number of documents manually. To turn UUGC into precious information, it must be queried, analyzed and visualized. Sentiment Analysis (SA), using natural language processing and machine learning tools and techniques, is the candidate solution for analyzing such useful information automatically. SA, also known as opinion mining, is the process that extracts and analyzes people's opinions, sentiments, attitudes, judgments and emotions regarding entities, events and their attributes [4]. The field of SA has been thoroughly studied in the literature [4; 5; 6]. The objective of SA is to classify UUGC into either positive or negative classes. Most of the methods for SA work on Supervised Machine Learning (SML) [1; 7; 8; 9]. The SML methods need a large amount of labeled data to train a classifier (such as Support Vector Machine (SVM) [10] or Naive Bayes (NB) [11] for sentiment classification. However, there is a shortage of labeled data which could be used to train a classifier for multiple domains. Besides, it is also challenging and time-consuming to label a large amount of data manually for various domains, as they need skilled human annotators. In the absence of enough labeled data, the alternative usage of lexicon scoring (LS) and semi-supervised learning (SSL) approaches for sentiment classification have greatly attracted the attention of scientists. The LS addresses this problem by using existing general sentiment lexicons to calculate sentiment scores of review texts. Based on calculated sentiment scores, the review text is categorized into either positive or negative class. A sentiment lexicon is a list of words or phrases that express sentiments. Sentiment lexicon plays a vital role in textual sentiment analysis. Sentiment lexicons have been widely employed for textual sentiment classification due to the benefit that they do not need labeled data for training [12; 13]. Existing sentiment lexicons also have been utilized for learning an initial classifier in order to generate a domain-specific sentiment feature for sentiment analysis [14]. A combination of lexicon and learning-based approaches for textual sentiment classification have been proposed [15; 16]. In the literature, several sentiment lexicons with different sizes and formats have been created for sentiment analysis, e.g., AFFIN [17], OL [18], SO-CAL [19], WordNet-Affect [20], GI [21], SentiSense [22], MPQA Subjectivity Lexicon [23], NRC Hashtag Sentiment Lexicon [24], SentiNet5 [25] and SentiWordNet [26]. Despite wide usage for assessing sentiment in social media contexts, existing sentiment lexicons have a concern with coverage, which may ignore important domain-specific sentiment words. Besides, building sentiment lexicon manually is time-consuming and labor-intensive.