import os import sys from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer from loader import load, dmt analyser = SentimentIntensityAnalyzer() def main(folder): users, posts, firstcontrib, sumcontrib = load(folder) outfolder = folder + "/output/" os.system("mkdir -p " + outfolder) outfilename = outfolder + "sentiments" # compute toxic levels toxlevels = dmt(posts, 10).map(lambda p: (p['Id'], {a['Id']: computeToxLevel(a['Body']) for a in p['Answers']}), "calculating sentiments").getresults() toxlevels = {id: p for (id, p) in toxlevels} dumptoxlevels(toxlevels, outfilename + ".py") def computeToxLevel(text): return analyser.polarity_scores(text) def dumptoxlevels(lvls, filename): answers = dict() for p in lvls.values(): for id, a in p.items(): answers[id] = a with open(filename, "w") as file: file.write("posts = " + str(lvls) + "\n") file.write("answers = " + str(answers) + "\n") if __name__ == "__main__": # execute only if run as a script usage = sys.argv[0] + " " if len(sys.argv) < 2: print(usage) sys.exit(1) folder = sys.argv[1] if not os.path.isdir(folder): print(folder + " is not a folder") sys.exit(1) main(folder)