def __getEmotions__(self, doc): try: emos = te.get_emotion(doc) mostCommonEmos = Counter(emos).most_common(2) return [e for e, prob in mostCommonEmos] except: return []
def getEmotion(text): translator = Translator() result = translator.translate(text, dest='en') print("Tranlsated text:", result.text) print("Text emotion:", te.get_emotion(result.text))
def on_status(self, status): if (time.time() - self.start_time) < self.time_limit: print(status.text) print( "***************************Emotions detected******************************************" ) data_dict = get_emotion(status.text) data_dict = {k: float(v) for k, v in data_dict.items()} data = pd.DataFrame([data_dict]) chart.add_rows(data) print(data_dict) return True else: return False
def detection(): #mengecek apakah method yang di pakai di form index.html yaitu POST atau bukan if request.method == 'POST': # mengambil data inputan komentar dan di simpan dalam varibel komentar komentar = request.form['komentar'] # textblob sentiment polarity akan menghasilkan angka 1 atau -1 # bila 1 komentar tersebut positif, bila -1 komentar tersebut negatif feedback_polarity = TextBlob(komentar).sentiment.polarity if feedback_polarity > 0: result = 'positif' else: result = 'negatif' #inisialisasi varibael data yang isinya list data = list() # Call to the function # variabel dict_emotion dan percent_emotion menyimpan hasil dari analisis kalimat dict_emotion = te.get_emotion(komentar) percent_emotion = te.get_percent_emotion(komentar) # perulangan ini untuk mendapatkan value dari dictionary {"Happy": 0.5, "Angry": 0, "Surprise": 3.5, "Sad": 0, "Fear": 0} for key, value in dict_emotion.items(): #disini akan masuk ke list data value dari happy dan surprise data.append(value) #inisialisasi emotions untuk dimasukkan ke dalam grafik emotions = ['Happy', 'Angry', 'Surprise', 'Sad', 'Fear'] #konfigurasi dari grafik yang akan dibuat gambar fig = plt.figure(figsize=(10, 7)) plt.pie(data, labels=emotions, normalize=False) #membuat hasil menjadi gambar pie_chart = pygal.Pie() pie_chart.title = 'Pie chart' pie_chart.add('Happy', percent_emotion['Happy']) pie_chart.add('Angry', percent_emotion['Angry']) pie_chart.add('Surprise', percent_emotion['Surprise']) pie_chart.add('Sad', percent_emotion['Sad']) pie_chart.add('Fear', percent_emotion['Fear']) pie_chart = pie_chart.render_data_uri() return render_template("index.html", hasil=result, komen=komentar, chart=pie_chart, percent_emotion=percent_emotion)
def transform(text): emotion_ratings = te.get_emotion(text) emotion_ratings significant_emotion = max(emotion_ratings, key=emotion_ratings.get) kw_extractor = yake.KeywordExtractor() language = 'en' max_ngram_size = 3 deduplication_threshhold = 0.9 numOfKeywords = 10 custom_kw_extractor = yake.KeywordExtractor( lan=language, n=max_ngram_size, dedupLim=deduplication_threshhold, top=numOfKeywords, features=None) keywords = custom_kw_extractor.extract_keywords(text) keywords.reverse() top_keywords = keywords[:5] significant_emotion emotion_colors = { 'Happy': 'Yellow', 'Angry': 'Red', 'Surprise': 'Green', 'Sad': 'Blue', 'Fear': 'Dark' } significant_color = emotion_colors[significant_emotion] top_keywords_wo_scores = [x[0] for x in top_keywords] top_keywords_wo_scores final_string = '' + significant_emotion + ' ' + significant_color for i in top_keywords_wo_scores: final_string += ' ' + i return final_string