nlp-lab/Project/simple_approach/simple_twitter_learning.ipynb
2018-06-11 21:26:49 +02:00

2737 lines
108 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"from IPython.display import clear_output, Markdown, Math\n",
"import ipywidgets as widgets\n",
"import os\n",
"import glob\n",
"import json\n",
"import numpy as np\n",
"import itertools\n",
"import sklearn.utils as sku\n",
"from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer, HashingVectorizer\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.preprocessing import MultiLabelBinarizer"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"import sys\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",
"\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": 3,
"metadata": {},
"outputs": [],
"source": [
"SINGLE_LABEL = True"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# simple twitter approach\n",
"*for learning emoji usage by single (in the meaning of unconnected) twitter messages*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## loading train data"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"data_root_folder = \"./data_en/\" # i created a symlink here"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* get all json files in `data_root_folder`"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"json_files = sorted(glob.glob(data_root_folder + \"/*.json\"))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* so far, only load the first file"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>EMOJI</th>\n",
" <th>HASHTAGS</th>\n",
" <th>LINKED_USER</th>\n",
" <th>datetime</th>\n",
" <th>id</th>\n",
" <th>lang</th>\n",
" <th>person</th>\n",
" <th>reply_to</th>\n",
" <th>text</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>[🔥, 👏]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:00</td>\n",
" <td>925716304635547600</td>\n",
" <td>en</td>\n",
" <td>31507978</td>\n",
" <td>NaN</td>\n",
" <td>fashionbombdaily's photo &lt;EMOJI&gt;&lt;EMOJI&gt;🏼</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>[🤦]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:00</td>\n",
" <td>925716304664911900</td>\n",
" <td>en</td>\n",
" <td>231994649</td>\n",
" <td>NaN</td>\n",
" <td>Its scary how on point my horoscope be &lt;EMOJI...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>[😄]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:03</td>\n",
" <td>925716317214089200</td>\n",
" <td>en</td>\n",
" <td>2592765104</td>\n",
" <td>NaN</td>\n",
" <td>Woooaaaahhh &lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>[📷]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:04</td>\n",
" <td>925716321416949800</td>\n",
" <td>en</td>\n",
" <td>278737933</td>\n",
" <td>NaN</td>\n",
" <td>&lt;EMOJI&gt; vivalcli: Portraits by Zhao Guojing an...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>[😩, 😩]</td>\n",
" <td>[]</td>\n",
" <td>[@hiphopphiIes]</td>\n",
" <td>2017-11-01 13:29:06</td>\n",
" <td>925716329801310200</td>\n",
" <td>en</td>\n",
" <td>824586253634981900</td>\n",
" <td>9.257162e+17</td>\n",
" <td>&lt;USER&gt; i wanna know too&lt;EMOJI&gt;&lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>[😭, 💓]</td>\n",
" <td>[]</td>\n",
" <td>[@WizMommma]</td>\n",
" <td>2017-11-01 13:29:02</td>\n",
" <td>925716313019965400</td>\n",
" <td>en</td>\n",
" <td>1581953814</td>\n",
" <td>9.257088e+17</td>\n",
" <td>&lt;USER&gt; veda was yoda too &lt;EMOJI&gt;&lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>[😂]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:05</td>\n",
" <td>925716325607133200</td>\n",
" <td>en</td>\n",
" <td>1001999683</td>\n",
" <td>NaN</td>\n",
" <td>Im less stressed about turning 30 now &lt;EMOJI&gt;...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>[💯]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:07</td>\n",
" <td>925716334008082400</td>\n",
" <td>en</td>\n",
" <td>745222369183043600</td>\n",
" <td>NaN</td>\n",
" <td>Full charged. &lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>[🙄]</td>\n",
" <td>[]</td>\n",
" <td>[@SeaDimon, @lsarsour]</td>\n",
" <td>2017-11-01 13:29:09</td>\n",
" <td>925716342401052700</td>\n",
" <td>en</td>\n",
" <td>798557155217539100</td>\n",
" <td>9.257147e+17</td>\n",
" <td>&lt;USER&gt; Thats part of the problem, (they) &lt;USE...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>[😟, 😥, 😢]</td>\n",
" <td>[]</td>\n",
" <td>[@Ian_khetye]</td>\n",
" <td>2017-11-01 13:29:10</td>\n",
" <td>925716346570240000</td>\n",
" <td>en</td>\n",
" <td>744396039126421500</td>\n",
" <td>9.250629e+17</td>\n",
" <td>&lt;USER&gt; got me emotional there&lt;EMOJI&gt;&lt;EMOJI&gt;&lt;EM...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>[🌻]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:13</td>\n",
" <td>925716359182520300</td>\n",
" <td>en</td>\n",
" <td>721490010118205400</td>\n",
" <td>8.965900e+17</td>\n",
" <td>back to the yellow &lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>[🍁, 🌺, 🍂]</td>\n",
" <td>[]</td>\n",
" <td>[@Dimafadma]</td>\n",
" <td>2017-11-01 13:29:15</td>\n",
" <td>925716367558545400</td>\n",
" <td>en</td>\n",
" <td>520536723</td>\n",
" <td>9.257159e+17</td>\n",
" <td>&lt;USER&gt; Happy month to you and your loved ones ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>[🍃]</td>\n",
" <td>[#mortdale, #partofthefamily, #gorgeousboy]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:16</td>\n",
" <td>925716371735900200</td>\n",
" <td>en</td>\n",
" <td>850852815941517300</td>\n",
" <td>NaN</td>\n",
" <td>Maxx and Patricia. Family hangs at For Good He...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>[💭, 🤦]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:20</td>\n",
" <td>925716388513230800</td>\n",
" <td>en</td>\n",
" <td>914145041588867100</td>\n",
" <td>NaN</td>\n",
" <td>I need to STOP beating myself up with my thoug...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>[😍, 😘]</td>\n",
" <td>[#7YearsOfKMH2]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:20</td>\n",
" <td>925716388525645800</td>\n",
" <td>en</td>\n",
" <td>2425405622</td>\n",
" <td>NaN</td>\n",
" <td>Cutest Son &lt;EMOJI&gt;Roll no. 31 &lt;EMOJI&gt; &lt;HASHTAG&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>[😜]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:22</td>\n",
" <td>925716396931240000</td>\n",
" <td>en</td>\n",
" <td>4614871873</td>\n",
" <td>NaN</td>\n",
" <td>By the summer I should have everything up and ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>[😂, 🔥]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:23</td>\n",
" <td>925716401125331000</td>\n",
" <td>en</td>\n",
" <td>2831608345</td>\n",
" <td>NaN</td>\n",
" <td>I know my English is not that good but that do...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>[💕]</td>\n",
" <td>[]</td>\n",
" <td>[@yungbabytate]</td>\n",
" <td>2017-11-01 13:29:23</td>\n",
" <td>925716401133948900</td>\n",
" <td>en</td>\n",
" <td>788571974633009200</td>\n",
" <td>9.255778e+17</td>\n",
" <td>&lt;USER&gt; I &lt;EMOJI&gt; u mama</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>[😉]</td>\n",
" <td>[]</td>\n",
" <td>[@cmckenney]</td>\n",
" <td>2017-11-01 13:29:23</td>\n",
" <td>925716401125544000</td>\n",
" <td>en</td>\n",
" <td>218307802</td>\n",
" <td>9.257115e+17</td>\n",
" <td>&lt;USER&gt; That picture was NOT taken this morning...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>[👅]</td>\n",
" <td>[#footfetishnation]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:25</td>\n",
" <td>925716409489002500</td>\n",
" <td>en</td>\n",
" <td>885261166146179100</td>\n",
" <td>NaN</td>\n",
" <td>Welcome to &lt;HASHTAG&gt; &lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>[👌, 🙂]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:25</td>\n",
" <td>925716409497272300</td>\n",
" <td>en</td>\n",
" <td>831437760833609700</td>\n",
" <td>NaN</td>\n",
" <td>Awkward &lt;EMOJI&gt;&lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>[🤗, 📺]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:26</td>\n",
" <td>925716413699854300</td>\n",
" <td>en</td>\n",
" <td>231664542</td>\n",
" <td>NaN</td>\n",
" <td>back at it with supernatural &lt;EMOJI&gt;&lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>[💯]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:26</td>\n",
" <td>925716413679009800</td>\n",
" <td>en</td>\n",
" <td>3196847035</td>\n",
" <td>NaN</td>\n",
" <td>One of the best things I've learned was to sto...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>[👅, 💦, 🍑]</td>\n",
" <td>[]</td>\n",
" <td>[@ctrlpurp]</td>\n",
" <td>2017-11-01 13:29:29</td>\n",
" <td>925716426278735900</td>\n",
" <td>en</td>\n",
" <td>918492858352635900</td>\n",
" <td>9.257161e+17</td>\n",
" <td>&lt;USER&gt; Can I taste?&lt;EMOJI&gt;&lt;EMOJI&gt;&lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>[💔]</td>\n",
" <td>[]</td>\n",
" <td>[@saunders_court1]</td>\n",
" <td>2017-11-01 13:29:30</td>\n",
" <td>925716430473039900</td>\n",
" <td>en</td>\n",
" <td>3471187337</td>\n",
" <td>9.257163e+17</td>\n",
" <td>&lt;USER&gt; we miss you ☹️&lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>[🤐, 🤐, 🤐]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:31</td>\n",
" <td>925716434667184100</td>\n",
" <td>en</td>\n",
" <td>780060488600199200</td>\n",
" <td>NaN</td>\n",
" <td>Actually my bias in WJSN are Eunseo &amp;amp; Bona...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>[😴]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:32</td>\n",
" <td>925716438853345300</td>\n",
" <td>en</td>\n",
" <td>388380690</td>\n",
" <td>NaN</td>\n",
" <td>I so cannot be bothered with the rest of the d...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>[😂]</td>\n",
" <td>[]</td>\n",
" <td>[@xxxtentacion]</td>\n",
" <td>2017-11-01 13:29:35</td>\n",
" <td>925716451457163300</td>\n",
" <td>en</td>\n",
" <td>899320696869974000</td>\n",
" <td>NaN</td>\n",
" <td>&lt;USER&gt; 2lit4life&lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>[😂, 🙄]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 13:29:35</td>\n",
" <td>925716451461357600</td>\n",
" <td>en</td>\n",
" <td>784790670</td>\n",
" <td>NaN</td>\n",
" <td>Im not stop saying that!&lt;EMOJI&gt;&lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>[🎉, 🎂, 🎈, 🎊, 🎁, 💜]</td>\n",
" <td>[]</td>\n",
" <td>[@justinerooney_]</td>\n",
" <td>2017-11-01 13:29:37</td>\n",
" <td>925716459828936700</td>\n",
" <td>en</td>\n",
" <td>3051266655</td>\n",
" <td>NaN</td>\n",
" <td>&lt;USER&gt; HAPPY BIHDAY &lt;EMOJI&gt;&lt;EMOJI&gt;&lt;EMOJI&gt;&lt;EMOJ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68703</th>\n",
" <td>[😕]</td>\n",
" <td>[#halloweencostumes]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:04</td>\n",
" <td>925624214522036200</td>\n",
" <td>en</td>\n",
" <td>1672876458</td>\n",
" <td>NaN</td>\n",
" <td>&lt;HASHTAG&gt; this one falls under the weird crazy...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68704</th>\n",
" <td>[😂, 😩]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:05</td>\n",
" <td>925624218682777600</td>\n",
" <td>en</td>\n",
" <td>382473866</td>\n",
" <td>NaN</td>\n",
" <td>I'm not allowed to have chocolates yet, then I...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68705</th>\n",
" <td>[😂]</td>\n",
" <td>[#MUFC]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:06</td>\n",
" <td>925624222889766900</td>\n",
" <td>en</td>\n",
" <td>893145405457911800</td>\n",
" <td>NaN</td>\n",
" <td>Manchester United manager Mourinho slams 'spec...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68706</th>\n",
" <td>[💖]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:07</td>\n",
" <td>925624227088121900</td>\n",
" <td>en</td>\n",
" <td>240378516</td>\n",
" <td>NaN</td>\n",
" <td>&lt;EMOJI&gt; en Bushwhick</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68707</th>\n",
" <td>[🌆, 👉, 🚖, 📞]</td>\n",
" <td>[#BurkeCentre]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:18</td>\n",
" <td>925624273237983200</td>\n",
" <td>en</td>\n",
" <td>784620573209002000</td>\n",
" <td>NaN</td>\n",
" <td>: &lt;HASHTAG&gt; &lt;EMOJI&gt; &lt;EMOJI&gt;&lt;EMOJI&gt; For Taxi &lt;E...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68708</th>\n",
" <td>[😁]</td>\n",
" <td>[]</td>\n",
" <td>[@mychosliaheart, @BarrettoJulia, @iamjoshuaga...</td>\n",
" <td>2017-11-01 07:23:18</td>\n",
" <td>925624273212805100</td>\n",
" <td>en</td>\n",
" <td>170998187</td>\n",
" <td>9.254136e+17</td>\n",
" <td>&lt;USER&gt; &lt;USER&gt; &lt;USER&gt; Look, Mammeh and Daddeh! ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68709</th>\n",
" <td>[😋]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:24</td>\n",
" <td>925624298395533300</td>\n",
" <td>en</td>\n",
" <td>1348667816</td>\n",
" <td>NaN</td>\n",
" <td>Life is so good with you &lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68710</th>\n",
" <td>[👌, 🎃, 😘]</td>\n",
" <td>[#portlandoregon, #portlandhalloween, #carrie…]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:24</td>\n",
" <td>925624298378801200</td>\n",
" <td>en</td>\n",
" <td>722481645765300200</td>\n",
" <td>NaN</td>\n",
" <td>Happy Halloween! &lt;EMOJI&gt;🏽&lt;EMOJI&gt;&lt;EMOJI&gt; &lt;HASHT...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68711</th>\n",
" <td>[👍]</td>\n",
" <td>[]</td>\n",
" <td>[@8limbsbondi...]</td>\n",
" <td>2017-11-01 07:23:26</td>\n",
" <td>925624306779897900</td>\n",
" <td>en</td>\n",
" <td>2443251500</td>\n",
" <td>NaN</td>\n",
" <td>Some work on the ropes in todays boxing class...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68712</th>\n",
" <td>[😭]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:27</td>\n",
" <td>925624310974136300</td>\n",
" <td>en</td>\n",
" <td>2406186390</td>\n",
" <td>NaN</td>\n",
" <td>Scotty and Kristens halloween costumes &lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68713</th>\n",
" <td>[😂]</td>\n",
" <td>[]</td>\n",
" <td>[@rfrandrea, @AdaaanAndyyy]</td>\n",
" <td>2017-11-01 07:23:30</td>\n",
" <td>925624323557146600</td>\n",
" <td>en</td>\n",
" <td>1039448149</td>\n",
" <td>9.256150e+17</td>\n",
" <td>&lt;USER&gt; &lt;USER&gt; May pre-month celebration sis &lt;E...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68714</th>\n",
" <td>[😭, 😭, 💘]</td>\n",
" <td>[]</td>\n",
" <td>[@peachshua1230]</td>\n",
" <td>2017-11-01 07:23:31</td>\n",
" <td>925624327755591700</td>\n",
" <td>en</td>\n",
" <td>845085544589672400</td>\n",
" <td>9.256009e+17</td>\n",
" <td>&lt;USER&gt; Awww &lt;EMOJI&gt; Ajsksjdjd im smiling like ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68715</th>\n",
" <td>[😫, ✋]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:34</td>\n",
" <td>925624340342812700</td>\n",
" <td>en</td>\n",
" <td>924752524871131100</td>\n",
" <td>NaN</td>\n",
" <td>I hate when I send a text or snap n I'm so anx...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68716</th>\n",
" <td>[😂, 🙁]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:34</td>\n",
" <td>925624340355280900</td>\n",
" <td>en</td>\n",
" <td>419493819</td>\n",
" <td>NaN</td>\n",
" <td>The answer is no I have no plans and I never l...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68717</th>\n",
" <td>[😭]</td>\n",
" <td>[]</td>\n",
" <td>[@BeachBoy_Gab]</td>\n",
" <td>2017-11-01 07:23:34</td>\n",
" <td>925624340346937300</td>\n",
" <td>en</td>\n",
" <td>2457745952</td>\n",
" <td>9.256219e+17</td>\n",
" <td>&lt;USER&gt; LMAOOO I'm so proud &lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68718</th>\n",
" <td>[😢, 💔]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:34</td>\n",
" <td>925624340338507800</td>\n",
" <td>en</td>\n",
" <td>1955767531</td>\n",
" <td>NaN</td>\n",
" <td>My cousin/little sister is leaving to San Fran...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68719</th>\n",
" <td>[🙃]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:35</td>\n",
" <td>925624344524361700</td>\n",
" <td>en</td>\n",
" <td>796490344581898200</td>\n",
" <td>NaN</td>\n",
" <td>Can't be alone w my thoughts tonight so just g...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68720</th>\n",
" <td>[😂, 😂, 😂, 😂, 😂]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:36</td>\n",
" <td>925624348710285300</td>\n",
" <td>en</td>\n",
" <td>907808317124177900</td>\n",
" <td>NaN</td>\n",
" <td>&lt;EMOJI&gt;&lt;EMOJI&gt;&lt;EMOJI&gt;&lt;EMOJI&gt;&lt;EMOJI&gt; ambot!!!</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68721</th>\n",
" <td>[👌, 👊, 🙌]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:37</td>\n",
" <td>925624352929910800</td>\n",
" <td>en</td>\n",
" <td>262162415</td>\n",
" <td>NaN</td>\n",
" <td>&lt;EMOJI&gt;🏽&lt;EMOJI&gt;🏽 1st of the month!!Happy 1st o...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68722</th>\n",
" <td>[😴]</td>\n",
" <td>[#WednesdayWisdom]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:41</td>\n",
" <td>925624369715515400</td>\n",
" <td>en</td>\n",
" <td>574882525</td>\n",
" <td>NaN</td>\n",
" <td>&lt;HASHTAG&gt; ... stay in bed &lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68723</th>\n",
" <td>[😂, 😂, 😂, 😂]</td>\n",
" <td>[]</td>\n",
" <td>[@Louis_Tomlinson, @NiallOfficial]</td>\n",
" <td>2017-11-01 07:23:44</td>\n",
" <td>925624382269124600</td>\n",
" <td>en</td>\n",
" <td>556175173</td>\n",
" <td>9.254038e+17</td>\n",
" <td>&lt;USER&gt; &lt;USER&gt; THIS IS GOLD. GOLD. &lt;EMOJI&gt;&lt;EMOJ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68724</th>\n",
" <td>[😀]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:45</td>\n",
" <td>925624386455031800</td>\n",
" <td>en</td>\n",
" <td>1610265588</td>\n",
" <td>NaN</td>\n",
" <td>&lt;EMOJI&gt; thank you for the kind compliment</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68725</th>\n",
" <td>[😎]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:45</td>\n",
" <td>925624386454937600</td>\n",
" <td>en</td>\n",
" <td>4760724450</td>\n",
" <td>NaN</td>\n",
" <td>Enjoyed the silence &lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68726</th>\n",
" <td>[✨]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:46</td>\n",
" <td>925624390657572900</td>\n",
" <td>en</td>\n",
" <td>882858115636514800</td>\n",
" <td>NaN</td>\n",
" <td>OS: Spiderman Homecoming &lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68727</th>\n",
" <td>[🤷]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:46</td>\n",
" <td>925624390682849300</td>\n",
" <td>en</td>\n",
" <td>188129628</td>\n",
" <td>NaN</td>\n",
" <td>Go to hell &lt;EMOJI&gt;🏽‍♀️</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68728</th>\n",
" <td>[😘]</td>\n",
" <td>[]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:46</td>\n",
" <td>925624390666129400</td>\n",
" <td>en</td>\n",
" <td>2473135939</td>\n",
" <td>NaN</td>\n",
" <td>Thank you Yomi! &lt;EMOJI&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68729</th>\n",
" <td>[😂]</td>\n",
" <td>[]</td>\n",
" <td>[@discopiggu]</td>\n",
" <td>2017-11-01 07:23:46</td>\n",
" <td>925624390670106600</td>\n",
" <td>en</td>\n",
" <td>2373584209</td>\n",
" <td>9.256241e+17</td>\n",
" <td>&lt;USER&gt; Lol. Just enjoy the stars. Music Kidhar...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68730</th>\n",
" <td>[🙏]</td>\n",
" <td>[#NYCStrong]</td>\n",
" <td>[]</td>\n",
" <td>2017-11-01 07:23:50</td>\n",
" <td>925624407459971100</td>\n",
" <td>en</td>\n",
" <td>181689756</td>\n",
" <td>NaN</td>\n",
" <td>Thoughts and prayers for NY&lt;EMOJI&gt;🏻 &lt;HASHTAG&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68731</th>\n",
" <td>[💁]</td>\n",
" <td>[#GreatSuccess]</td>\n",
" <td>[@BrianyH]</td>\n",
" <td>2017-11-01 07:23:50</td>\n",
" <td>925624407460057100</td>\n",
" <td>en</td>\n",
" <td>60160788</td>\n",
" <td>9.254610e+17</td>\n",
" <td>&lt;USER&gt; I searched COCK, PENIS, SHLONG, WINKY, ...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68732</th>\n",
" <td>[🍃, 🌻, 🌻, 🍃, 🍃, 💐, 💐, 🍃, 🙋]</td>\n",
" <td>[]</td>\n",
" <td>[@amitbarman520]</td>\n",
" <td>2017-11-01 07:23:53</td>\n",
" <td>925624420022063100</td>\n",
" <td>en</td>\n",
" <td>3792290725</td>\n",
" <td>9.256215e+17</td>\n",
" <td>&lt;USER&gt; Thank you so much&lt;EMOJI&gt;&lt;EMOJI&gt;&lt;EMOJI&gt;&lt;...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>68733 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" EMOJI \\\n",
"0 [🔥, 👏] \n",
"1 [🤦] \n",
"2 [😄] \n",
"3 [📷] \n",
"4 [😩, 😩] \n",
"5 [😭, 💓] \n",
"6 [😂] \n",
"7 [💯] \n",
"8 [🙄] \n",
"9 [😟, 😥, 😢] \n",
"10 [🌻] \n",
"11 [🍁, 🌺, 🍂] \n",
"12 [🍃] \n",
"13 [💭, 🤦] \n",
"14 [😍, 😘] \n",
"15 [😜] \n",
"16 [😂, 🔥] \n",
"17 [💕] \n",
"18 [😉] \n",
"19 [👅] \n",
"20 [👌, 🙂] \n",
"21 [🤗, 📺] \n",
"22 [💯] \n",
"23 [👅, 💦, 🍑] \n",
"24 [💔] \n",
"25 [🤐, 🤐, 🤐] \n",
"26 [😴] \n",
"27 [😂] \n",
"28 [😂, 🙄] \n",
"29 [🎉, 🎂, 🎈, 🎊, 🎁, 💜] \n",
"... ... \n",
"68703 [😕] \n",
"68704 [😂, 😩] \n",
"68705 [😂] \n",
"68706 [💖] \n",
"68707 [🌆, 👉, 🚖, 📞] \n",
"68708 [😁] \n",
"68709 [😋] \n",
"68710 [👌, 🎃, 😘] \n",
"68711 [👍] \n",
"68712 [😭] \n",
"68713 [😂] \n",
"68714 [😭, 😭, 💘] \n",
"68715 [😫, ✋] \n",
"68716 [😂, 🙁] \n",
"68717 [😭] \n",
"68718 [😢, 💔] \n",
"68719 [🙃] \n",
"68720 [😂, 😂, 😂, 😂, 😂] \n",
"68721 [👌, 👊, 🙌] \n",
"68722 [😴] \n",
"68723 [😂, 😂, 😂, 😂] \n",
"68724 [😀] \n",
"68725 [😎] \n",
"68726 [✨] \n",
"68727 [🤷] \n",
"68728 [😘] \n",
"68729 [😂] \n",
"68730 [🙏] \n",
"68731 [💁] \n",
"68732 [🍃, 🌻, 🌻, 🍃, 🍃, 💐, 💐, 🍃, 🙋] \n",
"\n",
" HASHTAGS \\\n",
"0 [] \n",
"1 [] \n",
"2 [] \n",
"3 [] \n",
"4 [] \n",
"5 [] \n",
"6 [] \n",
"7 [] \n",
"8 [] \n",
"9 [] \n",
"10 [] \n",
"11 [] \n",
"12 [#mortdale, #partofthefamily, #gorgeousboy] \n",
"13 [] \n",
"14 [#7YearsOfKMH2] \n",
"15 [] \n",
"16 [] \n",
"17 [] \n",
"18 [] \n",
"19 [#footfetishnation] \n",
"20 [] \n",
"21 [] \n",
"22 [] \n",
"23 [] \n",
"24 [] \n",
"25 [] \n",
"26 [] \n",
"27 [] \n",
"28 [] \n",
"29 [] \n",
"... ... \n",
"68703 [#halloweencostumes] \n",
"68704 [] \n",
"68705 [#MUFC] \n",
"68706 [] \n",
"68707 [#BurkeCentre] \n",
"68708 [] \n",
"68709 [] \n",
"68710 [#portlandoregon, #portlandhalloween, #carrie…] \n",
"68711 [] \n",
"68712 [] \n",
"68713 [] \n",
"68714 [] \n",
"68715 [] \n",
"68716 [] \n",
"68717 [] \n",
"68718 [] \n",
"68719 [] \n",
"68720 [] \n",
"68721 [] \n",
"68722 [#WednesdayWisdom] \n",
"68723 [] \n",
"68724 [] \n",
"68725 [] \n",
"68726 [] \n",
"68727 [] \n",
"68728 [] \n",
"68729 [] \n",
"68730 [#NYCStrong] \n",
"68731 [#GreatSuccess] \n",
"68732 [] \n",
"\n",
" LINKED_USER datetime \\\n",
"0 [] 2017-11-01 13:29:00 \n",
"1 [] 2017-11-01 13:29:00 \n",
"2 [] 2017-11-01 13:29:03 \n",
"3 [] 2017-11-01 13:29:04 \n",
"4 [@hiphopphiIes] 2017-11-01 13:29:06 \n",
"5 [@WizMommma] 2017-11-01 13:29:02 \n",
"6 [] 2017-11-01 13:29:05 \n",
"7 [] 2017-11-01 13:29:07 \n",
"8 [@SeaDimon, @lsarsour] 2017-11-01 13:29:09 \n",
"9 [@Ian_khetye] 2017-11-01 13:29:10 \n",
"10 [] 2017-11-01 13:29:13 \n",
"11 [@Dimafadma] 2017-11-01 13:29:15 \n",
"12 [] 2017-11-01 13:29:16 \n",
"13 [] 2017-11-01 13:29:20 \n",
"14 [] 2017-11-01 13:29:20 \n",
"15 [] 2017-11-01 13:29:22 \n",
"16 [] 2017-11-01 13:29:23 \n",
"17 [@yungbabytate] 2017-11-01 13:29:23 \n",
"18 [@cmckenney] 2017-11-01 13:29:23 \n",
"19 [] 2017-11-01 13:29:25 \n",
"20 [] 2017-11-01 13:29:25 \n",
"21 [] 2017-11-01 13:29:26 \n",
"22 [] 2017-11-01 13:29:26 \n",
"23 [@ctrlpurp] 2017-11-01 13:29:29 \n",
"24 [@saunders_court1] 2017-11-01 13:29:30 \n",
"25 [] 2017-11-01 13:29:31 \n",
"26 [] 2017-11-01 13:29:32 \n",
"27 [@xxxtentacion] 2017-11-01 13:29:35 \n",
"28 [] 2017-11-01 13:29:35 \n",
"29 [@justinerooney_] 2017-11-01 13:29:37 \n",
"... ... ... \n",
"68703 [] 2017-11-01 07:23:04 \n",
"68704 [] 2017-11-01 07:23:05 \n",
"68705 [] 2017-11-01 07:23:06 \n",
"68706 [] 2017-11-01 07:23:07 \n",
"68707 [] 2017-11-01 07:23:18 \n",
"68708 [@mychosliaheart, @BarrettoJulia, @iamjoshuaga... 2017-11-01 07:23:18 \n",
"68709 [] 2017-11-01 07:23:24 \n",
"68710 [] 2017-11-01 07:23:24 \n",
"68711 [@8limbsbondi...] 2017-11-01 07:23:26 \n",
"68712 [] 2017-11-01 07:23:27 \n",
"68713 [@rfrandrea, @AdaaanAndyyy] 2017-11-01 07:23:30 \n",
"68714 [@peachshua1230] 2017-11-01 07:23:31 \n",
"68715 [] 2017-11-01 07:23:34 \n",
"68716 [] 2017-11-01 07:23:34 \n",
"68717 [@BeachBoy_Gab] 2017-11-01 07:23:34 \n",
"68718 [] 2017-11-01 07:23:34 \n",
"68719 [] 2017-11-01 07:23:35 \n",
"68720 [] 2017-11-01 07:23:36 \n",
"68721 [] 2017-11-01 07:23:37 \n",
"68722 [] 2017-11-01 07:23:41 \n",
"68723 [@Louis_Tomlinson, @NiallOfficial] 2017-11-01 07:23:44 \n",
"68724 [] 2017-11-01 07:23:45 \n",
"68725 [] 2017-11-01 07:23:45 \n",
"68726 [] 2017-11-01 07:23:46 \n",
"68727 [] 2017-11-01 07:23:46 \n",
"68728 [] 2017-11-01 07:23:46 \n",
"68729 [@discopiggu] 2017-11-01 07:23:46 \n",
"68730 [] 2017-11-01 07:23:50 \n",
"68731 [@BrianyH] 2017-11-01 07:23:50 \n",
"68732 [@amitbarman520] 2017-11-01 07:23:53 \n",
"\n",
" id lang person reply_to \\\n",
"0 925716304635547600 en 31507978 NaN \n",
"1 925716304664911900 en 231994649 NaN \n",
"2 925716317214089200 en 2592765104 NaN \n",
"3 925716321416949800 en 278737933 NaN \n",
"4 925716329801310200 en 824586253634981900 9.257162e+17 \n",
"5 925716313019965400 en 1581953814 9.257088e+17 \n",
"6 925716325607133200 en 1001999683 NaN \n",
"7 925716334008082400 en 745222369183043600 NaN \n",
"8 925716342401052700 en 798557155217539100 9.257147e+17 \n",
"9 925716346570240000 en 744396039126421500 9.250629e+17 \n",
"10 925716359182520300 en 721490010118205400 8.965900e+17 \n",
"11 925716367558545400 en 520536723 9.257159e+17 \n",
"12 925716371735900200 en 850852815941517300 NaN \n",
"13 925716388513230800 en 914145041588867100 NaN \n",
"14 925716388525645800 en 2425405622 NaN \n",
"15 925716396931240000 en 4614871873 NaN \n",
"16 925716401125331000 en 2831608345 NaN \n",
"17 925716401133948900 en 788571974633009200 9.255778e+17 \n",
"18 925716401125544000 en 218307802 9.257115e+17 \n",
"19 925716409489002500 en 885261166146179100 NaN \n",
"20 925716409497272300 en 831437760833609700 NaN \n",
"21 925716413699854300 en 231664542 NaN \n",
"22 925716413679009800 en 3196847035 NaN \n",
"23 925716426278735900 en 918492858352635900 9.257161e+17 \n",
"24 925716430473039900 en 3471187337 9.257163e+17 \n",
"25 925716434667184100 en 780060488600199200 NaN \n",
"26 925716438853345300 en 388380690 NaN \n",
"27 925716451457163300 en 899320696869974000 NaN \n",
"28 925716451461357600 en 784790670 NaN \n",
"29 925716459828936700 en 3051266655 NaN \n",
"... ... ... ... ... \n",
"68703 925624214522036200 en 1672876458 NaN \n",
"68704 925624218682777600 en 382473866 NaN \n",
"68705 925624222889766900 en 893145405457911800 NaN \n",
"68706 925624227088121900 en 240378516 NaN \n",
"68707 925624273237983200 en 784620573209002000 NaN \n",
"68708 925624273212805100 en 170998187 9.254136e+17 \n",
"68709 925624298395533300 en 1348667816 NaN \n",
"68710 925624298378801200 en 722481645765300200 NaN \n",
"68711 925624306779897900 en 2443251500 NaN \n",
"68712 925624310974136300 en 2406186390 NaN \n",
"68713 925624323557146600 en 1039448149 9.256150e+17 \n",
"68714 925624327755591700 en 845085544589672400 9.256009e+17 \n",
"68715 925624340342812700 en 924752524871131100 NaN \n",
"68716 925624340355280900 en 419493819 NaN \n",
"68717 925624340346937300 en 2457745952 9.256219e+17 \n",
"68718 925624340338507800 en 1955767531 NaN \n",
"68719 925624344524361700 en 796490344581898200 NaN \n",
"68720 925624348710285300 en 907808317124177900 NaN \n",
"68721 925624352929910800 en 262162415 NaN \n",
"68722 925624369715515400 en 574882525 NaN \n",
"68723 925624382269124600 en 556175173 9.254038e+17 \n",
"68724 925624386455031800 en 1610265588 NaN \n",
"68725 925624386454937600 en 4760724450 NaN \n",
"68726 925624390657572900 en 882858115636514800 NaN \n",
"68727 925624390682849300 en 188129628 NaN \n",
"68728 925624390666129400 en 2473135939 NaN \n",
"68729 925624390670106600 en 2373584209 9.256241e+17 \n",
"68730 925624407459971100 en 181689756 NaN \n",
"68731 925624407460057100 en 60160788 9.254610e+17 \n",
"68732 925624420022063100 en 3792290725 9.256215e+17 \n",
"\n",
" text \n",
"0 fashionbombdaily's photo <EMOJI><EMOJI>🏼 \n",
"1 Its scary how on point my horoscope be <EMOJI... \n",
"2 Woooaaaahhh <EMOJI> \n",
"3 <EMOJI> vivalcli: Portraits by Zhao Guojing an... \n",
"4 <USER> i wanna know too<EMOJI><EMOJI> \n",
"5 <USER> veda was yoda too <EMOJI><EMOJI> \n",
"6 Im less stressed about turning 30 now <EMOJI>... \n",
"7 Full charged. <EMOJI> \n",
"8 <USER> Thats part of the problem, (they) <USE... \n",
"9 <USER> got me emotional there<EMOJI><EMOJI><EM... \n",
"10 back to the yellow <EMOJI> \n",
"11 <USER> Happy month to you and your loved ones ... \n",
"12 Maxx and Patricia. Family hangs at For Good He... \n",
"13 I need to STOP beating myself up with my thoug... \n",
"14 Cutest Son <EMOJI>Roll no. 31 <EMOJI> <HASHTAG> \n",
"15 By the summer I should have everything up and ... \n",
"16 I know my English is not that good but that do... \n",
"17 <USER> I <EMOJI> u mama \n",
"18 <USER> That picture was NOT taken this morning... \n",
"19 Welcome to <HASHTAG> <EMOJI> \n",
"20 Awkward <EMOJI><EMOJI> \n",
"21 back at it with supernatural <EMOJI><EMOJI> \n",
"22 One of the best things I've learned was to sto... \n",
"23 <USER> Can I taste?<EMOJI><EMOJI><EMOJI> \n",
"24 <USER> we miss you ☹️<EMOJI> \n",
"25 Actually my bias in WJSN are Eunseo &amp; Bona... \n",
"26 I so cannot be bothered with the rest of the d... \n",
"27 <USER> 2lit4life<EMOJI> \n",
"28 Im not stop saying that!<EMOJI><EMOJI> \n",
"29 <USER> HAPPY BIHDAY <EMOJI><EMOJI><EMOJI><EMOJ... \n",
"... ... \n",
"68703 <HASHTAG> this one falls under the weird crazy... \n",
"68704 I'm not allowed to have chocolates yet, then I... \n",
"68705 Manchester United manager Mourinho slams 'spec... \n",
"68706 <EMOJI> en Bushwhick \n",
"68707 : <HASHTAG> <EMOJI> <EMOJI><EMOJI> For Taxi <E... \n",
"68708 <USER> <USER> <USER> Look, Mammeh and Daddeh! ... \n",
"68709 Life is so good with you <EMOJI> \n",
"68710 Happy Halloween! <EMOJI>🏽<EMOJI><EMOJI> <HASHT... \n",
"68711 Some work on the ropes in todays boxing class... \n",
"68712 Scotty and Kristens halloween costumes <EMOJI> \n",
"68713 <USER> <USER> May pre-month celebration sis <E... \n",
"68714 <USER> Awww <EMOJI> Ajsksjdjd im smiling like ... \n",
"68715 I hate when I send a text or snap n I'm so anx... \n",
"68716 The answer is no I have no plans and I never l... \n",
"68717 <USER> LMAOOO I'm so proud <EMOJI> \n",
"68718 My cousin/little sister is leaving to San Fran... \n",
"68719 Can't be alone w my thoughts tonight so just g... \n",
"68720 <EMOJI><EMOJI><EMOJI><EMOJI><EMOJI> ambot!!! \n",
"68721 <EMOJI>🏽<EMOJI>🏽 1st of the month!!Happy 1st o... \n",
"68722 <HASHTAG> ... stay in bed <EMOJI> \n",
"68723 <USER> <USER> THIS IS GOLD. GOLD. <EMOJI><EMOJ... \n",
"68724 <EMOJI> thank you for the kind compliment \n",
"68725 Enjoyed the silence <EMOJI> \n",
"68726 OS: Spiderman Homecoming <EMOJI> \n",
"68727 Go to hell <EMOJI>🏽‍♀️ \n",
"68728 Thank you Yomi! <EMOJI> \n",
"68729 <USER> Lol. Just enjoy the stars. Music Kidhar... \n",
"68730 Thoughts and prayers for NY<EMOJI>🏻 <HASHTAG> \n",
"68731 <USER> I searched COCK, PENIS, SHLONG, WINKY, ... \n",
"68732 <USER> Thank you so much<EMOJI><EMOJI><EMOJI><... \n",
"\n",
"[68733 rows x 9 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"twitter_data = pd.read_json(json_files[0], encoding=\"utf-8\")\n",
"twitter_data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* extracting emojis and text"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"emojis = twitter_data['EMOJI']\n",
"plain_text = twitter_data['text']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* make our plain text more \"plain\":\n",
" * removing the keyword `<EMOJI>` (just for the beginning)\n",
" * removing remaining useless emojis, like skin modifier etc."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"# defining blacklist for modifier emojis:\n",
"emoji_blacklist = set([\n",
" chr(0x1F3FB),\n",
" chr(0x1F3FC),\n",
" chr(0x1F3FD),\n",
" chr(0x1F3FE),\n",
" chr(0x1F3FF),\n",
" chr(0x2642),\n",
" chr(0x2640)\n",
"])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"# filtering them and the EMOJI keyword out:\n",
"plain_text = plain_text.str.replace(\"(<EMOJI>|<USER>|<HASHTAG>)\",\"\").str.replace(\"[\" + \"\".join(list(emoji_blacklist)) + \"]\",\"\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* defining different criterias for choosing a single emoji (currently `latest` is used)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"def latest(lst):\n",
" return lst[-1] if len(lst) > 0 else 'X' \n",
"def most_common(lst):\n",
" # trying to find the most common used emoji in the given lst\n",
" return max(set(lst), key=lst.count) if len(lst) > 0 else \"X\" # setting label to 'X' if there is an empty emoji list"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* convert all emojis to a sentiment vector"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"labels = emoji2sent([latest(e) for e in emojis])\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"68733"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(labels)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"wrong_labels = np.isnan(np.linalg.norm(labels, axis=1))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* remove all data we have no label for"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"labels = labels[np.invert(wrong_labels)]\n",
"plain_text = plain_text[np.invert(wrong_labels)]\n",
"emojis = emojis[np.invert(wrong_labels)]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"33368 33368 33368\n"
]
}
],
"source": [
"print(len(labels), len(emojis), len(plain_text))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* generate weights:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"# at first count over our table\n",
"emoji_count = {}\n",
"\n",
"\n",
"for e_list in emojis:\n",
" for e in set(e_list):\n",
" if e not in emoji_count:\n",
" emoji_count[e] = 0\n",
" emoji_count[e] += 1\n",
"\n",
"emoji_count\n",
"emoji_sum = sum([emoji_count[e] for e in emoji_count])\n",
"\n",
"emoji_weights = {}\n",
"for e in emoji_count:\n",
" # tfidf for emojis\n",
" emoji_weights[e] = np.log((emoji_sum / emoji_count[e]))\n",
"\n",
"weights_sum= sum([emoji_weights[x] for x in emoji_weights])\n",
" \n",
"# normalize:\n",
"for e in emoji_weights:\n",
" emoji_weights[e] = emoji_weights[e] / weights_sum\n",
"\n",
"emoji_weights['X'] = 0 # dummy values\n",
"emoji_count['X'] = 0"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* most used emojis in Dataset"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"import operator"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('😂', 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)]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"['😂',\n",
" '😭',\n",
" '😍',\n",
" '😩',\n",
" '😊',\n",
" '😘',\n",
" '🙏',\n",
" '🙌',\n",
" '😉',\n",
" '😁',\n",
" '😅',\n",
" '😎',\n",
" '😢',\n",
" '😒',\n",
" '😏',\n",
" '😌',\n",
" '😔',\n",
" '😋',\n",
" '😀',\n",
" '😤']"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sorted_emoji_count = list(reversed(sorted(emoji_count.items(), key=operator.itemgetter(1))))\n",
"display(sorted_emoji_count[:20])\n",
"\n",
"top_emojis = [x[0] for x in sorted_emoji_count[:20]]\n",
"display(top_emojis)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* only learn the most used ones:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"26197 26197 26197\n"
]
}
],
"source": [
"in_top = [sentiment_vector_to_emoji(x) in top_emojis for x in labels]\n",
"labels = labels[in_top]\n",
"plain_text = plain_text[in_top]\n",
"emojis = emojis[in_top]\n",
"print(len(labels), len(emojis), len(plain_text))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* generating train and test set:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"X1, Xt1, y1, yt1 = train_test_split(plain_text, labels, test_size=0.1, random_state=4222)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"#y1_weights = np.array([(sum([emoji_weights[e] for e in e_list]) / len(e_list)) if len(e_list) > 0 else 0 for e_list in sent2emoji(y1)])"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"vectorizer = TfidfVectorizer(stop_words='english')\n",
"vec_train = vectorizer.fit_transform(X1)\n",
"vec_test = vectorizer.transform(Xt1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* train. this can take a very long time..."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"from sklearn.neural_network import MLPClassifier as MLP\n",
"from sklearn.multiclass import OneVsRestClassifier as OVRC\n",
"from sklearn.tree import DecisionTreeClassifier as DTC\n",
"\n",
"from keras.models import Sequential\n",
"from keras.layers import Dense"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"def train(max_size = 10000, layers=[(1024, 'relu'),(y1[0].shape[0],'softmax')], random_state=4222, ovrc=False, n_iter=5):\n",
" \n",
" model = Sequential()\n",
" \n",
" # build mlp layers:\n",
" keras_layers = []\n",
" first_layer = True\n",
" for layer in layers:\n",
" if first_layer:\n",
" model.add(Dense(units=layer[0], activation=layer[1], input_dim=vectorizer.transform([\" \"])[0]._shape[1]))\n",
" first_layer = False\n",
" else:\n",
" model.add(Dense(units=layer[0], activation=layer[1]))\n",
" \n",
" #mlp = MLPClassifier(layers=sknn_layers, random_state=random_state, verbose=True, n_iter=n_iter, batch_size=100)\n",
" \n",
" model.compile(loss='mean_squared_error',\n",
" optimizer='adam')\n",
" \n",
" clf = OVRC(model) if ovrc else model\n",
"\n",
" clf.fit(vec_train[:max_size].A, y1[:max_size], validation_split=0.2, epochs=n_iter)#, sample_weight=y1_weights[:max_size])\n",
" \n",
" return clf"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 18861 samples, validate on 4716 samples\n",
"Epoch 1/3\n",
"18861/18861 [==============================] - 1288s 68ms/step - loss: 0.0185 - val_loss: 0.0164\n",
"Epoch 2/3\n",
"18861/18861 [==============================] - 1282s 68ms/step - loss: 0.0103 - val_loss: 0.0164\n",
"Epoch 3/3\n",
"18861/18861 [==============================] - 1333s 71ms/step - loss: 0.0063 - val_loss: 0.0166\n"
]
}
],
"source": [
"clf = train(max_size=100000,layers=[(10000, 'relu'),(5000, 'relu'),(2500, 'relu'),(y1[0].shape[0],None)], n_iter=3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* make a prediction and store it in a csv file:"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"pred = clf.predict(vectorizer.transform(Xt1))"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.012647177\n",
"0.03387511671001757\n"
]
}
],
"source": [
"print(np.linalg.norm(np.var(pred, axis=0)))\n",
"print(np.linalg.norm(np.var(labels, axis=0)))\n"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"# build a dataframe to visualize test results:\n",
"testlist = pd.DataFrame({'text': Xt1, \n",
" 'teacher': sent2emoji(yt1),\n",
" 'teacher_sentiment': yt1.tolist(),\n",
" 'predict': sent2emoji(pred, custom_target_emojis=top_emojis),\n",
" 'predicted_sentiment': pred.tolist()})"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>text</th>\n",
" <th>teacher</th>\n",
" <th>teacher_sentiment</th>\n",
" <th>predict</th>\n",
" <th>predicted_sentiment</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>35671</th>\n",
" <td>I feel like I care so much more in every situa...</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😢</td>\n",
" <td>[0.3881330192089081, 0.34921327233314514, 0.24...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25683</th>\n",
" <td>I did not meat to add that '2' there...havent ...</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.477517306804657, 0.2263115793466568, 0.2805...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8985</th>\n",
" <td>never…</td>\n",
" <td>😊</td>\n",
" <td>[0.7040175768989329, 0.059322033898305086, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.4780172109603882, 0.24580059945583344, 0.25...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5410</th>\n",
" <td>Lmao on me!!! Wtf was he supposed to say</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😭</td>\n",
" <td>[0.3319989740848541, 0.38802555203437805, 0.23...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62611</th>\n",
" <td>This dude always help me get through my schoo...</td>\n",
" <td>😊</td>\n",
" <td>[0.7040175768989329, 0.059322033898305086, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.471467524766922, 0.19387008249759674, 0.299...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48197</th>\n",
" <td>Happy B'Day Sir</td>\n",
" <td>😊</td>\n",
" <td>[0.7040175768989329, 0.059322033898305086, 0.2...</td>\n",
" <td>😀</td>\n",
" <td>[0.6342154145240784, 0.0916505753993988, 0.253...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23654</th>\n",
" <td>You need some good old fashioned Swedish Jesus</td>\n",
" <td>🙏</td>\n",
" <td>[0.4983755685510071, 0.08057179987004548, 0.42...</td>\n",
" <td>😂</td>\n",
" <td>[0.4485129117965698, 0.2649095952510834, 0.266...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>58207</th>\n",
" <td>these late shifts are making me not have a soc...</td>\n",
" <td>😅</td>\n",
" <td>[0.47186147186147187, 0.2922077922077922, 0.23...</td>\n",
" <td>😢</td>\n",
" <td>[0.35744383931159973, 0.37891000509262085, 0.2...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>374</th>\n",
" <td>Dc this weekend</td>\n",
" <td>😍</td>\n",
" <td>[0.7296744771190439, 0.05173769460607014, 0.21...</td>\n",
" <td>😁</td>\n",
" <td>[0.575383186340332, 0.14427249133586884, 0.250...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26310</th>\n",
" <td>Paul lad you'll make es blush</td>\n",
" <td>😊</td>\n",
" <td>[0.7040175768989329, 0.059322033898305086, 0.2...</td>\n",
" <td>😢</td>\n",
" <td>[0.3773207664489746, 0.363784521818161, 0.2402...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30892</th>\n",
" <td>Did you have a fun Halloween?</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.4547549784183502, 0.2675609588623047, 0.265...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11868</th>\n",
" <td>Hi handsome</td>\n",
" <td>😍</td>\n",
" <td>[0.7296744771190439, 0.05173769460607014, 0.21...</td>\n",
" <td>🙌</td>\n",
" <td>[0.6610512137413025, 0.07423651218414307, 0.20...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46219</th>\n",
" <td>I'm not okay with this, I'm suing Snapchat</td>\n",
" <td>😭</td>\n",
" <td>[0.34310532030401736, 0.4364820846905538, 0.22...</td>\n",
" <td>😢</td>\n",
" <td>[0.38139358162879944, 0.36385539174079895, 0.2...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13583</th>\n",
" <td>My parents be so mad I be buying new stuff &amp;am...</td>\n",
" <td>😭</td>\n",
" <td>[0.34310532030401736, 0.4364820846905538, 0.22...</td>\n",
" <td>😢</td>\n",
" <td>[0.393837571144104, 0.3474741280078888, 0.2423...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43843</th>\n",
" <td>One of the few songs that calms me down esp on...</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😢</td>\n",
" <td>[0.36614790558815, 0.369498074054718, 0.239036...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>63589</th>\n",
" <td>iPhone X Bouta Be The Last Phone We Ever Buy</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😭</td>\n",
" <td>[0.3337980806827545, 0.4099247455596924, 0.223...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>53695</th>\n",
" <td>Visited my main man today ❤ i miss u papa</td>\n",
" <td>😭</td>\n",
" <td>[0.34310532030401736, 0.4364820846905538, 0.22...</td>\n",
" <td>😁</td>\n",
" <td>[0.5644013285636902, 0.14413486421108246, 0.25...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67529</th>\n",
" <td>Donuts</td>\n",
" <td>😍</td>\n",
" <td>[0.7296744771190439, 0.05173769460607014, 0.21...</td>\n",
" <td>😂</td>\n",
" <td>[0.4482305943965912, 0.2685551047325134, 0.273...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25493</th>\n",
" <td>Has anyone heard this by ? Who the fuck knew...</td>\n",
" <td>😘</td>\n",
" <td>[0.7546600877192983, 0.05290570175438596, 0.19...</td>\n",
" <td>😂</td>\n",
" <td>[0.41814130544662476, 0.27233976125717163, 0.2...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19486</th>\n",
" <td>Wow superrbb</td>\n",
" <td>😍</td>\n",
" <td>[0.7296744771190439, 0.05173769460607014, 0.21...</td>\n",
" <td>🙌</td>\n",
" <td>[0.6488221883773804, 0.07963734865188599, 0.23...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48449</th>\n",
" <td>Of course they don't. Their perfect model ...</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😌</td>\n",
" <td>[0.5793762803077698, 0.14216111600399017, 0.24...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4504</th>\n",
" <td>Please pick me. Pick me. Pick me. Please.</td>\n",
" <td>😍</td>\n",
" <td>[0.7296744771190439, 0.05173769460607014, 0.21...</td>\n",
" <td>😁</td>\n",
" <td>[0.526153028011322, 0.1465001106262207, 0.2909...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40285</th>\n",
" <td>shiid no crack is wack</td>\n",
" <td>😭</td>\n",
" <td>[0.34310532030401736, 0.4364820846905538, 0.22...</td>\n",
" <td>😂</td>\n",
" <td>[0.4464351236820221, 0.25675588846206665, 0.27...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56741</th>\n",
" <td>Pj still sleeps like a newborn</td>\n",
" <td>😩</td>\n",
" <td>[0.22289823008849557, 0.5912610619469026, 0.18...</td>\n",
" <td>😢</td>\n",
" <td>[0.3798309564590454, 0.3601042628288269, 0.236...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22948</th>\n",
" <td>An opinion doesn't mean you make sense first ...</td>\n",
" <td>😌</td>\n",
" <td>[0.6240601503759399, 0.13984962406015036, 0.23...</td>\n",
" <td>😢</td>\n",
" <td>[0.3885924518108368, 0.35167044401168823, 0.23...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68426</th>\n",
" <td>Missyou too</td>\n",
" <td>😘</td>\n",
" <td>[0.7546600877192983, 0.05290570175438596, 0.19...</td>\n",
" <td>😭</td>\n",
" <td>[0.32084617018699646, 0.4261379539966583, 0.21...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13431</th>\n",
" <td>I swear she did</td>\n",
" <td>😩</td>\n",
" <td>[0.22289823008849557, 0.5912610619469026, 0.18...</td>\n",
" <td>😂</td>\n",
" <td>[0.4509403705596924, 0.2531892657279968, 0.277...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>66287</th>\n",
" <td>Its true, he was the mutts (big-d) nuts.</td>\n",
" <td>😉</td>\n",
" <td>[0.5634451019066403, 0.0992767915844839, 0.337...</td>\n",
" <td>😂</td>\n",
" <td>[0.43934985995292664, 0.27343544363975525, 0.2...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41980</th>\n",
" <td>is happening so happy</td>\n",
" <td>😭</td>\n",
" <td>[0.34310532030401736, 0.4364820846905538, 0.22...</td>\n",
" <td>😂</td>\n",
" <td>[0.5246269106864929, 0.21524660289287567, 0.23...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34632</th>\n",
" <td>Saw that the first one said sosee you tmmrw a...</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😢</td>\n",
" <td>[0.40898817777633667, 0.32723960280418396, 0.2...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47218</th>\n",
" <td>Keep it I don't want it</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.46869081258773804, 0.2421991378068924, 0.26...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35087</th>\n",
" <td>6 years ago today we said our final good byes ...</td>\n",
" <td>😢</td>\n",
" <td>[0.39118825100133514, 0.38451268357810414, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.4856921434402466, 0.25167116522789, 0.24757...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61252</th>\n",
" <td>amen</td>\n",
" <td>🙏</td>\n",
" <td>[0.4983755685510071, 0.08057179987004548, 0.42...</td>\n",
" <td>🙏</td>\n",
" <td>[0.48897236585617065, 0.09773151576519012, 0.3...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39960</th>\n",
" <td>FACT</td>\n",
" <td>😎</td>\n",
" <td>[0.5981432360742706, 0.10477453580901856, 0.29...</td>\n",
" <td>😂</td>\n",
" <td>[0.4365101754665375, 0.2751618027687073, 0.265...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>365</th>\n",
" <td>nw Finally Found Someone Hi Loydi</td>\n",
" <td>😅</td>\n",
" <td>[0.47186147186147187, 0.2922077922077922, 0.23...</td>\n",
" <td>🙌</td>\n",
" <td>[0.6661455631256104, 0.07442493736743927, 0.22...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50665</th>\n",
" <td>I need ur shoulder to cry on</td>\n",
" <td>😢</td>\n",
" <td>[0.39118825100133514, 0.38451268357810414, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.5001665949821472, 0.18579629063606262, 0.27...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21007</th>\n",
" <td>awww you'll get me teary eyed gurl!</td>\n",
" <td>😘</td>\n",
" <td>[0.7546600877192983, 0.05290570175438596, 0.19...</td>\n",
" <td>😭</td>\n",
" <td>[0.32326677441596985, 0.39027056097984314, 0.1...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18819</th>\n",
" <td>〰Happy Hump Day to all my Ladies is def swe...</td>\n",
" <td>😘</td>\n",
" <td>[0.7546600877192983, 0.05290570175438596, 0.19...</td>\n",
" <td>😂</td>\n",
" <td>[0.5100692510604858, 0.19811441004276276, 0.26...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42421</th>\n",
" <td>Thanks.</td>\n",
" <td>😊</td>\n",
" <td>[0.7040175768989329, 0.059322033898305086, 0.2...</td>\n",
" <td>😊</td>\n",
" <td>[0.6941412687301636, 0.07213307917118073, 0.21...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38705</th>\n",
" <td>its okay I didnt see you until I was in your...</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.4489935338497162, 0.24917839467525482, 0.28...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47033</th>\n",
" <td>Fall in with alexissdanger ⬅️</td>\n",
" <td>😍</td>\n",
" <td>[0.7296744771190439, 0.05173769460607014, 0.21...</td>\n",
" <td>😅</td>\n",
" <td>[0.4509217441082001, 0.2770771086215973, 0.229...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38742</th>\n",
" <td>Let your wild side free girl!!!!!</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.5023915767669678, 0.22065317630767822, 0.26...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67610</th>\n",
" <td>Can we get season 3 already!?</td>\n",
" <td>😭</td>\n",
" <td>[0.34310532030401736, 0.4364820846905538, 0.22...</td>\n",
" <td>😅</td>\n",
" <td>[0.49751874804496765, 0.2405281811952591, 0.23...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61021</th>\n",
" <td>Have to quote this bih remember this nigga</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.44404181838035583, 0.2531435489654541, 0.28...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14904</th>\n",
" <td>He so damn</td>\n",
" <td>😩</td>\n",
" <td>[0.22289823008849557, 0.5912610619469026, 0.18...</td>\n",
" <td>😢</td>\n",
" <td>[0.395942747592926, 0.34198662638664246, 0.220...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50994</th>\n",
" <td>YASSS It's time for a great show Maxloyal™♛:G...</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😍</td>\n",
" <td>[0.7120986580848694, 0.05822291225194931, 0.19...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6973</th>\n",
" <td>Got to love a fish finger sarnie</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.5202821493148804, 0.19921283423900604, 0.26...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3269</th>\n",
" <td>say dat</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😁</td>\n",
" <td>[0.5501073598861694, 0.15135927498340607, 0.26...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54827</th>\n",
" <td>If ur happy I'm happy</td>\n",
" <td>😊</td>\n",
" <td>[0.7040175768989329, 0.059322033898305086, 0.2...</td>\n",
" <td>😊</td>\n",
" <td>[0.6811650395393372, 0.076321542263031, 0.2262...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19409</th>\n",
" <td>Rockstar</td>\n",
" <td>😀</td>\n",
" <td>[0.6560364464692483, 0.08428246013667426, 0.25...</td>\n",
" <td>😌</td>\n",
" <td>[0.6229063868522644, 0.10924336314201355, 0.23...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38703</th>\n",
" <td>God fuck me I already fixed it once</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😢</td>\n",
" <td>[0.3869953751564026, 0.3528730273246765, 0.244...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25133</th>\n",
" <td>Its socially acceptable to listen to ANY Chr...</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😁</td>\n",
" <td>[0.5611444115638733, 0.16056178510189056, 0.24...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15339</th>\n",
" <td>I thrashed p in iMessage now he wanna bet on 2k</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.4555157423019409, 0.2545802891254425, 0.276...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28082</th>\n",
" <td>my fatass need some lemon pepper wings w a lil...</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😔</td>\n",
" <td>[0.29292455315589905, 0.45915406942367554, 0.1...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44462</th>\n",
" <td>fck off tristan yes soph collect u in 15 n w...</td>\n",
" <td>😤</td>\n",
" <td>[0.2691131498470948, 0.4801223241590214, 0.250...</td>\n",
" <td>😌</td>\n",
" <td>[0.5860549211502075, 0.13672666251659393, 0.24...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60212</th>\n",
" <td>Open the bag</td>\n",
" <td>😋</td>\n",
" <td>[0.6784741144414169, 0.04495912806539509, 0.27...</td>\n",
" <td>😂</td>\n",
" <td>[0.45511847734451294, 0.24822814762592316, 0.2...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34950</th>\n",
" <td>I asked people to guess my zodiac sign and thi...</td>\n",
" <td>😤</td>\n",
" <td>[0.2691131498470948, 0.4801223241590214, 0.250...</td>\n",
" <td>😂</td>\n",
" <td>[0.4273592531681061, 0.28500065207481384, 0.27...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>59462</th>\n",
" <td>I regret this sm</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.43678316473960876, 0.24388131499290466, 0.2...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19465</th>\n",
" <td>Fuck college</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😅</td>\n",
" <td>[0.43676847219467163, 0.30419719219207764, 0.2...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8135</th>\n",
" <td>Aye this was my first time actually seeing it...</td>\n",
" <td>😂</td>\n",
" <td>[0.46813021474490496, 0.24716181096977158, 0.2...</td>\n",
" <td>😂</td>\n",
" <td>[0.45839327573776245, 0.2764120101928711, 0.26...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2620 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" text teacher \\\n",
"35671 I feel like I care so much more in every situa... 😂 \n",
"25683 I did not meat to add that '2' there...havent ... 😂 \n",
"8985 never… 😊 \n",
"5410 Lmao on me!!! Wtf was he supposed to say 😂 \n",
"62611 This dude always help me get through my schoo... 😊 \n",
"48197 Happy B'Day Sir 😊 \n",
"23654 You need some good old fashioned Swedish Jesus 🙏 \n",
"58207 these late shifts are making me not have a soc... 😅 \n",
"374 Dc this weekend 😍 \n",
"26310 Paul lad you'll make es blush 😊 \n",
"30892 Did you have a fun Halloween? 😂 \n",
"11868 Hi handsome 😍 \n",
"46219 I'm not okay with this, I'm suing Snapchat 😭 \n",
"13583 My parents be so mad I be buying new stuff &am... 😭 \n",
"43843 One of the few songs that calms me down esp on... 😂 \n",
"63589 iPhone X Bouta Be The Last Phone We Ever Buy 😂 \n",
"53695 Visited my main man today ❤ i miss u papa 😭 \n",
"67529 Donuts 😍 \n",
"25493 Has anyone heard this by ? Who the fuck knew... 😘 \n",
"19486 Wow superrbb 😍 \n",
"48449 Of course they don't. Their perfect model ... 😂 \n",
"4504 Please pick me. Pick me. Pick me. Please. 😍 \n",
"40285 shiid no crack is wack 😭 \n",
"56741 Pj still sleeps like a newborn 😩 \n",
"22948 An opinion doesn't mean you make sense first ... 😌 \n",
"68426 Missyou too 😘 \n",
"13431 I swear she did 😩 \n",
"66287 Its true, he was the mutts (big-d) nuts. 😉 \n",
"41980 is happening so happy 😭 \n",
"34632 Saw that the first one said sosee you tmmrw a... 😂 \n",
"... ... ... \n",
"47218 Keep it I don't want it 😂 \n",
"35087 6 years ago today we said our final good byes ... 😢 \n",
"61252 amen 🙏 \n",
"39960 FACT 😎 \n",
"365 nw Finally Found Someone Hi Loydi 😅 \n",
"50665 I need ur shoulder to cry on 😢 \n",
"21007 awww you'll get me teary eyed gurl! 😘 \n",
"18819 〰Happy Hump Day to all my Ladies is def swe... 😘 \n",
"42421 Thanks. 😊 \n",
"38705 its okay I didnt see you until I was in your... 😂 \n",
"47033 Fall in with alexissdanger ⬅️ 😍 \n",
"38742 Let your wild side free girl!!!!! 😂 \n",
"67610 Can we get season 3 already!? 😭 \n",
"61021 Have to quote this bih remember this nigga 😂 \n",
"14904 He so damn 😩 \n",
"50994 YASSS It's time for a great show Maxloyal™♛:G... 😂 \n",
"6973 Got to love a fish finger sarnie 😂 \n",
"3269 say dat 😂 \n",
"54827 If ur happy I'm happy 😊 \n",
"19409 Rockstar 😀 \n",
"38703 God fuck me I already fixed it once 😂 \n",
"25133 Its socially acceptable to listen to ANY Chr... 😂 \n",
"15339 I thrashed p in iMessage now he wanna bet on 2k 😂 \n",
"28082 my fatass need some lemon pepper wings w a lil... 😂 \n",
"44462 fck off tristan yes soph collect u in 15 n w... 😤 \n",
"60212 Open the bag 😋 \n",
"34950 I asked people to guess my zodiac sign and thi... 😤 \n",
"59462 I regret this sm 😂 \n",
"19465 Fuck college 😂 \n",
"8135 Aye this was my first time actually seeing it... 😂 \n",
"\n",
" teacher_sentiment predict \\\n",
"35671 [0.46813021474490496, 0.24716181096977158, 0.2... 😢 \n",
"25683 [0.46813021474490496, 0.24716181096977158, 0.2... 😂 \n",
"8985 [0.7040175768989329, 0.059322033898305086, 0.2... 😂 \n",
"5410 [0.46813021474490496, 0.24716181096977158, 0.2... 😭 \n",
"62611 [0.7040175768989329, 0.059322033898305086, 0.2... 😂 \n",
"48197 [0.7040175768989329, 0.059322033898305086, 0.2... 😀 \n",
"23654 [0.4983755685510071, 0.08057179987004548, 0.42... 😂 \n",
"58207 [0.47186147186147187, 0.2922077922077922, 0.23... 😢 \n",
"374 [0.7296744771190439, 0.05173769460607014, 0.21... 😁 \n",
"26310 [0.7040175768989329, 0.059322033898305086, 0.2... 😢 \n",
"30892 [0.46813021474490496, 0.24716181096977158, 0.2... 😂 \n",
"11868 [0.7296744771190439, 0.05173769460607014, 0.21... 🙌 \n",
"46219 [0.34310532030401736, 0.4364820846905538, 0.22... 😢 \n",
"13583 [0.34310532030401736, 0.4364820846905538, 0.22... 😢 \n",
"43843 [0.46813021474490496, 0.24716181096977158, 0.2... 😢 \n",
"63589 [0.46813021474490496, 0.24716181096977158, 0.2... 😭 \n",
"53695 [0.34310532030401736, 0.4364820846905538, 0.22... 😁 \n",
"67529 [0.7296744771190439, 0.05173769460607014, 0.21... 😂 \n",
"25493 [0.7546600877192983, 0.05290570175438596, 0.19... 😂 \n",
"19486 [0.7296744771190439, 0.05173769460607014, 0.21... 🙌 \n",
"48449 [0.46813021474490496, 0.24716181096977158, 0.2... 😌 \n",
"4504 [0.7296744771190439, 0.05173769460607014, 0.21... 😁 \n",
"40285 [0.34310532030401736, 0.4364820846905538, 0.22... 😂 \n",
"56741 [0.22289823008849557, 0.5912610619469026, 0.18... 😢 \n",
"22948 [0.6240601503759399, 0.13984962406015036, 0.23... 😢 \n",
"68426 [0.7546600877192983, 0.05290570175438596, 0.19... 😭 \n",
"13431 [0.22289823008849557, 0.5912610619469026, 0.18... 😂 \n",
"66287 [0.5634451019066403, 0.0992767915844839, 0.337... 😂 \n",
"41980 [0.34310532030401736, 0.4364820846905538, 0.22... 😂 \n",
"34632 [0.46813021474490496, 0.24716181096977158, 0.2... 😢 \n",
"... ... ... \n",
"47218 [0.46813021474490496, 0.24716181096977158, 0.2... 😂 \n",
"35087 [0.39118825100133514, 0.38451268357810414, 0.2... 😂 \n",
"61252 [0.4983755685510071, 0.08057179987004548, 0.42... 🙏 \n",
"39960 [0.5981432360742706, 0.10477453580901856, 0.29... 😂 \n",
"365 [0.47186147186147187, 0.2922077922077922, 0.23... 🙌 \n",
"50665 [0.39118825100133514, 0.38451268357810414, 0.2... 😂 \n",
"21007 [0.7546600877192983, 0.05290570175438596, 0.19... 😭 \n",
"18819 [0.7546600877192983, 0.05290570175438596, 0.19... 😂 \n",
"42421 [0.7040175768989329, 0.059322033898305086, 0.2... 😊 \n",
"38705 [0.46813021474490496, 0.24716181096977158, 0.2... 😂 \n",
"47033 [0.7296744771190439, 0.05173769460607014, 0.21... 😅 \n",
"38742 [0.46813021474490496, 0.24716181096977158, 0.2... 😂 \n",
"67610 [0.34310532030401736, 0.4364820846905538, 0.22... 😅 \n",
"61021 [0.46813021474490496, 0.24716181096977158, 0.2... 😂 \n",
"14904 [0.22289823008849557, 0.5912610619469026, 0.18... 😢 \n",
"50994 [0.46813021474490496, 0.24716181096977158, 0.2... 😍 \n",
"6973 [0.46813021474490496, 0.24716181096977158, 0.2... 😂 \n",
"3269 [0.46813021474490496, 0.24716181096977158, 0.2... 😁 \n",
"54827 [0.7040175768989329, 0.059322033898305086, 0.2... 😊 \n",
"19409 [0.6560364464692483, 0.08428246013667426, 0.25... 😌 \n",
"38703 [0.46813021474490496, 0.24716181096977158, 0.2... 😢 \n",
"25133 [0.46813021474490496, 0.24716181096977158, 0.2... 😁 \n",
"15339 [0.46813021474490496, 0.24716181096977158, 0.2... 😂 \n",
"28082 [0.46813021474490496, 0.24716181096977158, 0.2... 😔 \n",
"44462 [0.2691131498470948, 0.4801223241590214, 0.250... 😌 \n",
"60212 [0.6784741144414169, 0.04495912806539509, 0.27... 😂 \n",
"34950 [0.2691131498470948, 0.4801223241590214, 0.250... 😂 \n",
"59462 [0.46813021474490496, 0.24716181096977158, 0.2... 😂 \n",
"19465 [0.46813021474490496, 0.24716181096977158, 0.2... 😅 \n",
"8135 [0.46813021474490496, 0.24716181096977158, 0.2... 😂 \n",
"\n",
" predicted_sentiment \n",
"35671 [0.3881330192089081, 0.34921327233314514, 0.24... \n",
"25683 [0.477517306804657, 0.2263115793466568, 0.2805... \n",
"8985 [0.4780172109603882, 0.24580059945583344, 0.25... \n",
"5410 [0.3319989740848541, 0.38802555203437805, 0.23... \n",
"62611 [0.471467524766922, 0.19387008249759674, 0.299... \n",
"48197 [0.6342154145240784, 0.0916505753993988, 0.253... \n",
"23654 [0.4485129117965698, 0.2649095952510834, 0.266... \n",
"58207 [0.35744383931159973, 0.37891000509262085, 0.2... \n",
"374 [0.575383186340332, 0.14427249133586884, 0.250... \n",
"26310 [0.3773207664489746, 0.363784521818161, 0.2402... \n",
"30892 [0.4547549784183502, 0.2675609588623047, 0.265... \n",
"11868 [0.6610512137413025, 0.07423651218414307, 0.20... \n",
"46219 [0.38139358162879944, 0.36385539174079895, 0.2... \n",
"13583 [0.393837571144104, 0.3474741280078888, 0.2423... \n",
"43843 [0.36614790558815, 0.369498074054718, 0.239036... \n",
"63589 [0.3337980806827545, 0.4099247455596924, 0.223... \n",
"53695 [0.5644013285636902, 0.14413486421108246, 0.25... \n",
"67529 [0.4482305943965912, 0.2685551047325134, 0.273... \n",
"25493 [0.41814130544662476, 0.27233976125717163, 0.2... \n",
"19486 [0.6488221883773804, 0.07963734865188599, 0.23... \n",
"48449 [0.5793762803077698, 0.14216111600399017, 0.24... \n",
"4504 [0.526153028011322, 0.1465001106262207, 0.2909... \n",
"40285 [0.4464351236820221, 0.25675588846206665, 0.27... \n",
"56741 [0.3798309564590454, 0.3601042628288269, 0.236... \n",
"22948 [0.3885924518108368, 0.35167044401168823, 0.23... \n",
"68426 [0.32084617018699646, 0.4261379539966583, 0.21... \n",
"13431 [0.4509403705596924, 0.2531892657279968, 0.277... \n",
"66287 [0.43934985995292664, 0.27343544363975525, 0.2... \n",
"41980 [0.5246269106864929, 0.21524660289287567, 0.23... \n",
"34632 [0.40898817777633667, 0.32723960280418396, 0.2... \n",
"... ... \n",
"47218 [0.46869081258773804, 0.2421991378068924, 0.26... \n",
"35087 [0.4856921434402466, 0.25167116522789, 0.24757... \n",
"61252 [0.48897236585617065, 0.09773151576519012, 0.3... \n",
"39960 [0.4365101754665375, 0.2751618027687073, 0.265... \n",
"365 [0.6661455631256104, 0.07442493736743927, 0.22... \n",
"50665 [0.5001665949821472, 0.18579629063606262, 0.27... \n",
"21007 [0.32326677441596985, 0.39027056097984314, 0.1... \n",
"18819 [0.5100692510604858, 0.19811441004276276, 0.26... \n",
"42421 [0.6941412687301636, 0.07213307917118073, 0.21... \n",
"38705 [0.4489935338497162, 0.24917839467525482, 0.28... \n",
"47033 [0.4509217441082001, 0.2770771086215973, 0.229... \n",
"38742 [0.5023915767669678, 0.22065317630767822, 0.26... \n",
"67610 [0.49751874804496765, 0.2405281811952591, 0.23... \n",
"61021 [0.44404181838035583, 0.2531435489654541, 0.28... \n",
"14904 [0.395942747592926, 0.34198662638664246, 0.220... \n",
"50994 [0.7120986580848694, 0.05822291225194931, 0.19... \n",
"6973 [0.5202821493148804, 0.19921283423900604, 0.26... \n",
"3269 [0.5501073598861694, 0.15135927498340607, 0.26... \n",
"54827 [0.6811650395393372, 0.076321542263031, 0.2262... \n",
"19409 [0.6229063868522644, 0.10924336314201355, 0.23... \n",
"38703 [0.3869953751564026, 0.3528730273246765, 0.244... \n",
"25133 [0.5611444115638733, 0.16056178510189056, 0.24... \n",
"15339 [0.4555157423019409, 0.2545802891254425, 0.276... \n",
"28082 [0.29292455315589905, 0.45915406942367554, 0.1... \n",
"44462 [0.5860549211502075, 0.13672666251659393, 0.24... \n",
"60212 [0.45511847734451294, 0.24822814762592316, 0.2... \n",
"34950 [0.4273592531681061, 0.28500065207481384, 0.27... \n",
"59462 [0.43678316473960876, 0.24388131499290466, 0.2... \n",
"19465 [0.43676847219467163, 0.30419719219207764, 0.2... \n",
"8135 [0.45839327573776245, 0.2764120101928711, 0.26... \n",
"\n",
"[2620 rows x 5 columns]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(testlist)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* exactly correct labeled sentences:"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.21221374045801528\n"
]
}
],
"source": [
"print (sum([1 if sample[1]['teacher'] == sample[1]['predict'] else 0 for sample in testlist.iterrows()]) / testlist.shape[0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* mean squared error:"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.02218067, 0.02490165, 0.00302656])"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"teacher_sentiments = np.array([sample[1]['teacher_sentiment'] for sample in testlist.iterrows()])\n",
"predicted_sentiments = np.array([sample[1]['predicted_sentiment'] for sample in testlist.iterrows()])\n",
"\n",
"mean_squared_error = ((teacher_sentiments - predicted_sentiments)**2).mean(axis=0)\n",
"display(mean_squared_error)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* by an overall variance of:"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Variance teacher: [0.02183094 0.02513847 0.00285735]\n",
"Variance prediction: [0.00863898 0.00919997 0.00082446]\n"
]
}
],
"source": [
"print(\"Variance teacher: \", np.var(teacher_sentiments, axis=0))\n",
"print(\"Variance prediction: \", np.var(predicted_sentiments, axis=0))"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"testlist.to_csv('test.csv')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* save classifier:"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"import pickle\n",
"clf.save(\"clf.keras\")\n",
"pickle.dump( vectorizer, open( \"vec.pickle\", \"wb\" ) )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"## testing area\n",
"\n",
"**for just testing, start from here!**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* loading classifier and vectorizer"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import clear_output, Markdown, Math\n",
"import ipywidgets as widgets\n",
"import sys\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",
"\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": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"import keras\n",
"import pickle\n",
"clf = keras.models.load_model(\"clf.keras\")\n",
"vectorizer = pickle.load( open( \"vec.pickle\", \"rb\" ) )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* define lookup emojis here:"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"lookup_emojis = ['😂',\n",
" '😭',\n",
" '😍',\n",
" '😩',\n",
" '😊',\n",
" '😘',\n",
" '🙏',\n",
" '🙌',\n",
" '😉',\n",
" '😁',\n",
" '😅',\n",
" '😎',\n",
" '😢',\n",
" '😒',\n",
" '😏',\n",
" '😌',\n",
" '😔',\n",
" '😋',\n",
" '😀',\n",
" '😤']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* a simple output widget for testing:"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "8a4248b8f8d147a58cdc02f4be7fbe03",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Text(value='')"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "525901f072994db2a57e654faa5b9b39",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"VBox(children=(Button(description='get emoji', icon='check', style=ButtonStyle(), tooltip='Click me'), Output(…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"out = widgets.Output()\n",
"\n",
"t = widgets.Text()\n",
"b = widgets.Button(\n",
" description='get emoji',\n",
" disabled=False,\n",
" button_style='', # 'success', 'info', 'warning', 'danger' or ''\n",
" tooltip='Click me',\n",
" icon='check'\n",
")\n",
"\n",
"\n",
"\n",
"def handle_submit(sender):\n",
" with out:\n",
" clear_output()\n",
" with out:\n",
" pred = clf.predict(vectorizer.transform([t.value]))\n",
" \n",
" display(Markdown(\"# \" + str(sent2emoji(pred, lookup_emojis)[0])))\n",
"\n",
"b.on_click(handle_submit)\n",
" \n",
"display(t)\n",
"display(widgets.VBox([b, out])) "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"y_trans = mlb.inverse_transform(yt1)\n",
"pred_trans = mlb.inverse_transform(yt1)\n",
"\n",
"# evaluate accuracy\n",
"pos = 0\n",
"neg = 0\n",
"all = 0\n",
"for entry in range(len(y_trans)):\n",
" if len(np.intersect1d(y_trans[entry], pred_trans[entry])) > 0:\n",
" pos += 1\n",
" else:\n",
" neg += 1\n",
" all += 1\n",
"print(pos/all)\n",
"print(neg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"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
}