207 lines
4.7 KiB
Plaintext
207 lines
4.7 KiB
Plaintext
{
|
|
"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.5"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|