[python] Sentiment Analysis

Viewer

copydownloadembedprintName: Sentiment Analysis
  1. def remove_features(data_str):
  2.     url_re = re.compile(r'https?://(\S+)')
  3.     num_re = re.compile(r'(\d+)')
  4.     mention_re = re.compile(r'(@|#)(\w+)')
  5.     RT_re = re.compile(r'RT(\s+)')
  6.     data_str = str(data_str)
  7.     data_str = RT_re.sub('', data_str) # remove RT
  8.     data_str = url_re.sub('', data_str) # remove hyperlinks
  9.     data_str = mention_re.sub('', data_str) # remove @mentions and hash
  10.     data_str = num_re.sub('', data_str) # remove numerical digit
  11.     data_str = resolve_emoticon(data_str) # replace emoji
  12.     return data_str.lower()
  13.  
  14. def main(sc,filename):
  15.     # CODE IT YOURSELF  
  16.     rdd = sc.textFile(filename).map(lambda text: remove_features(text)) #remove and replace
  17.     rdd_en = rdd.filter(lambda text: TextBlob(text).detect_language() == 'en').map(lambda text: abb_en(text)) #filter to english
  18.     rdd_ms = rdd.filter(lambda text: TextBlob(text).detect_language() == 'ms').map(lambda text: abb_bm(text)).map(lambda text: str(TextBlob(text).translate(to='en'))) #filter to bahasa and translate to en
  19.     
  20.     rdd = rdd_en.union(rdd_ms)
  21.  
  22.     positive_rdd = rdd.filter(lambda text: TextBlob(text).sentiment.polarity > 0)
  23.     negative_rdd = rdd.filter(lambda text: TextBlob(text).sentiment.polarity < 0)
  24.  
  25.     make_plot(int(positive_rdd.count()),int(negative_rdd.count())) #the cast is just to ensure the value is in integer data type
  26.  

Editor

You can edit this paste and save as new:


File Description
  • Sentiment Analysis
  • Paste Code
  • 06 May-2021
  • 1.35 Kb
You can Share it: