diff --git a/Project/Tools/kmeans_on_Emojis.ipynb b/Project/Tools/kmeans_on_Emojis.ipynb new file mode 100644 index 0000000..9428daf --- /dev/null +++ b/Project/Tools/kmeans_on_Emojis.ipynb @@ -0,0 +1,206 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "import numpy as np\n", + "from sklearn.cluster import KMeans\n", + "sys.path.append(\"..\")\n", + "\n", + "from Tools.Emoji_Distance import sentiment_vector_to_emoji\n", + "from Tools.Emoji_Distance import emoji_to_sentiment_vector\n", + "from Tools.Emoji_Distance import dataframe_to_dictionary\n", + "\n", + "def emoji2sent(emoji_arr):\n", + " return np.array([emoji_to_sentiment_vector(e) for e in emoji_arr])\n", + "\n", + "def sent2emoji(sent_arr, custom_target_emojis=None):\n", + " return [sentiment_vector_to_emoji(s, custom_target_emojis=custom_target_emojis) for s in sent_arr]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "data , data_only_emoticons, list_sentiment_vectors , list_emojis , list_sentiment_emoticon_vectors , list_emoticon_emojis = dataframe_to_dictionary()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.46813021, 0.24716181, 0.28470797],\n", + " [0.72967448, 0.05173769, 0.21858783],\n", + " [0.34310532, 0.43648208, 0.2204126 ],\n", + " [0.75466009, 0.0529057 , 0.19243421],\n", + " [0.70401758, 0.05932203, 0.23666039],\n", + " [0.57697579, 0.12699863, 0.29602558],\n", + " [0.22289823, 0.59126106, 0.18584071],\n", + " [0.49837557, 0.0805718 , 0.42105263],\n", + " [0.44415243, 0.11169514, 0.44415243],\n", + " [0.5634451 , 0.09927679, 0.33727811]])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "array_sentiment_vectors = np.array(list_sentiment_emoticon_vectors)\n", + "array_sentiment_vectors[:10]" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "kmeans = KMeans(n_clusters=5, random_state=0).fit(array_sentiment_vectors)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.43555605, 0.2777192 , 0.28672476],\n", + " [0.21254481, 0.57576584, 0.21168936],\n", + " [0.56669216, 0.13017252, 0.30313532],\n", + " [0.33453667, 0.45309312, 0.21237021],\n", + " [0.71664806, 0.06648547, 0.21686647]])" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "centers = kmeans.cluster_centers_\n", + "centers" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "🙇\n", + "😿\n", + "😄\n", + "😭\n", + "😍\n" + ] + } + ], + "source": [ + "for center in centers:\n", + " print(sentiment_vector_to_emoji(center))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* only most used emojis" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "top_emojis = [('😂', 10182),\n", + " ('😭', 3893),\n", + " ('😍', 2866),\n", + " ('😩', 1647),\n", + " ('😊', 1450),\n", + " ('😘', 1151),\n", + " ('🙏', 1089),\n", + " ('🙌', 1003),\n", + " ('😉', 752),\n", + " ('😁', 697),\n", + " ('😅', 651),\n", + " ('😎', 606),\n", + " ('😢', 544),\n", + " ('😒', 539),\n", + " ('😏', 478),\n", + " ('😌', 434),\n", + " ('😔', 415),\n", + " ('😋', 397),\n", + " ('😀', 392),\n", + " ('😤', 368)]" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "😂\n", + "😒\n", + "😁\n", + "😭\n", + "😍\n" + ] + } + ], + "source": [ + "for center in centers:\n", + " print(sentiment_vector_to_emoji(center, custom_target_emojis=top_emojis))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}