{ "cells": [ { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "import numpy as np\n", "import pandas as pd\n", "\n", "from support.language_models import *\n", "from support.norms import *" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pd.Series(scale(english_counts, linf)).sort_values(ascending=False).plot()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pd.Series(scale(english_bigram_counts, linf)).sort_values(ascending=False).plot()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAFb9JREFUeJzt3Xu0nXV95/H355yTxIQQggQUIRBGsQNVR/SUVu20tFoHnRGWq4iwxoUdnTLq0NY14hpnOctS2o5abHXqMK2Mg65qR7RM7WQpHZw64BWEE9FwMxq5SADlloSEJJzknO/8sZ+EzeEkZ5/k7LOTZ96vtc7az+W3n983+/LJb//25UlVIUlql6FBFyBJmnuGuyS1kOEuSS1kuEtSCxnuktRChrsktZDhLkktZLhLUgsZ7pLUQiOD6njFihW1atWqQXUvSYekNWvWPFJVR8/UbmDhvmrVKsbGxgbVvSQdkpLc20s7p2UkqYUMd0lqIcNdklrIcJekFjLcJamFZgz3JFcmeSjJbXvZnyR/nmR9krVJXjb3ZUqSZqOXkfungTP3sf91wMnN34XAXxx4WZKkAzFjuFfV14HH9tHkbOCvquNGYHmSY2c67qNbx3uvUpI0K3Mx534ccF/X+oZm2zMkuTDJWJKxhx7fNgddS5KmMxfhnmm2TXvW7aq6oqpGq2p0ZHhgX46VpNabi3DfAKzsWj8eeGAOjitJ2k9zEe6rgQuaT838ErC5qh6cg+NKkvbTjHMjST4HnAGsSLIB+H1gAUBV/SVwDfB6YD2wDfhX/SpWktSbGcO9qs6fYX8B/3bOKpIkHTC/oSpJLWS4S1ILGe6S1EKGuyS1kOEuSS1kuEtSCxnuktRChrsktZDhLkktZLhLUgsZ7pLUQoa7JLXQwMK9pj+fhyRpDjhyl6QWMtwlqYUMd0lqIcNdklrIcJekFjLcJamFDHdJaiHDXZJayHCXpBYy3CWphQx3SWohw12SWshwl6QWMtwlqYUMd0lqIcNdklrIcJekFuop3JOcmWRdkvVJ3jfN/hOSXJfkliRrk7x+7kuVJPVqxnBPMgxcDrwOOBU4P8mpU5r9R+ALVXUacB7wX+e6UElS73oZuZ8OrK+qu6pqHLgKOHtKmwKWNctHAA/MXYmSpNka6aHNccB9XesbgF+c0uYS4CtJfgc4DHjNnFQnSdovvYzcM822mrJ+PvDpqjoeeD3wmSTPOHaSC5OMJRmbmJiYfbWSpJ70Eu4bgJVd68fzzGmXtwNfAKiqG4BnASumHqiqrqiq0aoaHR4e3r+KJUkz6iXcbwZOTnJSkoV03jBdPaXNT4BXAyQ5hU64PzyXhUqSejdjuFfVLuAi4FrgTjqfirk9yaVJzmqavQf47STfBz4H/FZVTZ26kSTNkwwqg5et/Ll6/L51A+lbkg5VSdZU1ehM7fyGqiS1kOEuSS1kuEtSCxnuktRChrsktZDhLkktZLhLUgsZ7pLUQoa7JLWQ4S5JLWS4S1ILGe6S1EKGuyS1kOEuSS1kuEtSCxnuktRChrsktZDhLkktZLhLUgsZ7pLUQoa7JLWQ4S5JLWS4S1ILGe6S1EKGuyS1kOEuSS1kuEtSCxnuktRChrsktZDhLkktZLhLUgv1FO5JzkyyLsn6JO/bS5tzk9yR5PYk/2Nuy5QkzcbITA2SDAOXA78BbABuTrK6qu7oanMy8B+AV1XVxiTH9KtgSdLMehm5nw6sr6q7qmocuAo4e0qb3wYur6qNAFX10NyWKUmajV7C/Tjgvq71Dc22bi8EXpjkW0luTHLmdAdKcmGSsSRjExMT+1exJGlGvYR7ptlWU9ZHgJOBM4DzgU8mWf6MK1VdUVWjVTU6PDw821olST3qJdw3ACu71o8HHpimzf+qqp1VdTewjk7YS5IGoJdwvxk4OclJSRYC5wGrp7T5O+DXAJKsoDNNc9dcFipJ6t2M4V5Vu4CLgGuBO4EvVNXtSS5NclbT7Frg0SR3ANcB762qR/tVtCRp31I1dfp8fixb+XP1+H3rBtK3JB2qkqypqtGZ2vkNVUlqIcNdklrIcJekFjLcJamFDHdJaiHDXZJayHCXpBYy3CWphQx3SWohw12SWmhg4T6YHz2QpP8/OHKXpBYaXLg7dJekvnHkLkktZLhLUgsZ7pLUQoa7JLWQ4S5JLeTn3CWphRy5S1ILGe6S1EKGuyS1kOEuSS1kuEtSCxnuktRC/nCYJLWQI3dJaqEBfonJobsk9Ysjd0lqIcNdklqop3BPcmaSdUnWJ3nfPtqdk6SSjM5diZKk2Zox3JMMA5cDrwNOBc5Pcuo07Q4Hfhf4zlwXKUmanV5G7qcD66vqrqoaB64Czp6m3R8CfwLsmMP6JEn7oZdwPw64r2t9Q7NtjySnASur6ktzWJskaT/1Eu6ZZtuezzEmGQI+CrxnxgMlFyYZSzI2OTnZe5WSpFnpJdw3ACu71o8HHuhaPxx4EXB9knuAXwJWT/emalVdUVWjVTU6NOQHdSSpX3pJ2JuBk5OclGQhcB6wevfOqtpcVSuqalVVrQJuBM6qqrF9HdSvMElS/8wY7lW1C7gIuBa4E/hCVd2e5NIkZ/W7QEnS7KVqMGPoJce9sLbd/8OB9C1Jh6oka6pqxu8SOfEtSS1kuEtSC/l77pLUQo7cJamFDHdJaqEBnqxDktQvjtwlqYUMd0lqIcNdklrIcJekFjLcJamFDHdJaiHDXZJaaICfc/eT7pLUL/62jCS1kNMyktRChrsktZC/LSNJLeTIXZJaaKDhPqjzt0pS2w043AfZuyS112DDfZCdS1KLDTTcJx26S1JfGO6S1ELOuUtSCxnuktRCTstIUgsZ7pLUQgMO90H2LkntNdifHzDcJakvnJaRpBbqKdyTnJlkXZL1Sd43zf5/l+SOJGuTfDXJib0c13CXpP6YMdyTDAOXA68DTgXOT3LqlGa3AKNV9RLgauBPeuncaJek/uhl5H46sL6q7qqqceAq4OzuBlV1XVVta1ZvBI7vpXNH7pLUH72E+3HAfV3rG5pte/N24O+n25HkwiRjScbALzFJUr/0Eu6ZZtu0sZzkLcAocNl0+6vqiqoarapRgF1+FlKS+mKkhzYbgJVd68cDD0xtlOQ1wPuBX62qJ3vp/MmdE700kyTNUi8j95uBk5OclGQhcB6wurtBktOATwBnVdVDvXa+3XCXpL6YMdyrahdwEXAtcCfwhaq6PcmlSc5qml0GLAX+Jsn3kqzey+GeZofhLkl90cu0DFV1DXDNlG0f6Fp+zf50/sSThrsk9cNAv6H6xJO7Btm9JLXWQMN9i+EuSX0x0HDfusNwl6R+GOzI3XCXpL4YWLgPJWx9cuegupekVhtguMNW59wlqS8GFu7DQ3FaRpL6ZKDTMoa7JPXHQEfuTstIUn8MdOT++HbfUJWkfhhYuC8YDj/dvGNQ3UtSqw0u3EeG2PLkLjY7epekOTewcF843On6/o3bB1WCJLXWAKdlmnDfZLhL0lwb3Mh9pNP13Y9sHVQJktRaAwv3kaHwgmOWcv26hwdVgiS11kB/OOy1pz6H79z9GJu3+aaqJM2lgYb7q085honJ4qs/+Nkgy5Ck1hlouJ+28kj+0dGHccXX76KqBlmKJLXKQMN9aCi87VUn8YOfbmHths2DLEWSWmWg4Q7whn/yPJYuGuGKb9w16FIkqTUGHu5HLF7AW195Il9e+yBr7n1s0OVIUisMPNwB3vGrz+c5yxbx3qvXsn18YtDlSNIh76AI98OftYA/O/el3P3IE/ybz67hCX8KWJIOyEER7gCvesEKPvjGF/PNHz3MBVfexENb/MVISdpfB024A5x3+gl8/PyXcccDj/OGj3+Tm+52Dl6S9sdBFe4A//wlx/K373olC0eGOPcTN/Dvr17L3Y88MeiyJOmQctCFO8Apxy7jf//er/C2V53EF2+5n1f/6fW887Nr+PaPH2Fi0i87SdJMMqhvho6OjtbY2NiM7R7asoNPfesePnvjvWzZsYtjDl/E6198LOeOruSUYw8nyTxUK0kHhyRrqmp0xnYHe7jvtn18gn+482d8ae0DXLfuYcZ3TXLiUUsYPfHZ/MKqIznl2GW88DmHs3jhcB+rlqTBmtNwT3Im8J+BYeCTVfWhKfsXAX8FvBx4FHhzVd2zr2PONty7bXxinC/f+iBf++HD3HT3Y3tO1ZfAyiOXcOJRSzjh2Z2/Y5cv5vgjF/O8IxZz9OGLGB5ypC/p0DVn4Z5kGPgh8BvABuBm4PyquqOrzbuAl1TVO5KcB7yxqt68r+MeSLh3m5ws7tu4jTsf3MKdDz7Ojx/eyk8e28a9j257xvlZh4fCiqULefZhi1i+eAHLlyxg+ZKFncvFCzhyyUKO2L182EKWL17AEUsWsGjEVwOSDg69hvtID8c6HVhfVXc1B74KOBu4o6vN2cAlzfLVwH9JkpqHOZ+hoXDiUYdx4lGHceaLnvu0fY/v2MkDm7bz4KYd3L9pOz/dvIOfPb6Djdt2smnbOD96aCubto2zadtOdu3jjdqFI0MsXjDMkoXDLF4wzLN2L3etLxwZYsHwEAuH07ncvT4yxIJmW2f/EAtGnr4+MhyGEhIIYSiQ7L7cvRwCT7Xb3XaIPfvS7Juu7dCUfU8dv7kkZIg913tGP3n6dSQd3HoJ9+OA+7rWNwC/uLc2VbUryWbgKOCRuShyfy171gKWPXcB//i5y/bZrqp4YnyCjU+Ms3n7TjZt28nGbeNs2r6TTU+Ms3V8FzvGJ9g2PsH2nRPs2NlZ3vrkLh7e8iTbd06wc9ck4xPFzonJrr/2frJn6n8iBIam3fbUfyqdGbGu/7To7Nuv/g+o9vn/z+lAujyg6x7ALXWo3Tf7fc0Dun0P4Lp9fhz2Eu7TVTA1tXppQ5ILgQsBTjjhhB66nh9JWLpohKWLRlg5h8etKnZ2Bf54E/g7d01Zn5ikCiarmKyCgsmCojqXVXv277mke/t0255++dSxnt52crKz3N3P7rZ7rtvVz7Q1QVfdT+8Hnl5L5wVSMTnZOdb+3a4HcJ/s/1X3u9/9/Xc2Vx7EVff7/AqDuH0PpN8DmVw4oKHbATyWvtpj217CfQM8LfOOBx7YS5sNSUaAI4BnfL20qq4AroDOnHuPNR6ykrBwJHtOBi5JB+ov3tJbu15S52bg5CQnJVkInAesntJmNfDWZvkc4P/Ox3y7JGl6M47cmzn0i4Br6XwU8sqquj3JpcBYVa0G/jvwmSTr6YzYz+tn0ZKkfetlWoaquga4Zsq2D3Qt7wDeNLelSZL2l5PBktRChrsktZDhLkktZLhLUgsZ7pLUQgP7yd8kW4B1A+l831Yw4J9N2Avrmp2DtS44eGuzrtkZVF0nVtXRMzXq6aOQfbKul182m29Jxqyrd9Y1ewdrbdY1OwdrXbs5LSNJLWS4S1ILDTLcrxhg3/tiXbNjXbN3sNZmXbNzsNYFDPANVUlS/zgtI0kt1LdwT7K8ObcqSc5I8qV+9TVXkrw7yZKu9TcluTPJdYOsS4eOJFsHXcP+SrIoyT8k+V6SNye5J8mKQdd1qEny7UHXAP0duS8H3tXH4/fDu4ElXetvB95VVb82oHqk+XQasKCqXlpVnx90MYeqqnrloGuA/ob7h4DnJ/kecBmwNMnVSX6Q5K/TnEAwycuTfC3JmiTXJjm2jzXtkeSwJF9O8v0ktyX5feB5wHVJrkvyAeCXgb9Mclmfa/nw7lc5zfolSd6T5L1Jbk6yNskfNPtWJbmtq+3FSS7pQ02rmvvqk83t89dJXpPkW0l+lOT0JEuTfCrJrU2Nv9lcd2vXcc5J8um5rq/r+Bc0fX8/yWeSvCHJd5Lc0oxCn9O0u6YZkX4vyeYkb53p2AdY1xlJrt/LY/6eJP8pyQ1JxpK8rHns/zjJO/pUz4z3J/BZ4KXNbfT85qrvTXJT8/eCPtX2/iTrmvvrc81j+vokH0vy7abe05u2lyS5uOu6tyVZ1ae6/jDJ73Wt/3GSySRnNetfTHJls/z2JH/ULB8cr94658Kc+z9gFXBbs3wGsJnOKfqGgBvoBOcC4NvA0U27N9M5GUjf6uqq7zeB/9a1fgRwD7Cia9v1wOg81HIa8LWu9TuAC+i8G5/mNvsS8Cvdt2vT9mLgkj7df7uAFzf9rwGubOo5G/g74MPAx7quc2RzubVr2znAp/t0u/08nW85r2jWnw0cyVMfFPjXwJ9Ouc7LgbXAEX2qaWtzOe1jvtl3D/DOZvmjTT2HA0cDD/Wprl7uzzOAL3Vd5x7g/c3yBd375rCulwO30nnFvAxY3zymr9/9/Gwe97uz5BLg4q7r3was6uNt9t1meQj4MfAvgcuabTcBNzbLnwL+2dTH/yD/5vMbqjdV1QaAZjS/CtgEvAj4P82gZhh4cJ7quRX4SJIP03nQfiN9Phv53lTVLUmOSfI8Ok/wjcBLgNcCtzTNlgInAz+Zx9LurqpbAZLcDny1qirJrXTuv5V0nXWrqjbOY20Avw5cXVWPNP0/luTFwOebV4ALgbt3N27mjz8DnFtVm+ehvuke899s9u0+VeWtwNKq2gJsSbIjyfKq2tSHema6P6fzua7Lj/ahpn8KfLGqtjV1dZ/C83MAVfX1JMuSLO9D/3tVVfckeTTJacBz6DwXrwd+J8mpdAZhRzaPtVcAvzuf9c1kPsP9ya7liabvALdX1SvmsQ4AquqHSV4OvB74YJKvzHcNU1xNZ5T7XOAqOk+2D1bVJ7obJdk9EtztWX2sqfs+m+xan6Rz/00y/Xncu7f1s75M0//HgT+rqtVJzqAz0iPJMJ3b9dKquo35Md1jfuq+SZ55O/freTnT/Tmd2svyXNrbcaduLzqvPubr8Q/wSeC36Dwvr6yq+5McCZwJfJ3Oq8Vz6YzWt/S5llnp55z7FjovNfdlHXB0klcAJFmQ5Of7WNMezSh5W1V9FvgI8DJ6q7lfrqIzCj6HTtBfC7wtyVKAJMclOQb4GXBMkqOSLAL+xYDqBfgKcNHuleZBD/CzJKckGQLe2Mf+vwqcm+Sopv9n05leu7/Z3z2v/iFgbVVd1cd62ujNXZc39OH4XwfemGRxksOBN0ztO8kvA5ubV1v30HmukuRlwEl9qKnbF+kE+S/QeU5C53Z4d1P7N+hMI32jz3XMWt9G7lX1aPNmzW3AdjqhNLXNeJJzgD9PckRTz8eA2/tVV5cXA5clmQR2Au+k89Lq75M8WPP8CZnqnHT8cOD+qnoQeDDJKcANzXTRVuAtVfVQOicn/w6dKYcfzGedU/wRcHlzH08AfwD8LfA+Ou8R3EdnTnRpPzpvbrM/Br6WZILOy+ZLgL9Jcj9wI089+S8Gbm+mRwA+UJ2Tu2vfFiX5Dp2B4PlzffCq+m6SzwPfA+7l6SG5MZ2PFS4D3tZs+5/ABc39eDPww7muaUp94+l8FHpTVU00m78BvLaq1ie5l87ovbvug+KboX5DVdJBI51Pfm2l84r04qoaG3A9Q8B3gTdV1Y96aH8UnTdhT+x7cTPwG6qSNI3mTdP1dN547iXYn0dnyuYj/a6tF47cJamFHLlLUgsZ7pLUQoa7JLWQ4S5JLWS4S1ILGe6S1EL/D2IHtCWSCFZuAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pd.Series(scale(english_trigram_counts, linf)).sort_values(ascending=False).plot()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RangeIndex(start=0, stop=26, step=1)" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ug = pd.Series(scale(english_counts, linf)).sort_values(ascending=False).reset_index()\n", "ug.index" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RangeIndex(start=0, stop=676, step=1)" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bg = pd.Series(scale(english_bigram_counts, linf)).sort_values(ascending=False).reset_index()\n", "bg.index" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RangeIndex(start=0, stop=17576, step=1)" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tg = pd.Series(scale(english_trigram_counts, linf)).sort_values(ascending=False).reset_index()\n", "tg.index" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RangeIndex(start=0, stop=17576, step=26)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ugi = pd.RangeIndex(start=0, stop=26**3, step=26**2)\n", "bgi = pd.RangeIndex(start=0, stop=26**3, step=26)\n", "tgi = pd.RangeIndex(start=0, stop=26**3, step=1)\n", "bgi" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
index0
0the1.000000
1ing0.532595
2and0.529235
3ion0.486067
4tio0.398344
\n", "
" ], "text/plain": [ " index 0\n", "0 the 1.000000\n", "1 ing 0.532595\n", "2 and 0.529235\n", "3 ion 0.486067\n", "4 tio 0.398344" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ug.index = ugi\n", "bg.index = bgi\n", "tg.head()" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
index0index0index0
0e1.0in1.0the1.000000
1e1.0in1.0ing0.532595
2e1.0in1.0and0.529235
3e1.0in1.0ion0.486067
4e1.0in1.0tio0.398344
\n", "
" ], "text/plain": [ " index 0 index 0 index 0\n", "0 e 1.0 in 1.0 the 1.000000\n", "1 e 1.0 in 1.0 ing 0.532595\n", "2 e 1.0 in 1.0 and 0.529235\n", "3 e 1.0 in 1.0 ion 0.486067\n", "4 e 1.0 in 1.0 tio 0.398344" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ubtg = pd.concat([ug, bg, tg], axis=1)\n", "ubtg.fillna(method='pad', inplace=True)\n", "ubtg.head()" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ugunigramsbgbigramstgtrigrams
0e1.0in1.0the1.000000
1e1.0in1.0ing0.532595
2e1.0in1.0and0.529235
3e1.0in1.0ion0.486067
4e1.0in1.0tio0.398344
\n", "
" ], "text/plain": [ " ug unigrams bg bigrams tg trigrams\n", "0 e 1.0 in 1.0 the 1.000000\n", "1 e 1.0 in 1.0 ing 0.532595\n", "2 e 1.0 in 1.0 and 0.529235\n", "3 e 1.0 in 1.0 ion 0.486067\n", "4 e 1.0 in 1.0 tio 0.398344" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ubtg.columns = ['ug', 'unigrams', 'bg', 'bigrams', 'tg', 'trigrams']\n", "ubtg.head()" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ubtg[['unigrams', 'bigrams', 'trigrams']].plot(figsize=(8, 6), ylim=(0, 1.1))\n", "plt.savefig('blog-images/ubtgram-relative-counts.png')" ] }, { "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.3" } }, "nbformat": 4, "nbformat_minor": 2 }