From 247de9dce2fa205d8c1b22ee54efca13df4a55c2 Mon Sep 17 00:00:00 2001 From: Jonas Weinz Date: Mon, 11 Jun 2018 20:12:37 +0200 Subject: [PATCH] added optional argoment to specify target emojis in sentiment_vector_to_emojis --- Project/Tools/Emoji_Distance.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Project/Tools/Emoji_Distance.py b/Project/Tools/Emoji_Distance.py index 0a6e6be..d9b1a87 100644 --- a/Project/Tools/Emoji_Distance.py +++ b/Project/Tools/Emoji_Distance.py @@ -111,14 +111,24 @@ def emoji_distance(e1,e2): # In[27]: -def sentiment_vector_to_emoji(v1, only_emoticons=True): +def sentiment_vector_to_emoji(v1, only_emoticons=True, custom_target_emojis=None): + + target_sentiment_emojis = (list_sentiment_emoticon_vectors if only_emoticons else list_sentiment_vectors) + target_emojis = (list_emoticon_emojis if only_emoticons else list_emojis) + + # filter target emojis by custom emojis, if some are given: + if custom_target_emojis is not None: + binary_filter_mask = np.isin(target_emojis, custom_target_emojis) + target_sentiment_emojis = target_sentiment_emojis[binary_filter_mask] + target_emojis = target_emojis[binary_filter_mask] + #more efficient approach for min distance - distances = (list_sentiment_emoticon_vectors if only_emoticons else list_sentiment_vectors) - v1 + distances = target_sentiment_emojis - v1 distances = np.linalg.norm(distances, axis=1) #find min entry min_entry = np.argmin(distances) - return (list_emoticon_emojis if only_emoticons else list_emojis)[min_entry] + return target_emojis[min_entry] #version for dics