{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/anaconda/lib/python3.6/site-packages/h5py/__init__.py:34: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n", " from ._conv import register_converters as _register_converters\n", "Using TensorFlow backend.\n" ] } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from keras.preprocessing.text import Tokenizer\n", "from keras.preprocessing.sequence import pad_sequences\n", "from keras.models import Sequential\n", "from keras.layers import Dense, Embedding, LSTM, SpatialDropout1D\n", "from sklearn.model_selection import train_test_split\n", "from keras.callbacks import EarlyStopping\n", "import re\n", "from nltk.corpus import stopwords" ] }, { "attachments": { "rnn1.jpg": { "image/jpeg": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "![rnn1.jpg](attachment:rnn1.jpg)" ] }, { "attachments": { "rnn2.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "![rnn2.png](attachment:rnn2.png)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df = pd.read_csv('/Users/muzalevskiy/desktop/lang_data.csv')" ] }, { "cell_type": "code", "execution_count": 3, "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", " \n", " \n", "
textlanguage
0Ship shape and Bristol fashionEnglish
1Know the ropesEnglish
2Graveyard shiftEnglish
3Milk of human kindnessEnglish
4Touch with a barge-pole - Wouldn'tEnglish
5Sy kan altyd my battery natpiepie.Afrikaans
6When the shit hits the fanEnglish
7NaNAfrikaans
8Egg onEnglish
9Drag raceEnglish
\n", "
" ], "text/plain": [ " text language\n", "0 Ship shape and Bristol fashion English\n", "1 Know the ropes English\n", "2 Graveyard shift English\n", "3 Milk of human kindness English\n", "4 Touch with a barge-pole - Wouldn't English\n", "5 Sy kan altyd my battery natpiepie. Afrikaans\n", "6 When the shit hits the fan English\n", "7 NaN Afrikaans\n", "8 Egg on English\n", "9 Drag race English" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head(10)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "text True\n", "language False\n", "dtype: bool" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.isnull().any()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df = df[df.text.isnull()==False]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 2761 entries, 0 to 2838\n", "Data columns (total 2 columns):\n", "text 2761 non-null object\n", "language 2761 non-null object\n", "dtypes: object(2)\n", "memory usage: 64.7+ KB\n" ] } ], "source": [ "df.info()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "English 2055\n", "Afrikaans 639\n", "Nederlands 67\n", "Name: language, dtype: int64" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.language.value_counts()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def print_plot(index):\n", " example = df[df.index == index][['language', 'text']].values[0]\n", " if len(example) > 0:\n", " print(example[0])\n", " print('text:', example[1])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "English\n", "text: As queer as a nine bob note\n" ] } ], "source": [ "print_plot(10)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Afrikaans\n", "text: Hy is ‘n regte cheapskate.\n" ] } ], "source": [ "print_plot(100)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df = df.reset_index(drop=True)\n", "REPLACE_BY_SPACE_RE = re.compile('[/(){}\\[\\]\\|@,;]')\n", "BAD_SYMBOLS_RE = re.compile('[^0-9a-z #+_]')\n", "STOPWORDS = set(stopwords.words('english'))\n", "\n", "def clean_text(text):\n", " \"\"\"\n", " text: a string\n", " \n", " return: modified initial string\n", " \"\"\"\n", " text = text.lower() \n", " text = REPLACE_BY_SPACE_RE.sub(' ', text) \n", " text = BAD_SYMBOLS_RE.sub('', text) \n", " text = text.replace('x', '')\n", " text = ' '.join(word for word in text.split() if word not in STOPWORDS) # remove stopwors from text\n", " return text\n", "\n", "df['text'] = df.text.apply(clean_text)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 4250 unique tokens.\n" ] } ], "source": [ "MAX_NB_WORDS = 50000\n", "MAX_SEQUENCE_LENGTH = 250\n", "EMBEDDING_DIM = 100\n", "\n", "tokenizer = Tokenizer(num_words=MAX_NB_WORDS, filters='!\"#$%&()*+,-./:;<=>?@[\\]^_`{|}~', lower=True)\n", "tokenizer.fit_on_texts(df.text.values)\n", "word_index = tokenizer.word_index\n", "print('Found %s unique tokens.' % len(word_index))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shape of data tensor: (2761, 250)\n" ] } ], "source": [ "X = tokenizer.texts_to_sequences(df.text.values)\n", "X = pad_sequences(X, maxlen=MAX_SEQUENCE_LENGTH)\n", "print('Shape of data tensor:', X.shape)\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shape of label tensor: (2761, 3)\n" ] } ], "source": [ "Y = pd.get_dummies(df.language).values\n", "print('Shape of label tensor:', Y.shape)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(2484, 250) (2484, 3)\n", "(277, 250) (277, 3)\n" ] } ], "source": [ "X_train, X_test, Y_train, Y_test = train_test_split(X,Y, test_size = 0.10, random_state = 42)\n", "print(X_train.shape,Y_train.shape)\n", "print(X_test.shape,Y_test.shape)" ] }, { "attachments": { "lstm1.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "![lstm1.png](attachment:lstm1.png)" ] }, { "attachments": { "lstm2.png": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoIAAAKdCAMAAACArvhpAAACc1BMVEVm/2ZHR0dnZ2ekpKRsjr+CgoLt7e3///+ZzP8AAAD39/fExMTY2NgvLy+dnZ1W2FY0gjROxE4pZyli9mJe7F5CpEKcs9TP2uocRxyJtuR1nMM5PD9Zd5UTLxN2ncS1x98+UmeUxfaOvewrOUeXl5dig6QPERLi4uLOzs4FBQVOaIKEhIRpjK87Slo0QE0bHiCVx/gxO0Z5ockcISZhY2UzNjkVGBqCrdgcJi/u7u5wkcGMjIxukMBxksHa4+9XV1fh6PMLCwslLDNhYWErKyvMzMy3t7ccRhzJycm+vr42NjYDAwOZsdP5+fkwMDB2dnZeXl7X19exw92Ojo73+fyhoaGBgYG9vb1AQEAWFhYvdS/CwsJGRkasrKwgICBLS0vj4+Pb29u0tLQODg4HBwdqamp6enqPj49fX1+8vLxsbGwjWCPHx8emu9nM2OmWlpZ+fn7d3d3BwcGfn5/s8Pevr68kJCTp6elUVFQdHR1DQ0Pr6+v9/f2amppyk8JjY2NOTk7Az+TT09NycnJ4l8WJiYmbm5tKukqxsbFbW1sUFBQ0NDTR0dG6urp1lcODoMmTk5Pn7fWqqqrn5+dRUVFzc3OtwNz19fXV1dWHh4cnJyc8PDxlZWWnp6eLps3g4OD7+/vz8/NGsEalutiQkJDNzc3J1egZGRmQq886Ojr+/v5vb2/l5eV3d3e8zOLF0ubV3u2VrtHx8fGgttZ9m8dJSUnY4e6Eocr4+fyjo6M1RliAnsi6y+Ff7V/v7+89mT20xd64yeCqvdqDg4MfHx/v8/gyOD+ItuNwlbrDw8Pf5vGHo8tceplV1VVT0FNqjbBb5Fv0pCCEAAA3g0lEQVR42uyd228TxxrAsd3terJO3iEoQCAudrjfQhWpkYuJIFZJEQIlOpCU2qGAkAigBBIfBCqigqSRIhpkSFoBElVEQ1+QeCgPfTlHqs5/deaya6/X68S7OzM7ib9PirWxvbvfjH/+bnPxJh0EJFTZBF0AAgiCAIINSDGCUGui6qlSFKFoKTFYgl4EEY8gIdDJYAw/oxmYQuhFEPEIxlCkiK2eVv0c/hcQBJGFICaN4ZZoRZhH6oYRGicPMQwjNomaTh+Yh2Z4YrNJ4IVuBgmMoIGhMspHxCVXI0ilj/5jwskONAysAb0MwiEd0RCzbDgo1Mh/2B5WHHGMIUkfNGwm8VMaeZEYzGrnDQLiF0GGU7RkUL+aaKUutoJg5UGzTKXGMhZwwyCcEGSW0GDxYDHiQFDTKw8se6YIYm7BCILwQBA72Bh9NOpYQTuCxC0zR0yjQggFQXhYQY2Qh92rURsL4heqEdSYJWQvngNPDMIFQRoJIgaeVaQ2EUSkIlNtBU1HjDmMMRZBQALHgjTA0ywaqWVjqYdWgyB9KtEaKWqsmAiuGIRXOgICAgiCAIIhy6u2I0ePpVDq2NEjba9Ag5A04KvgukKwrT25d+uWzQfiBzZv2bo32d4GGoSgAW8F1xGCu/bv2xO3y559+3eBBpI14K/gukFwd/vBLXGnbDnYvhs0kKiBCAXXC4JtaGvcTbaiNtAAta3nD6kxBLU6pb1i1Dn0oYmpRHcfPhR3l0OHu6V0L2ggSsFGECRjw64vkPqzFAS7v94cryebv5bR/6CBMAXXBYJth+s3DjfvsHg/BBqIU3CTC1dsAK4YIeDFUPQ7MjYXuRxBExEyF5pNkyGsGagyI1UzD9nTlEyNDSoXyyfSp8i57NKNB7noUHw1OYREx+OggUAFaxC0Jua7IGjOx3dDULOmCLIDROdNlycroKoZ/YZXBNu3xleXre2C+xc0EKigE8HKZKwygiXqiPG/lKtoqYxgxRHTd9B5Wxqhl6xbKkboLC56HfNEo7IGylOp6WB8LTkotjYGGohUcFONEbSmpNYiaLAXXBCkJs8ox4LsHdSlWyiTp0wL6XUC4f4ta7Zuy36h/QsaiFSwFkFrYn4NgiyKc0eQedvKsiVrhR1F0DrRRNCxKcOaYe6++NqyT2Q0DhoIVZCTFWTOGL+jjCCdJxhzWEE/2XL7ngZat0dkJAQaCFVw1VgwxiJAunLEHgtipujCJNPhmikufVsZQZPd6liQrjjxFgu+SsYbkaS4OSOggVgFazLiysT8cnJL7FvrDTOxNazEliKITKDKZ9mtoOWIHSd6y4jb9jbUur3ivBBoIFbB+nVBtnPWfcIYfoogSMp7hhn4aRqbp2/ZtJiZZ1TSEfLadyymtE60VtR5QfBIJdnvOd6BH7t2drql/EeE9S9o4EHB9PYd8Xjnzi73uswRv6MjFV/rR3yfyORoJdXasT1tPrikW0eF9S9o4EHBjuM95kPDCiqP4DHbsA/58jMzUDsAdExY/24sDb7atm3bVz6fa0BBagCpKWxYQeURTB2IV3kh6oPSCDk+hAMpYQC4aoAtUbga9BxHKO1Dg22fffbZNp/PNaIgxq+eH66joPLzBZG9Dek09UEdOzs7nNEQkqoBJtD5JZCrQefOjtqQC4WFoE3Bnp09xA/j/iEd1IFQ11oKKo+g3QJg9jqID0qna4yQJBtkadBzfPvOcKygpQGjUT0ruGN7F/HDXWliKDo/9fR86lzvVtAeB+HvfRpbP9xK+hdCJGZqEP/nn04ngpI1cEFQhVgQB6ufPrGPpmP7Dkyh3VYEjAXDT7Zop6O0GYalu0LIRy0NKAkd8XA1qMlKVMiIiVY0H6aRCqbQbisCZsThl5zoN4sEGG4IyqnKWRq4IRiCBmn16oLk0zHzYdxDDgQD1gXDkurCO81G3RyxtLEJqypcg6BsDWoIVGR0pJwk4Y/I4YgbHR1RTKqGH03w0l016YisEdoy+jUIStbApfKhxhgxq1V0dZHc2JGONDhGrJzYJmFYUVBtUUbWPJVyHFaDoGQNXAZIlJgpY0aCtqJMh9eZMgp6YpepaDWlafmz9ZwIStaAVKYRqhqF2CjzBRUUmLPcXLOmFRRYudFca0eUjAZh/VozraBTUWAVb3OtI1YyI4G9DJpqNwUVBXZ0aa49ZbSY7TdrDOeP15CX2Lq5mMt6TI3u20Fn9rsfmNcrRb3NIYR9rZppZy2DrFei2x5gSgyyN0IVaBpZDkcYjJHdEhzL0mN065hiJEb/XA7K10v0eVvQDrv7Nc/+gsWIoScuJhhspSjdqsi2/DfRarD3UKJK0ZjDQJL/KZiGRaj9wHY9LeYx3IU9Tptll1WjbNhiZAGmUfWUjUOGacy2KLgUjSQIlwwxcmrNge16hucfBoOdnptkr+myySMWi3FmOEM+4owZQg5PbDON+LD2wHY9RqNHQw/73Su/4/7PvUF33KcQMXOIDHcEYzShCIpgtQ9vVMyftMgV8sNTk8upELoYfndkdUmmcqlMPlNAvn93hMZ67ICsSXe3goS0oAhWRZgeZbBAt2VIhfcDi7ml/lBNzeyyqvWz19NJ8tkUBho+ox6ClMB6CBLygiPodZ9BmzzK41ZmQqTgDMpkY2Hd/JuVFHqqKysLKUzgkB4UQUagXicdIeTVpiNlN95QOhLECur6KHbGuQcnQ+vmP/FXILl8M5R730niz3hcVQDPD43kEMq2+EeQQWQSqNcWZcoWzKUoY53dUFHGXyxYNgSLKH/t5dTHJyF19KU8jQRy8u/8/QD1AD8pyd/ZwZnRS69zaMZLjOqaERcjmi0nqfLDlap1jGxd5LCPDEFyulmRdh5UrucnI7bJi0zmNDYIA2fuh5MSFFAqc2/+fAhRaC6fz6Fkv4IAXhodHjyr678UUjf0IAhSo1XZkdcaoLPVaqxxuZi1fb7hzKfXHqDzUxd0WIMcLTf1Lyxf+CWMxA8ND4djglsuR/Io/6Nq/H1xYWSIfSMv5Sb0QAjWsU7F+tbG8GXOtKDRfK+VHY6hqPzhgenCfH/ycigf9rPsXKbwt1oA9vdlxsqR+Sk9GIJkjNiNs/rEnEv40NnrGPFqcldbfijbMV0v4C/BuzA+7dJ/+/WHOZX4+7w3O3Czxffpmxq0T/U5K2o+iiteZ8qsJT/NzsodJpg7hx8ePAjhAx+7ju9+Tx0A/3UCnbgd5ALr7FfZV4kNR6e6i7JvutQrv50jJYV6vWXXQLY3YLdvGAR1/fdfc2OSo/TLM9/LbmX2mTo9fnIs0xc8AtpACOr6+/HhhTmpd3wyfEtuEwevKtPb54dGLvAYo95QCGLZ1fpOarHu8ZLU5t2euatGP9MiNJ9LbTQEdX0iMvJSYsniRFRm4wbuKNHHZhEaEKwnp04UVs7Ko+KtvJZpKmTClSI0ILhKL11J9p2W5ZLy0mqSvxduhd61/X2Z63ynh2xMBHX99Xx2SdJsqollWRNHp+dD7tWARejmQpAELNOTvW9k3Kh7Wk6DzkXC7dDAReimQ1DXjW8zz2WM4347JqM1iVyYcxN4FKGbEEFdfzWYf3pb+F1ez8rwkA9fhtePJ6/zKEI3JYL42/t2ceg30Tf5MXNNeEPuL4XWh7yK0E2KIJZnQ4s/tAi+xdR7wY14n78RTu9xLEI3L4I4kH6aHxRbz9AuCm7C0yvh5HQ8i9DNjKCuX36e+dYQeYO+FaH6/3YmhE7jXYRubgR1/U3v5LRAh9JyRuTGGh+W56R3GP8idLMjiCW2lJ1/LeriuwsCU+9fVyR3lZAiNCCI5XRf8soXonzlyF1Raj+Z/EZu7CymCA0IsgRvpXDilJhLj38UpPO/Fyck9pC4IjQgaMrfL0ciYj7Se4/EaPxI4hoVkUVoQLAi59+1ikge3mSFbHJwevlLaR0zNHLhC8kfRnMiqOtzC8Pj/KvJJ3MiCj+zf0mKUUQXoQHBavlxLPfr77wv+tck/yBqvE9Kf0goQgOCTil2T43yXgF35SFvLU9lJHhGOUVoQNBF2mZnOYdvC4OcVRwSv5e0rCI0IOje/Q+Xtbs88+1FviuMHo8K7gCJRWhAsI7sjqKxn/ld7gbiOaXlBXohtPFSi9CAYF355cLyAr9a2J1FjmtIR0VuGSK7CA0Irib3zwxw2xdpcIGbWjeHxDVZfhEaEFxdnnyc6v6cz6Ue8prb9ypzSlRzwyhCA4JrmoUHqetcVggVJzkVOPoE7Wp+dnA4jCI0ILi2vB+fucdjYp6R41LjOD8rpJWhFaEBwUbkj5tZHvsi/ZTlsIL582UBO0KEWYQGBBuUicjI4w9BL/Kcw+4vD55zb1u4RWhAsGG5cbWwkgh4jY+Bw7iJxT/4NosUoXe1KNfbgKB7Khp4X6S7IwFXL38zyXf8WoEiNCDojYD57FIgiG4Xgv0UxQrPjQvVKEIDgl7l2fRkb8n/6bvOBHF6c1MfuDVElSI0IOhdjKdB9kVaCTLRr5XbLiTqFKEBQT9yazD/9H9+T754wfd9r3D6tVelitCAoD8pnVuc9vlDC++n/P5Cw40kl1UFl0ZnVCpCA4K+5behxbe+FvJey/gc8HvHYSKtekVoQDBIetuX/NPP9mbzs752b3gZfPq/ikVoQDCQJB4VrvqYizrmJ6b7ORdwb1hFi9CAYED58Hjkovcl8NPd3u8U+SGQosoWoQHB4PLXu+xNj5711bJnbOeDbJ+uchEaEOQh1+7NXPnO0xlzeY+rP24FGFZRuwgNCPKRF9dTDzzNZX474O0G9/7jVzXVi9CAIC/58uXU/9k7t540tjaOFwglI7AdVBJvvGvcNP0EhgtiilY0Kk3jaWtbPEtfE7WNVqVGU2O3x8RYDfUUdUdjWuuNiRf7pjftzb7Yb96P9K61ZkAFBmaGAZnh/4+RmVmHGfDns57nmTWL62UF9c2Kvj3zt0Z1V6WDJDQQ1FDvGpUsqtq5JL/u+9VuNRekiyQ0ENRU9dvn45/lendd8o3myKXya9FLEhoIaqz1Qe5AZuDQVy030bflV/7PoJskNBDUXJGf5wvy5pV6v8rrMfpKYTyrqyQ0EMyFPslcF2le3kKpg8q+zY4mobv1/hECwWzVt3D+U0Yq+KuclTnqX0Xln1h/SWggmCt5Dpoyr4vUWy1jyPbLn9ylxyQ0EMydPo93bWd6BH65K+NXkF3KTiDqMwkNBHOqRy2NGRYWXMq0RFH36ntZp9JtEhoI5ljL17920y7rNpLhmbhGWYtj6jgJDQRzroanjy/SzUloPE3X+qeMBRj0nYQGgnlQaGh1ukOy9Et/GofRM5DRV6z31Q7WGe4zA4Ia63jTv2+RHETPpWf/z26m79gASWggmC+97JnySiys9URyNuqwKX2oYoQkNBDMn0aDtYup10Vakbj90duUJrNolCQ0EMynji77fame3zheSz3eLuxKdmWcJDQQzK9KTvc6UyzKsV4bTlH5k+Q0BiMloYFg3rXVuTccTTo4k7xQwvfq1M+HGiwJDQTvQd0r/a2JuZb2nmQPMeUS/YZLQgPBe1HvTm0w4RtifRcJdQ6dye2MmIQGgvekE+/U3XWRShKeO7maScpYGzMJDQTvT5Z9/+atdZE8A3eCZXOCVbz3LyYEgkZUwFc9dHNn5PDV+5uivqk7q3bpbDkOIKgfOS5urYs0fh0//m3v1oofLAn9sLg+GCCYP10tvTLFcJuOf6fIzs1TJUZPQgPBAlDbV+cY+zaRE7/41FOgqyZWZvgkNBAsCG1Mr47T3HRdk5CqWRMyL0WRhAaCBaKPb5rm64jRm6I+3zhblb9IktBAsGD08MnM6z7b0ILN1lD7exEloYFgIem3xpa57VZb51gxJaGBYGGpfqFr9XqvqJLQQDCH4vIrIAglIfhAlUrVNQOCkFYIPgCCQBAIAkEgCAQhIAgEgSAQhIAgEASCQBACgkAQCAJBCAgCQSAIBCEgCASBIBCEcoKgOzbZquy/z0qBIBC8HyvIl5XDCgLBe0SwvIzHQAwE7xPB0iq3CGJFpdvNVZVWVHKVFfQIx16BIJRjBF1V1AmsqHQ9KH32h/sBT7grL3OTA2R8lj1GA0FIPYJuZupKSTTi5og95MkuNYn0lVhIFxCEco2gYOlchDi6xTxDMiKTH9E2AkEotwgKrFH86PAr2D0X53KJyRogCOUaQWGspcZPoI96hmRsdsmORIAglB2CN9EIo455hjzPfEMF+RogCKlGkI9HI7ddQWGDR1IGyjmCoqFz0UyMSF/MAnKc/NsmQBBSHxFjmgIQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBYE4RdMfv+rLbwfHDsfvAseRgQquk28Tu5HwhEIRkIFheRtFJmn91525w8tSY5JvFqW7bAUFIBoLinJhEG3ZnvzTpIaZkkyf2AwQhpQi6hJlXbHIqMW0VlfQOnDA93132J1dZStByV/7FcXxs9kJp1Z/C7P3SKuEoHcv5VPNYgSAkA0FhejQbiXk+PheBDb38f3hxqgInTtpixo8MwqzYxbkF20e7cKeavAAEocwIxlw4QhiNRtiQSxijr4KXyKIRukEAFSrzZeW0uKKSFwhmcLKHSoAgpBzBmAtHoKKmraKSTRRk4YZQRAyfsMHTDZcQN9NiYUqhi47X5RKTCIEglBlBASRGGtskviCbIU2wis9PFaIRYgVFV9DFinlhDn/l/xh8dxI6QBCSj6DoClKCxE1mCAlvguNHLSDLwNANXhyZWTHPx4Zy9wOJp+qAIJQRwdj4ycyaaOZiT8oxxlg0QhEkRQw26hgKQYiYTxS6cFeVAkFIBYLCognMALJopIpnsFGnT7BuLBoRQ18hXGY7LsHusZCE0udKucQCEIQyIig+lRl/Opim+qpoMMzxwi0RFo24eKEKqV311zOhWKgrPOrJcbw71XR+IAhl9gUxTQEIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEggWGYMW/LiAIaYFgfgUEoezU19UUg6nfV/SfBhDMv5p3a2MIDmzj4wCC+daHpf7a+Ija5Bwc/gEEoXxqaGCAsScy6LcEj0YCQBDKn3ZmmgYIf021M2QY5rgZjy3i3Wo5qQGCUF7UNuo/+rDTMvCYO3jK9Z9fcpvscDjIjQeAIJRrXS297Zm02Q49V121mzYv1/g2tBwri3idLcM1QBDKoRwX1yOj5HWiusM21/Td1ve4w2ZduFUhPMwVpVcIBPOjgK/68oht9eySX16C5DQNTry3K0WanRvFZwqBYD50OORfbxYj4oPbBc+3G+7WDAc9I9+BIKSpot4fs32xncmZyJ3CucbE6hHvSoulBghCWqlmZ2zFHt8LdZ0llIdbk9uQALmIvEIgmFP9szLTOnFrv6E9CdGZvhTtIt7BogmQgWAOtTW79yJ6+0D76+RKz19dpWwcnmgaCwBBSL2aT//u/HD3UL0nlKLijlT4EXnpjBaBKQSCudHRZcj3NhGpX5Mp6659kuwmHGwfaQCCkGKNjrxZdCQdnR6SqD3kkO7K+LdNgKD2muyZWkrh3y3NSzVYWkjbX0dw1sgBMhDUWMdjvq8px9tAf69ko9dPMnTq3TCuKQSCmio05JlOPaqe7J2l8Rw3ujP1HF7nQgEgCKVX5OnGmy8SZQ2L6Vq2OWX07nVajDjFGghqpuXr2V3JwfJ0P31jx4WcU4SDLcbzCoGgRnrU0vhOutR+9jF98+jUZ3mG1ngBMhDUQp/b27cd6cIJ/7tMXdSfv5d5songpqFMIRDMXp6DksH1tDXmBzP3MjQu3+f0RlsCNUAQEi3gwrA1gwF7NC+no/1NBWcNt3N1ASAI2Wyf1tLcXhN1xp3J6Wq9el1R+O11+gzhFQLBLBT5ubbQl7naWp287jbrFZ6/wxDzCoGgaq0Pbh0cy6jX8FRuj9Pjiv8J6p0Xww+BYFGqYbt3XNZDHu/8zXL7/N67oeI/IRjStykEgqrU0XjwSF7Nj2d2+d1u7ZWo8Qe8hy0/aoBgEenH7q/rZbmV90+VdH1xoO6SwkFuKAAEi0RfLoJP5c8iXTQr6vzbyt9qQyN62+QhECyCEXj6y1BIfvXDgxNl/b+tPlJ/bZu6DJCBoBKd7C9vHiuo39uvGAn7QhbXFylxBnSXKwSCsnW1OdXzUlmT2Trlp5nty+oqw8G6kfdA0IjqXawOjips0zCt4kTPB7J8Xini9bW8qwGCBtNb3+6lYictcfEOmZqbyN5j1dNtEyAoJ6jotJ0qT9iFPPXqTrfSmv0lR7wXegmQExG0ctb4toXj2J7DKS6MbB7nOBP5z46ayXZUulOrRDY2Yo7oj7+So73dLTUNX7erPGPN4rIWFx4+4uYC+kbQwrCzJiDI2YUD0ggSQFMj6HCadIfgRGv/Sreqlu1m1Sdd9mnziEjk0HlV+AGyNIIRE2ex2TmnQ8TKwko5+krhLAoE7cGvO73qmtYfhNSfdyeo1TsIB8dH7DpG0B7HKY5gj5OwZ+V8cQSpRaRkseoETnPIRAA19Zq4SRPj1eGkFJN+7aJR1Y22Zpe9J2oN0MxkNqf+55Nm76Lgb5tII3jH4Ysj2Go2RSIm04tYEeOKmspkBJksekWwed3/0aK++XRdVmcfHXBo+F46gqYCDpDT+ILMBRTG4RsErVbO7nCa50QECXhWetgcjSMYZZaT7DJzaY7GEdTTQHxUXx3M5o/WMJvlBXh6tI2pXnQUrClMFxEz1y9hICa2zGrhLBYRQTsbhCllyQjahQIdIjg6MnCRlRVKt3iH3Hj6SOM3FfZwnwO6Q5BZQsbaDYIOp8/ndNwgSF8jphQIUvDob90hOGk6WMouIj05O8zeDvd3a/3GiFfYVoABsjSCgoGzJyJIXURTxLBW8NuYs7ct205WFjW4kradHLy9jqC/4LxCaQSJAbRQ9BIQpKOz1WZJ5QtaBA+Q1b3tCxIYyS+rGJhIyMpOJo77lrgTeis2YvwmZ8WZtyDYYjHaETeiZsXZiO/Hq1sbWX+mp2ZN/jTzb3LxB6cB8ouHhY0gF8tIi5sJviCNgS1xBMX8tWDnhPQ1RZBzjppirRlYrMd0GW07bUcK7cyWEtosdyym9f/snflTE2kax5F0IG1ISAI4cgwgBDaAN54c6qhRUIdFccyMzuzgAYuIMw54TkrBe2eFHVa0YFAX3dVyxh2rdq09dA/3h52qqdraqv2Xto8cndCddJLuft8O36cKabuA/r7v8+nnfZ/3Cs8zd2c61yp8SeG0hAeRLMJX9KJga2pB19+6d/Ba5lVqfzijiWumz9/Vx+dz3V6aQmECBAW85mXEYiyzzBsXFOOTkClzt3gE+XFBezgoCdHVoohgcBEXKT8uEGET+ImgJT7ELv6Mndcj/qDkN8WXQeg3hOHlL/jIqt6OfXqpSYvo8H7ywztU2q7hKZ28Hmx91XVkM6UIalbIRWwqzaA9EvMsXNMtIGaJp5XnULgZS2c41FmtISAjF5K/mtQudz11alPyUb9mldi/VT/HB86wQ51AUBJ8owPi1hA5lnh+hMbYGvqZiFlCXUGRSy6ARi4kETKJXfjk+eJdGhV86I6GtTg+qaPruV7hPRrGCulAUAAmlIfb5RG0CK36fAStXNPM9yLlEIwJl8p+LmAPjWtVbpWHd6hFkP2Jrt6nYl0hHesFhb6eeGHNV4qCPFXzEQz/vhyC0eCaoMO14/mhC9qV5JlX04qZ/FDnms876bhOOBTShaBAoBKC/B0FBKXkxSCYaFUjb849X17WsiB9oxrXzI5+3Svf1z1FNBRShaBIYL5COsIjOD8diQ2QselIkigYbLo0cUzTcozkPta4ZqY+mtC/+oOtb7qCmxc2gmLMChEo048TxmL4mDZvUEaMiPwdmUGZhH3BawV7fX5ti3FtdEjzqnmW1hkf6fQKX3aaAsEUE92UMuLgonDMsjgKYtvhyKi1mHhIY5tdmA0M/XooDw5dJMqIJ8798ozmHz2d2uEdatt2g8gI9hCaNqEEQSF6iYPiPHrhCTqrdPGicCc8QRely87GzstJLhTHBT/4zvH5C80Lcd2vR9W82PnGKBgCn5NIkClBUCFeBZVzBbsKHfKzI69u/mzwnA5l6Jh9oouLhmfmDMMh+MQxbHSCrBZBqxhreAStoRhjFceECxyOc47oVFxowUCqoNplc1e7cl+uJ/mCPtk54v2tJ3qH9KjJo8f9OvnIOmYkEYHuoYEghQhaQxPHwch6/Mit8P46e+iKa/zSiZWyEUuZs6B1OtlflFsp0/m4/o1OMcV3Uzcn9bUamxz2XOxy5lGGoLAEkF8bGF2DFVwkdN+ExVj86hVhGZdApiWfVnvUtHPysU5/u/+ifrr3G/6ZxEZOm6QQBe35kn1y0/nh7cTiKkB7dMcSpTuUplvPf3lXt79+Ttdd+pf3GF5deT3XHcYkyCoRFBvguE1K4i1xLTT3bxjBZDMSROzo/fe8Ou6n7R3dpat8/08J1Fnge/ZWJzUIhoZD7FEE7XxYtMRFQVo3TR85dvztF3o+IO3DO1Ta20sBEvUWtDjyejZTgWB4W7slimAoEsb2BUOr9imzu+OzP9c3Mh/y612GoR8IfQxsoPvlwBEKEIysz4+JguGGOLx2P6OMWC9b/PSrDx/p/IyOj3p1L8f9/aRqUO9pE7UNsUUKl5CO8Kvwe8VNmucc4tRF7OEeNNjcy+Nbh3X30SW/AUW5c4tcNQYGPh0IkEZQ2RLuiyNrQ7nvDR/V/zG+fkMK00eymp/0DOuVIGcxgp/MnR96YsBzvvnYmPLc7CZbn4EONtgJBFXbi8lHD4zJiwK5XxhUprEmwpXK9Qqd2s8gZ+dBv739XRcNGsV4NfrIqFLNdRwhXrOB7lmtp02yEcGOHQ33Z4x6mCaHd6i0DxwU1G6e1gly9iH4i8kfgsaNoT31G/pyDVJRxb0DtzRMkLMNQe/0nhEjmTgxY2Tppmcp6XYHe952DeUBwXn2/Zkz9yaMfOD7O/3GlnDX8ylaKjvQz9o7gWCM+R429I0b/Mg+owvZP0hPhXO9wjENeoVZg+CxsedOo08v9Bq/hir/wSRNtR4YYDPuFWYJgrdO3jG+hfLnPjO+pDN7x6mq+bxOx8vMQmE2IBj8d8fYMQLPHfWSKO3kEG317x+4kEkoND+C4333cn0kHqz54R0q7WI/fUGgZ8QxlbdAEZy49/wMmSRxxP+YTJGn/BMUOiLQzd7vXIAIjvy+i1SzdO0EsQbxrjFnfKSRIKe1mMbECG7+ZurP5E6EeuAnV/LBh5S6pPNyGgmyaRFcPDgy2kHu8b6vCJb9Rd8bWt2S99Yx1BNcCAievDjb30vw+Y9mn5As/nD9HL2+CXTbB15lO4JvvtNvS7oqO5pL+HjcmTGa/ZPXc89xOS9LEZxzrlu/YS/bsGH9OuccFDjnaHVSvXqBpkLQWV6/oqKsdLVtdWlZxYr6cicUEFCgUmCNWoEmQtC7auVym9SWr1zlhYJVXpM7yTQI+srXlNnirWxNuQ8Kyn2mdpJZEHSyFTY5q2CdUMA6zewkkyDY1LzWJm9rm5ugoLnJxE4yB4JN20ttSla6vQkKtjeZ10mmQNDZrFw4rnjNTihodprWSWZA0MeutSWytawPClifWZ1kBgTLK2yJraIcCnRXoJtAEyDoXWNLZmu8ULDGa1InmQDBVWVJS1e2Cgp0VqCfQPoRdK60JbeVTihY6TSnk+hHsDw64VNXvUyhdMvLoWB5ORVOUjYFgdQjOFdvU1H9Nh0X0EFBCgIra2uUGZQXSD2CzhWqqn+FEwpWOMk7KSGC8gKpR3BdhbT6/8uymzbKpvzroEBHBaoFJkRQXiD1CK6XpFp1bKNtWbVsGChbDwU6KlAtsLL2fyzLVirkxOtNieAGybRPHf+KVcqGgNINUKBKwZaqqqotad5TIbCS5d6ORk5jJctfLatmJWFRXiD1CDasjusHCdXfGP+mrW4wWAFXu2QVbNzEcgExZQVVDMNUpXlPhUChbjZuqqz528Zl1XW2ukZbY10SgdQjyNpkqp/rccR3OlhjFfDvd1xzY6yCmtpKW01tXcoKdEEwKlBwC4eg+I7yFFZKOg1s9kTBxsb4IGR8DKquJR2HbXw90BYFIwjyTTLvJEmsMGkUjOkHhaqff7n4LwI9sTAAP/5YE4eg0QrmI0hFXzAaBTmpNbEImrQvGJMNRhDkithYRyIfjQIQj6DxCsKupisjjiJYWVsa2xCbNCOOHRNTRNCwUTlFBEkoaKRzXJBPR6pr+Bgdm46YdFxQOjMQNpmG2KC5CYnFI2i4gngC6Zkd4aNgZFBGko2YdHZEOj8asca6+HTEoBnaBAgarSA+HaZjjjihmXSOWHYRxrxBGaPWqSgjaLSCZdWNWCljVJCXW4oWPzRNYLVeHIJGK+BHpllpK4f1gvoZ1ixj1TRhw84N7B0h3hvE/jXsoCNr2MWLfcTEMxKcZYDTFAgbTnTBmTLEi4dzrXCyFukwj9P9cL4g6ZwEZ5zilFXi44M46RlnTRMP9Djv3jwn7tuy8MR93oTP3Ggg/qkfC1yBtgLN+OlLf/0HFJBXkMQOXjmo8idNiOC2lq+hgLiCZHag7UD2IriP+dVnUEBaQbIg2MK0HMxWBLe1M8zXUMDQHQYPcAgeyFYE9zEM4RAABWqCIKM2DJoOQT4AkA0BUKAqCDJqw6DpEPxjW9uNP1258hkUXKE3DL5ua7/B3GhveZ2NCG5jfnd2yTt/+Hs7FBBUkMxOt1/NZ/Kvtp/Oyih4Nj9/yTtQQFiBCmPU/qAZh6bJVz8UAEEoAIIAAAgCQSgAggAACAJBKACCAAAIAkEoAIIAAAgCQSgAggAACAJBKACCAAAIAkEoAIIAAAgCQSgAggAACAJBKACCAAAIAkEoAIK6Vf8SJn37NksUAEHTRgAGCoAgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAguVARZrS3lmlkYCuhyEl0I5mhraQCwIBTQ5SQgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBILgwESx81x25Ylm2hLsoCW+D9vzTI9zIySleurRYJwDSF0CpArqcZAIE3e8WSi4K33WJ/3N5ioRCnRJLV7L7cFHaAPz6L4kUpC+AUgVp2enXOjnJBAi6Qm9OkadEUtgij1DKwt2Hhe/Fnt+60gfgN237tikrSF8ApQrSsva2Awd1cRL9CIaKEbkoXuoW471Q1pKlYqlctz3u9AE428a0Cwiw2gqgSsGWqqqqLXGPVXuPs6vtLS08hJo7iX4Ei5eWhK5KWNe8yO/y3OZjfeEp9+7CDHpip1sYDoH/yCrIQABVCqoYhqmKe6rae7zdYBgeQs2dRD+C0Y4u38H1hPsSJULk5166wlPchaukRGVX/NtEH5guqyADAVQpSAVBRWu7ormT6Ecw0tEV/sOycR1dd7GnOKfwcJHLk0lXPFEMykAAVQr0jIKZOIl+BF2xb46bdUsiP1f04lOFOS53tCVIB4CEPbEMBFClQM++YCZOoh7BIk/ozSncHZNkiZGfi+xFhwu590vSEqQBQKJ8NBMBZlKQNCNuUc6IM3IS9QhG3pxQkhWb9XORvcjjLnHHtgQpV3+iUblMBJhJQSbjghk5iXoEo2+OSyhAKOSL34Siu27/qygnw55YAgWZCDClAqOdRD2C7v+zdy6/bRt5AHZEEtKAkizLVpvEqePYcZAo76cDQWqDXnIJUMDwKdjD3gPnlD0ZNWDAQC67KXqJbsliCwQ5pSlatEHbxbYFFi26/9RyZqinFYuWRA5H/n6ArbFE2x85n37z4JDSJ3nknqliaaY/01eC19rzUpMXYBwAKwmSrqQjt0wBApYpIAAKoiAEKIgAKIiCEKAgAqAgCkKAggiAgigIAQoiAAqiIAQoiAAoiIIQoCACoCAKQoCCCICCKAgBCqIgCqIgCqZSwe1jwpePnnCyjsg09bOdkic8FERBFETBI6JgJ1AQBQ1mQU+IzOey1MwI4SkFg43ClzxHiGPbCICCMSro6WtHM01poAwvmy/Ix8C89muH3LtJx+GPLwSJAx5GwTC0gsHPjnwy0wzE86V9nm6k5TdPFPLBVsG3OGJz55+Gh+4QRADcjLjlyAr6qp2VpVaz7LU28XTHMF+IScHntTeGjy8EQ2OjvhGDgj0NsVbQbyvodBTMNGNV8L+u+8zs4YVgeBKsubXNmBXMF1pZ0O/Kgn7X8DguBbdq7s6u0eMLwfAkGCi4EbOCg/uCanDixKrgk7rrunsmDy8EUZKgGzUNjj4idtqjXm/AiDg+Bb+tuXX32SuDxxeCKEnQjZoGx5gXdFrzgtJBL7ROzwbGqOCX9WffNer178wdXgiGxrt6Y8/da9TeTVTBtMSLvcdPftp87r6CwE1tGtxq7Gbd7G5jayoVlEngi2BICIFhgmHhRt3QSgV/gMA8wZFW8N7/IDBPcLQVfAGBeYIjreCfLyD4EwVNxsevITBPkJCCh1+H2jlJhwAoOLUKfv+N6cMLQYoVTCLefgPB2yOloFoV7YXn24If/Pb6fEd88klrabSnNtJZ0GudPW5tONlzdW8fGBcAgiQVDNflO3pNtFyj1V6N4OjVCS0DZblHwfaGk1Xwww9MH14IElUwX1CLYTy1PDWwzumszw8UDDt+KjnKVaytvqAjujec8OH/wR09Xk8JwVFSMCvXRusEV8g3M4V8Z31+5xJOlfj8znDEDzOi6OTJycXjb5M4MlNMYJuCoUieyme+XqwaNrRdCuon1Yt+Vi9lzXY2nOzOvTIugOUEtimoLoRT6TDw7zO9VDpsfp0eu2Sn0VcvBiXZ94trgubrr0wLYDmBbQqGmTC8UF0vSA3X53cUbJnntIYj4fLWcMMJK7hlXAC7CezLgu0OnaMfukbE7Syot1IdRT9sgAv5mEbEu7+ZFsByAuuGI3JZvr5eTl2olO2sz+9uiB0tW4+C7Q0nrOBz4wLYTWCTgn3hH/42MXHEG+MCWE5grYKOmqBOQfy8YVoAywmsVdAXKTlj/OsvpgWwnMDihjglcfq0aQEsJ0DBceOXX00LYDkBCo4bGz+bFsByAhQcN56/MS2A5QTToaCe+wtXE6rZwXYhfgV3jQtgN8F0KKhPfLRWE4Y3nE7Iwd+MC2A5wXQo6IcTNHK2Wp37aBfij62vTQtgOcF0KNhaiBqewnM6hfjjq1emBbCcYCoU1M1ua02017nVeRKT198aF8BygqlQMFyJ4OilWI7w2oUkFHxsXAC7CaZCQbVyxhHH/jpRBZP4zA0XgvHC3OeODEyFhb9nwva3mZlAQ5zEJw+5EIypYEo+DNbR14YU8hMdjqAgCh5mWtCXDfG2vnAznJRRBRREwUQ+Eltfre5PdmoaBVHwkA762cmeoENBFDQcKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKIiCKJi4grMfzbVLQohKUKi0LoMu/7usnpiZWTh+fCEmAUYHSClBuirJAgXnPprtKsx+VNI/lcrzaqce6b2r3H84P7IAX35/EMHoACklGCm23sVUSRYoWArfOfPlStfOzpfVXs7ef6geF8r/Ko0uwIv6g3vvJxgdIKUEI0WjvrEZSyWlX8FwN9qFheNzOt+rfa0c13tVelqeG12AJ3W3oRQQkwVIFcHHp0+f/rjv30Z9LojdRq0mJZx4JaVfwYXjlbBUEaV9mb9Ufipz/eyjufuzY/TEtmpuoMCfAwnGAEgVwWnXdfs/KiLqczL2XFdKOPFKSr+CnY6u7OCWW32Jisr8wZtu9lFQKFUqEbvirw/6wPSBBGMApIrgMAq+N+o7E6+k9CvY7uiqH4To6+jOLZQXZmYfzpfK43TFD8pBYwCkiiDOLDhOJaVfwVLvO2dOzHVl/mDXFx7NzpTmOi3BKAIc2BMbAyBVBHH2BceppNQrOF8O3zmz93sGWTrzB5l9/uFs8P7qaglGEOCg8eg4ADYRDB0R194/Ih6rklKvYPudEw6yekf9QWafL89V5npbgkMf/oNm5cYBsIlgnHnBsSop9Qp23jkltQNhytcPatdLT/8zPzNmT+wAgnEArCRIupJSr+CcPskj90wVSzP9mb4SvNael5q8AOMAWEmQdCUduWUKELBMAQFQEAUhQEEEQEEUhAAFEQAFURACFEQAFERBCFAQAVAQBSFAQQRAQRSEAAURAAVREAIURAAUREEIUBAFURAFURAFURAFURAFURAFURAFUfDoKTjpgECI1FdSqhSMGD/8DIF5giGxubMZcUsLFbxX+wIC4wTDYqO+Mb0KPnCfPYbANMGwJFhza5vTquC9hut+AYGb7jS4ESi4Ma0KPnBdwykAgihJ0I2aBq1TUCYAsykAgkhJ0I2aBq1T8Jt6fe+7nZ3HEOykNw2+qzf23L1G7d00KnjP/erJBx++/akBgUGCYbHV2M262d3G1lRmwSfZ7AcfQmCYIEK4UTe0cWra/OGHAAUhQEEEQEEUhAAFEQAFURACFEQAFERBCFAQAVAQBSFAQQRAQRSEAAURAAVREAIURAAUREEIUBABUBAFIUBBBEBBFIQABREABVEQAhREABREQQhQEAFQEAUhQEEEQEEUhAAFEQAFURACFBwzXhZv3b5zQVy4c/tW8SUEhggmC2iVgsXFc5dPnTxxLXftxMlTl88tFiEwQDBpQIsUPHv1yqVcd1y6cvUsBAkTTB7QGgXPL14/meuPk9cXz0OQIEEcgLYoWBSncoPilChCIIo2V5IlCl68eSM3OG7cvAhBQgTxANqh4MVPT+TeFyc+vQjBpxftrSQrFCzefP/OBbt3swjBzaK1lWSDgufFjdxBcUOch0Cct7WSbFBw8VTu4Di1CEHsBLEBWqDg2eu5YXH9LATXz1paSRYoePXk0L07eRWCmAniA0y/gsUrueFxpQjBlaKdlZR+BRcvRdi7S4sQXFq0s5JSr+DLc7koce4lBOdeWllJqVeweDnS3l0uQnC5aGUlpV7BW53B/vrdai63srp8ZtCQ/xYEMRJEBzxwXuaWlQre7hpqLd1dz1VXVwYOt25DECNBZMBqgJdbE0u56ICpV/BO92mf6vIf79m7E3cgiJEgMuCZ5WqQqdeCRyEpl4RYGwaYegUvXOs6yOt3RVVVg+ivhWsXkiUIjrFZguAhJEmCIDrg+t0/loNuwlo1t7S6svLj+vqPK0MAU6+g6DnKKs/LnVvqb4tEogTyXd6fihIlWFldCr7WkiI4BGBV6COUW1o+E9RSz1tV2J8Fg7wuO+LV6r4klFQOCgnW7y6vGsqCIYGq7Wr6sqAeMIXv0cDCM8trtmfB7n7QympV9zP0l4GeWEiQ+/33lX4FEyYYoGAa+oKtTqAiXepT0NK+YPdocC1ofdfurqsMWF0zMR4NCfQBzpklCPLNUupGxJItHLAH8vU1xJaOiLumnJbk6OrM8uqJAQomMyvXIlgZoKABgmr65gVl/1SCra3l1lfX+4Yjls4LDph4H9QQJ35uYp+CSRPsMzANZ0f0myN4n3QmZZasPzsy6PRjdW3fcCTxM7T7FEyYYN9wmHPEscWARRj7J2WSX6fSr2DCBHIKmJUySSX5AUvR9k1NJ79ar1/BhAnkzHRndob1gvEGa5ZZNW04uHKDa0eM9wa5fo0r6MwGV/FyHbHxEQn3MuBuCoaDO7pwTxnju8d9rbizluk0z939uL+g6TEJ9zjlLqvG5we50zP3mjae6LnfPXfcNx186gefO0IQEw4UJFCQQEGCQEECBQkCBQkUJAgUJFCQIFCQQEGCQEECBQkCBQkUJAgUJFCQIFCQQEGCQEECBQkCBQkUJAgUjDt8kWkO2ST/Wd8W28eEP8r/8pxsMyOE/mVHiEK++1X50rHtsNAL5ck7ncungv8svBBBFpoZHwWnX8H9W4yooJ9pNjPB3/LlbzuBbY4yru1Z8JIXPNPMeOqrW06n9Y8d9dUp5D/ZRkEUjBjbx/xs/i95LZvyp62WyrUFX2/jy+SoN+z6TRXKWb8lryzIzIqC9isYKPWPjGrY8oXC3wqqpXSkeNI1RzaCTks99Zp82tMtompYPbX552E7mi/ol4K/1dPQ+u2c52SaWjGnX27poXqy185WqvO8UMh2oeuvoqDdCgotmtRHKM8GKBhu5mc72ysDZcHRzwQ++CLsuPUr6HntdtULzXH6/VGNsRdu0w4n/IvayyCBtgtdGRIFLVdQdtOCb/9v11xyHQZhKKonhKKIZnVdS0dR915fYzAU0/QNi8wAITBpBifXvxKCCMRoqgiqI74dREykM7anFex5AXOypNuJLqeNp8EPh/qTyUaQH2IgGIllRJEWgp1cOoI/jKC43qxcidTMQBDix8yoPT9gL8QCxqKjAxgc6+VF3GYqCKpGBMt9C0EVV0dwEQQBBWYDQfGxoUFQXDIQjCxjFcE4Q5AJnCGInQmCLXkdgpdFJUdwGRXMANGZ2gfU9mKvgn0E+I5gJnCbpCNAcExHeoHs0xFXweUQ1FgQtY+dERSt4gUQU3uJDPtYMJpVm6xZQqARx3EtBpo2FGWyImLHKMp4LLgeghgEgebGqbhVSX9b+7BXR1wS4Y8Z8flXNCsct94P16p1Tjxi944p38QkebAsPCNe0BE/jtw4A0oPPoglsitFwCYdwZmEjs9d8xMsrLqg1m5qg66p1chOadApXfUreG/QeV1wuTGN5K5GuG41T/TqfM4/jy8EzrsjjuDXCKJHbO3OGbpfv4v3iB3BfyBoK9acszNePtL/KePDhyPo4/fGC4Pl9KU80qCIAAAAAElFTkSuQmCC" } }, "cell_type": "markdown", "metadata": {}, "source": [ "![lstm2.png](attachment:lstm2.png)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:From /anaconda/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "Colocations handled automatically by placer.\n", "WARNING:tensorflow:From /anaconda/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "embedding_1 (Embedding) (None, 250, 100) 5000000 \n", "_________________________________________________________________\n", "spatial_dropout1d_1 (Spatial (None, 250, 100) 0 \n", "_________________________________________________________________\n", "lstm_1 (LSTM) (None, 100) 80400 \n", "_________________________________________________________________\n", "dense_1 (Dense) (None, 3) 303 \n", "=================================================================\n", "Total params: 5,080,703\n", "Trainable params: 5,080,703\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "None\n" ] } ], "source": [ "model = Sequential()\n", "model.add(Embedding(MAX_NB_WORDS, EMBEDDING_DIM, input_length=X.shape[1]))\n", "model.add(SpatialDropout1D(0.2))\n", "model.add(LSTM(100, dropout=0.2, recurrent_dropout=0.2))\n", "model.add(Dense(3, activation='softmax'))\n", "model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n", "print(model.summary())" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:From /anaconda/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "Use tf.cast instead.\n", "Train on 2235 samples, validate on 249 samples\n", "Epoch 1/5\n", "2235/2235 [==============================] - 42s 19ms/step - loss: 0.4049 - acc: 0.8586 - val_loss: 0.1528 - val_acc: 0.9478\n", "Epoch 2/5\n", "2235/2235 [==============================] - 40s 18ms/step - loss: 0.1198 - acc: 0.9620 - val_loss: 0.0755 - val_acc: 0.9759\n", "Epoch 3/5\n", "2235/2235 [==============================] - 41s 18ms/step - loss: 0.0550 - acc: 0.9803 - val_loss: 0.0568 - val_acc: 0.9880\n", "Epoch 4/5\n", "2235/2235 [==============================] - 42s 19ms/step - loss: 0.0201 - acc: 0.9942 - val_loss: 0.0508 - val_acc: 0.9880\n", "Epoch 5/5\n", "2235/2235 [==============================] - 42s 19ms/step - loss: 0.0100 - acc: 0.9969 - val_loss: 0.0626 - val_acc: 0.9799\n" ] } ], "source": [ "epochs = 5\n", "batch_size = 16\n", "\n", "history = model.fit(X_train, Y_train, epochs=epochs, batch_size=batch_size,validation_split=0.1,callbacks=[EarlyStopping(monitor='val_loss', patience=3, min_delta=0.0001)])" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "277/277 [==============================] - 0s 1ms/step\n", "Test set\n", " Loss: 0.086\n", " Accuracy: 0.968\n" ] } ], "source": [ "accr = model.evaluate(X_test,Y_test)\n", "print('Test set\\n Loss: {:0.3f}\\n Accuracy: {:0.3f}'.format(accr[0],accr[1]))" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nIgG1NAAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.title('Loss')\n", "plt.plot(history.history['loss'], label='train')\n", "plt.plot(history.history['val_loss'], label='test')\n", "plt.legend()\n", "plt.show();" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.title('Accuracy')\n", "plt.plot(history.history['acc'], label='train')\n", "plt.plot(history.history['val_acc'], label='test')\n", "plt.legend()\n", "plt.show();" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0.19624999 0.19684915 0.6069009 ]] Netherland\n" ] } ], "source": [ "new_phrase = ['Wil je uitgaan']\n", "seq = tokenizer.texts_to_sequences(new_phrase)\n", "padded = pad_sequences(seq, maxlen=MAX_SEQUENCE_LENGTH)\n", "pred = model.predict(padded)\n", "labels = ['Afrikaans','English','Netherland']\n", "print(pred, labels[np.argmax(pred)])" ] } ], "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.2" } }, "nbformat": 4, "nbformat_minor": 2 }