최재은

Add : 모든 코드와 데이터 추가

This diff could not be displayed because it is too large.
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "bert_news_label.ipynb",
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "code",
"metadata": {
"id": "58B51bnMtDVX",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 122
},
"outputId": "107c91fd-3ff1-4816-e90e-7f8bbc006cdc"
},
"source": [
"from google.colab import auth\n",
"auth.authenticate_user()\n",
"\n",
"from google.colab import drive\n",
"drive.mount('/content/gdrive')"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly\n",
"\n",
"Enter your authorization code:\n",
"··········\n",
"Mounted at /content/gdrive\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "2GWn_WDkvp3g",
"colab_type": "code",
"colab": {}
},
"source": [
"import pandas as pd\n",
"combined_data = pd.read_csv('gdrive/My Drive/capstone 2/event_embedding/Thesis_data/combined_data3.csv', encoding='utf-8') \n",
"combined_data\n",
"\n",
"\n",
"path = \"gdrive/My Drive/capstone 2/\""
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "XBgA_6YRv3KB",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "a356cb4f-98bd-49e0-d29a-c054e41df970"
},
"source": [
"%tensorflow_version 1.x\n",
"import tensorflow as tf\n",
"\n",
"import pandas as pd\n",
"import numpy as np \n",
"import re\n",
"import pickle\n",
"\n",
"import keras as keras\n",
"from keras.models import load_model\n",
"from keras import backend as K\n",
"from keras import Input, Model\n",
"from keras import optimizers\n",
"\n",
"import codecs\n",
"from tqdm import tqdm\n",
"import shutil\n",
"import warnings\n",
"import tensorflow as tf\n",
"import os\n",
"warnings.filterwarnings(action='ignore')\n",
"os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' \n",
"tf.logging.set_verbosity(tf.logging.ERROR)\n",
"\n",
"!pip install keras-bert\n",
"!pip install keras-radam"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"TensorFlow 1.x selected.\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"Collecting keras-bert\n",
" Downloading https://files.pythonhosted.org/packages/2c/0f/cdc886c1018943ea62d3209bc964413d5aa9d0eb7e493abd8545be679294/keras-bert-0.81.0.tar.gz\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from keras-bert) (1.18.4)\n",
"Requirement already satisfied: Keras in /usr/local/lib/python3.6/dist-packages (from keras-bert) (2.3.1)\n",
"Collecting keras-transformer>=0.30.0\n",
" Downloading https://files.pythonhosted.org/packages/22/b9/9040ec948ef895e71df6bee505a1f7e1c99ffedb409cb6eb329f04ece6e0/keras-transformer-0.33.0.tar.gz\n",
"Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-bert) (1.12.0)\n",
"Requirement already satisfied: h5py in /usr/local/lib/python3.6/dist-packages (from Keras->keras-bert) (2.10.0)\n",
"Requirement already satisfied: keras-preprocessing>=1.0.5 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-bert) (1.1.2)\n",
"Requirement already satisfied: scipy>=0.14 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-bert) (1.4.1)\n",
"Requirement already satisfied: keras-applications>=1.0.6 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-bert) (1.0.8)\n",
"Requirement already satisfied: pyyaml in /usr/local/lib/python3.6/dist-packages (from Keras->keras-bert) (3.13)\n",
"Collecting keras-pos-embd>=0.10.0\n",
" Downloading https://files.pythonhosted.org/packages/09/70/b63ed8fc660da2bb6ae29b9895401c628da5740c048c190b5d7107cadd02/keras-pos-embd-0.11.0.tar.gz\n",
"Collecting keras-multi-head>=0.22.0\n",
" Downloading https://files.pythonhosted.org/packages/a5/f0/a9a7528b8fefacaa9c5db736036fd8c061d754830a29c34129f6847bd338/keras-multi-head-0.24.0.tar.gz\n",
"Collecting keras-layer-normalization>=0.12.0\n",
" Downloading https://files.pythonhosted.org/packages/a4/0e/d1078df0494bac9ce1a67954e5380b6e7569668f0f3b50a9531c62c1fc4a/keras-layer-normalization-0.14.0.tar.gz\n",
"Collecting keras-position-wise-feed-forward>=0.5.0\n",
" Downloading https://files.pythonhosted.org/packages/e3/59/f0faa1037c033059e7e9e7758e6c23b4d1c0772cd48de14c4b6fd4033ad5/keras-position-wise-feed-forward-0.6.0.tar.gz\n",
"Collecting keras-embed-sim>=0.7.0\n",
" Downloading https://files.pythonhosted.org/packages/bc/20/735fd53f6896e2af63af47e212601c1b8a7a80d00b6126c388c9d1233892/keras-embed-sim-0.7.0.tar.gz\n",
"Collecting keras-self-attention==0.41.0\n",
" Downloading https://files.pythonhosted.org/packages/1b/1c/01599219bef7266fa43b3316e4f55bcb487734d3bafdc60ffd564f3cfe29/keras-self-attention-0.41.0.tar.gz\n",
"Building wheels for collected packages: keras-bert, keras-transformer, keras-pos-embd, keras-multi-head, keras-layer-normalization, keras-position-wise-feed-forward, keras-embed-sim, keras-self-attention\n",
" Building wheel for keras-bert (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-bert: filename=keras_bert-0.81.0-cp36-none-any.whl size=37913 sha256=5dd389965def97a4a8c8d39e14ca195c9b94b145d800a124a5071199150739a2\n",
" Stored in directory: /root/.cache/pip/wheels/bd/27/da/ffc2d573aa48b87440ec4f98bc7c992e3a2d899edb2d22ef9e\n",
" Building wheel for keras-transformer (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-transformer: filename=keras_transformer-0.33.0-cp36-none-any.whl size=13260 sha256=112c74364559b6c3b6f5e7191c44dff75a1b4fef7061cce9e0dcd04ab1279b47\n",
" Stored in directory: /root/.cache/pip/wheels/26/98/13/a28402939e1d48edd8704e6b02f223795af4a706815f4bf6d8\n",
" Building wheel for keras-pos-embd (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-pos-embd: filename=keras_pos_embd-0.11.0-cp36-none-any.whl size=7554 sha256=db69d8f347ba30f1ea87c225fa8896a9084a71c2d57a5b036be3cde055085aa7\n",
" Stored in directory: /root/.cache/pip/wheels/5b/a1/a0/ce6b1d49ba1a9a76f592e70cf297b05c96bc9f418146761032\n",
" Building wheel for keras-multi-head (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-multi-head: filename=keras_multi_head-0.24.0-cp36-none-any.whl size=15511 sha256=a225eb00e6cfcf846e376c79a204d34b75851566bb1108363183a2147aff38ef\n",
" Stored in directory: /root/.cache/pip/wheels/b6/84/01/dbcb50629030c8647a19dd0b7134574fad56c531bdb243bd20\n",
" Building wheel for keras-layer-normalization (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-layer-normalization: filename=keras_layer_normalization-0.14.0-cp36-none-any.whl size=5268 sha256=22d5729069e599ecee71ffcbc33cd327965def07bf8cd8ee645dd148210a23e5\n",
" Stored in directory: /root/.cache/pip/wheels/54/80/22/a638a7d406fd155e507aa33d703e3fa2612b9eb7bb4f4fe667\n",
" Building wheel for keras-position-wise-feed-forward (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-position-wise-feed-forward: filename=keras_position_wise_feed_forward-0.6.0-cp36-none-any.whl size=5623 sha256=ee2d8f747442c1a158ef3fe0c059663bfeb6ba3868bb0be793338ba0427c5ff7\n",
" Stored in directory: /root/.cache/pip/wheels/39/e2/e2/3514fef126a00574b13bc0b9e23891800158df3a3c19c96e3b\n",
" Building wheel for keras-embed-sim (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-embed-sim: filename=keras_embed_sim-0.7.0-cp36-none-any.whl size=4676 sha256=e94547926c0972d80319af9726f2f8efa1fa826d34e97fb5e91a3a580449a8e9\n",
" Stored in directory: /root/.cache/pip/wheels/d1/bc/b1/b0c45cee4ca2e6c86586b0218ffafe7f0703c6d07fdf049866\n",
" Building wheel for keras-self-attention (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-self-attention: filename=keras_self_attention-0.41.0-cp36-none-any.whl size=17288 sha256=50e66b5411c995d037e45c754fe47a6f41780ac7c97757ce4b99389e3bcdf2fc\n",
" Stored in directory: /root/.cache/pip/wheels/cc/dc/17/84258b27a04cd38ac91998abe148203720ca696186635db694\n",
"Successfully built keras-bert keras-transformer keras-pos-embd keras-multi-head keras-layer-normalization keras-position-wise-feed-forward keras-embed-sim keras-self-attention\n",
"Installing collected packages: keras-pos-embd, keras-self-attention, keras-multi-head, keras-layer-normalization, keras-position-wise-feed-forward, keras-embed-sim, keras-transformer, keras-bert\n",
"Successfully installed keras-bert-0.81.0 keras-embed-sim-0.7.0 keras-layer-normalization-0.14.0 keras-multi-head-0.24.0 keras-pos-embd-0.11.0 keras-position-wise-feed-forward-0.6.0 keras-self-attention-0.41.0 keras-transformer-0.33.0\n",
"Collecting keras-radam\n",
" Downloading https://files.pythonhosted.org/packages/46/8d/b83ccaa94253fbc920b21981f038393041d92236bb541751b98a66a2ac1d/keras-radam-0.15.0.tar.gz\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from keras-radam) (1.18.4)\n",
"Requirement already satisfied: Keras in /usr/local/lib/python3.6/dist-packages (from keras-radam) (2.3.1)\n",
"Requirement already satisfied: scipy>=0.14 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-radam) (1.4.1)\n",
"Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-radam) (1.12.0)\n",
"Requirement already satisfied: keras-applications>=1.0.6 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-radam) (1.0.8)\n",
"Requirement already satisfied: keras-preprocessing>=1.0.5 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-radam) (1.1.2)\n",
"Requirement already satisfied: pyyaml in /usr/local/lib/python3.6/dist-packages (from Keras->keras-radam) (3.13)\n",
"Requirement already satisfied: h5py in /usr/local/lib/python3.6/dist-packages (from Keras->keras-radam) (2.10.0)\n",
"Building wheels for collected packages: keras-radam\n",
" Building wheel for keras-radam (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-radam: filename=keras_radam-0.15.0-cp36-none-any.whl size=14685 sha256=913acbe80a0080d1fbac38daff360cdb8e2a3ba65b22fe989d8e125ea7d87e5f\n",
" Stored in directory: /root/.cache/pip/wheels/79/a0/c0/670b0a118e8f078539fafec7bd02eba0af921f745660c7f83f\n",
"Successfully built keras-radam\n",
"Installing collected packages: keras-radam\n",
"Successfully installed keras-radam-0.15.0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "V7_zjhL5wGeB",
"colab_type": "code",
"colab": {}
},
"source": [
"from keras_bert import load_trained_model_from_checkpoint, load_vocabulary\n",
"from keras_bert import Tokenizer\n",
"from keras_bert import AdamWarmup, calc_train_steps\n",
"\n",
"from keras_radam import RAdam"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "RE5pjPZjwG3q",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 102
},
"outputId": "497a5561-c8ad-40a7-fe72-5773da840971"
},
"source": [
"os.listdir(path+'/bert')"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"['bert_config.json',\n",
" 'vocab.txt',\n",
" 'bert_model.ckpt.index',\n",
" 'bert_model.ckpt.data-00000-of-00001',\n",
" 'bert_model.ckpt.meta']"
]
},
"metadata": {
"tags": []
},
"execution_count": 5
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "yWqOLyGWwIMf",
"colab_type": "code",
"colab": {}
},
"source": [
"SEQ_LEN = 256\n",
"BATCH_SIZE = 16\n",
"EPOCHS=2\n",
"LR=1e-5\n",
"DATA_COLUMN = \"body\"\n",
"LABEL_COLUMN = \"index\"\n",
"\n",
"pretrained_path = path+\"/bert\"\n",
"config_path = os.path.join(pretrained_path, 'bert_config.json')\n",
"checkpoint_path = os.path.join(pretrained_path, 'bert_model.ckpt')\n",
"vocab_path = os.path.join(pretrained_path, 'vocab.txt')"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "G4E3vhF5wKmg",
"colab_type": "code",
"colab": {}
},
"source": [
"token_dict = {}\n",
"with codecs.open(vocab_path, 'r', 'utf8') as reader:\n",
" for line in reader:\n",
" token = line.strip()\n",
" token_dict[token] = len(token_dict)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "c5a7hPzfwRcr",
"colab_type": "code",
"colab": {}
},
"source": [
"tokenizer = Tokenizer(token_dict)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "jj3zRxUHMQAD",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "e25e40d5-5932-4b61-e8dd-1a6fa4482c30"
},
"source": [
"tokenizer.tokenize(\"This is unbelievable.\")"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"['[CLS]', 'this', 'is', 'un', '##believable', '.', '[SEP]']"
]
},
"metadata": {
"tags": []
},
"execution_count": 15
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "vehabKa5wTKG",
"colab_type": "code",
"colab": {}
},
"source": [
"def convert_data(data_df):\n",
" global tokenizer\n",
" indices, targets = [], []\n",
" for i in tqdm(range(len(data_df))):\n",
" ids, segments = tokenizer.encode((data_df.iloc[i])[DATA_COLUMN], max_len=SEQ_LEN)\n",
" indices.append(ids)\n",
" targets.append((data_df.iloc[i])[LABEL_COLUMN])\n",
" items = list(zip(indices, targets))\n",
" \n",
" indices, targets = zip(*items)\n",
" indices = np.array(indices)\n",
" return [indices, np.zeros_like(indices)], np.array(targets)\n",
"\n",
"def load_data(pandas_dataframe):\n",
" data_df = pandas_dataframe\n",
" data_x, data_y = convert_data(data_df)\n",
"\n",
" return data_x, data_y"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "V8xrXJlywXG-",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
},
"outputId": "6af2ec8a-d87e-42c8-eab5-4fd60802d8d6"
},
"source": [
"# from sklearn.model_selection import train_test_split\n",
"# train,val = train_test_split(combined_data,test_size = 0.2)\n",
"\n",
"train = combined_data[0:20246].copy()\n",
"val = combined_data[20246:].copy()\n",
"train_x, train_y = load_data(train)\n",
"test_x, test_y = load_data(val)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"100%|██████████| 20246/20246 [00:21<00:00, 936.33it/s]\n",
"100%|██████████| 3805/3805 [00:04<00:00, 946.42it/s]\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "BusGgqtlOY5R",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 255
},
"outputId": "1c489ae6-999c-4ba5-b546-9f9e1a970b20"
},
"source": [
"test_x"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[array([[ 101, 2319, 117, ..., 0, 0, 0],\n",
" [ 101, 1419, 112, ..., 0, 0, 0],\n",
" [ 101, 170, 17619, ..., 0, 0, 0],\n",
" ...,\n",
" [ 101, 9700, 1158, ..., 0, 0, 0],\n",
" [ 101, 190, 4832, ..., 0, 0, 0],\n",
" [ 101, 3775, 4688, ..., 0, 0, 0]]),\n",
" array([[0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" ...,\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0]])]"
]
},
"metadata": {
"tags": []
},
"execution_count": 18
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "VyyTba9swZgM",
"colab_type": "code",
"colab": {}
},
"source": [
"layer_num = 12\n",
"model = load_trained_model_from_checkpoint(\n",
" config_path,\n",
" checkpoint_path,\n",
" training=True,\n",
" trainable=True,\n",
" seq_len=SEQ_LEN,)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "yIIDeSlDTeGb",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "889ee5fd-7d04-4ab5-de31-795c3e993eb1"
},
"source": [
"model.summary()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Model: \"model_1\"\n",
"__________________________________________________________________________________________________\n",
"Layer (type) Output Shape Param # Connected to \n",
"==================================================================================================\n",
"Input-Token (InputLayer) (None, 256) 0 \n",
"__________________________________________________________________________________________________\n",
"Input-Segment (InputLayer) (None, 256) 0 \n",
"__________________________________________________________________________________________________\n",
"Embedding-Token (TokenEmbedding [(None, 256, 768), ( 22268928 Input-Token[0][0] \n",
"__________________________________________________________________________________________________\n",
"Embedding-Segment (Embedding) (None, 256, 768) 1536 Input-Segment[0][0] \n",
"__________________________________________________________________________________________________\n",
"Embedding-Token-Segment (Add) (None, 256, 768) 0 Embedding-Token[0][0] \n",
" Embedding-Segment[0][0] \n",
"__________________________________________________________________________________________________\n",
"Embedding-Position (PositionEmb (None, 256, 768) 196608 Embedding-Token-Segment[0][0] \n",
"__________________________________________________________________________________________________\n",
"Embedding-Dropout (Dropout) (None, 256, 768) 0 Embedding-Position[0][0] \n",
"__________________________________________________________________________________________________\n",
"Embedding-Norm (LayerNormalizat (None, 256, 768) 1536 Embedding-Dropout[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-1-MultiHeadSelfAttentio (None, 256, 768) 2362368 Embedding-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-1-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-1-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-1-MultiHeadSelfAttentio (None, 256, 768) 0 Embedding-Norm[0][0] \n",
" Encoder-1-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-1-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-1-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-1-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-1-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-1-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-1-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-1-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-1-MultiHeadSelfAttention-\n",
" Encoder-1-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-1-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-1-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-2-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-1-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-2-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-2-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-2-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-1-FeedForward-Norm[0][0] \n",
" Encoder-2-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-2-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-2-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-2-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-2-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-2-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-2-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-2-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-2-MultiHeadSelfAttention-\n",
" Encoder-2-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-2-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-2-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-3-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-2-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-3-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-3-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-3-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-2-FeedForward-Norm[0][0] \n",
" Encoder-3-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-3-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-3-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-3-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-3-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-3-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-3-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-3-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-3-MultiHeadSelfAttention-\n",
" Encoder-3-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-3-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-3-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-4-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-3-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-4-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-4-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-4-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-3-FeedForward-Norm[0][0] \n",
" Encoder-4-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-4-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-4-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-4-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-4-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-4-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-4-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-4-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-4-MultiHeadSelfAttention-\n",
" Encoder-4-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-4-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-4-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-5-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-4-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-5-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-5-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-5-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-4-FeedForward-Norm[0][0] \n",
" Encoder-5-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-5-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-5-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-5-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-5-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-5-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-5-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-5-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-5-MultiHeadSelfAttention-\n",
" Encoder-5-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-5-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-5-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-6-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-5-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-6-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-6-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-6-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-5-FeedForward-Norm[0][0] \n",
" Encoder-6-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-6-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-6-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-6-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-6-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-6-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-6-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-6-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-6-MultiHeadSelfAttention-\n",
" Encoder-6-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-6-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-6-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-7-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-6-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-7-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-7-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-7-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-6-FeedForward-Norm[0][0] \n",
" Encoder-7-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-7-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-7-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-7-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-7-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-7-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-7-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-7-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-7-MultiHeadSelfAttention-\n",
" Encoder-7-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-7-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-7-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-8-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-7-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-8-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-8-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-8-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-7-FeedForward-Norm[0][0] \n",
" Encoder-8-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-8-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-8-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-8-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-8-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-8-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-8-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-8-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-8-MultiHeadSelfAttention-\n",
" Encoder-8-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-8-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-8-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-9-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-8-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-9-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-9-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-9-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-8-FeedForward-Norm[0][0] \n",
" Encoder-9-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-9-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-9-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-9-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-9-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-9-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-9-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-9-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-9-MultiHeadSelfAttention-\n",
" Encoder-9-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-9-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-9-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-10-MultiHeadSelfAttenti (None, 256, 768) 2362368 Encoder-9-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-10-MultiHeadSelfAttenti (None, 256, 768) 0 Encoder-10-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-10-MultiHeadSelfAttenti (None, 256, 768) 0 Encoder-9-FeedForward-Norm[0][0] \n",
" Encoder-10-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-10-MultiHeadSelfAttenti (None, 256, 768) 1536 Encoder-10-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-10-FeedForward (FeedFor (None, 256, 768) 4722432 Encoder-10-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-10-FeedForward-Dropout (None, 256, 768) 0 Encoder-10-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-10-FeedForward-Add (Add (None, 256, 768) 0 Encoder-10-MultiHeadSelfAttention\n",
" Encoder-10-FeedForward-Dropout[0]\n",
"__________________________________________________________________________________________________\n",
"Encoder-10-FeedForward-Norm (La (None, 256, 768) 1536 Encoder-10-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-11-MultiHeadSelfAttenti (None, 256, 768) 2362368 Encoder-10-FeedForward-Norm[0][0]\n",
"__________________________________________________________________________________________________\n",
"Encoder-11-MultiHeadSelfAttenti (None, 256, 768) 0 Encoder-11-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-11-MultiHeadSelfAttenti (None, 256, 768) 0 Encoder-10-FeedForward-Norm[0][0]\n",
" Encoder-11-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-11-MultiHeadSelfAttenti (None, 256, 768) 1536 Encoder-11-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-11-FeedForward (FeedFor (None, 256, 768) 4722432 Encoder-11-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-11-FeedForward-Dropout (None, 256, 768) 0 Encoder-11-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-11-FeedForward-Add (Add (None, 256, 768) 0 Encoder-11-MultiHeadSelfAttention\n",
" Encoder-11-FeedForward-Dropout[0]\n",
"__________________________________________________________________________________________________\n",
"Encoder-11-FeedForward-Norm (La (None, 256, 768) 1536 Encoder-11-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-12-MultiHeadSelfAttenti (None, 256, 768) 2362368 Encoder-11-FeedForward-Norm[0][0]\n",
"__________________________________________________________________________________________________\n",
"Encoder-12-MultiHeadSelfAttenti (None, 256, 768) 0 Encoder-12-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-12-MultiHeadSelfAttenti (None, 256, 768) 0 Encoder-11-FeedForward-Norm[0][0]\n",
" Encoder-12-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-12-MultiHeadSelfAttenti (None, 256, 768) 1536 Encoder-12-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-12-FeedForward (FeedFor (None, 256, 768) 4722432 Encoder-12-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-12-FeedForward-Dropout (None, 256, 768) 0 Encoder-12-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-12-FeedForward-Add (Add (None, 256, 768) 0 Encoder-12-MultiHeadSelfAttention\n",
" Encoder-12-FeedForward-Dropout[0]\n",
"__________________________________________________________________________________________________\n",
"Encoder-12-FeedForward-Norm (La (None, 256, 768) 1536 Encoder-12-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"MLM-Dense (Dense) (None, 256, 768) 590592 Encoder-12-FeedForward-Norm[0][0]\n",
"__________________________________________________________________________________________________\n",
"MLM-Norm (LayerNormalization) (None, 256, 768) 1536 MLM-Dense[0][0] \n",
"__________________________________________________________________________________________________\n",
"Extract (Extract) (None, 768) 0 Encoder-12-FeedForward-Norm[0][0]\n",
"__________________________________________________________________________________________________\n",
"MLM-Sim (EmbeddingSimilarity) (None, 256, 28996) 28996 MLM-Norm[0][0] \n",
" Embedding-Token[0][1] \n",
"__________________________________________________________________________________________________\n",
"Input-Masked (InputLayer) (None, 256) 0 \n",
"__________________________________________________________________________________________________\n",
"NSP-Dense (Dense) (None, 768) 590592 Extract[0][0] \n",
"__________________________________________________________________________________________________\n",
"MLM (Masked) (None, 256, 28996) 0 MLM-Sim[0][0] \n",
" Input-Masked[0][0] \n",
"__________________________________________________________________________________________________\n",
"NSP (Dense) (None, 2) 1538 NSP-Dense[0][0] \n",
"==================================================================================================\n",
"Total params: 108,736,326\n",
"Trainable params: 108,736,326\n",
"Non-trainable params: 0\n",
"__________________________________________________________________________________________________\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "7jO_vzY6w_qa",
"colab_type": "code",
"colab": {}
},
"source": [
"from keras.callbacks import ModelCheckpoint, EarlyStopping\n",
"def recall(y_true, y_pred):\n",
" true_positives = K.sum(K.round(K.clip(y_true[:, 0] * y_pred[:, 0], 0, 1)))\n",
" possible_positives = K.sum(K.round(K.clip(y_true[:, 0], 0, 1)))\n",
" recall = true_positives / (possible_positives + K.epsilon())\n",
" return recall\n",
"\n",
"\n",
"def precision(y_true, y_pred):\n",
" true_positives = K.sum(K.round(K.clip(y_true[:, 0] * y_pred[:, 0], 0, 1)))\n",
" predicted_positives = K.sum(K.round(K.clip(y_pred[:, 0], 0, 1)))\n",
" precision = true_positives / (predicted_positives + K.epsilon())\n",
" return precision\n",
"\n",
"\n",
"def fbeta_score(y_true, y_pred):\n",
" if K.sum(K.round(K.clip(y_true, 0, 1))) == 0:\n",
" return 0\n",
"\n",
" p = precision(y_true, y_pred)\n",
" r = recall(y_true, y_pred)\n",
" bb = 1 ** 2\n",
" fbeta_score = (1 + bb) * (p * r) / (bb * p + r + K.epsilon())\n",
" return fbeta_score\n",
"\n",
"def get_bert_finetuning_model(model):\n",
" inputs = model.inputs[:2]\n",
" dense = model.layers[-3].output\n",
"\n",
" outputs = keras.layers.Dense(1, activation='sigmoid',kernel_initializer=keras.initializers.TruncatedNormal(stddev=0.02),\n",
" name = 'output')(dense)\n",
"\n",
" bert_model = keras.models.Model(inputs, outputs)\n",
" bert_model.compile(\n",
" optimizer=RAdam(learning_rate=0.00001, weight_decay=0.0025),\n",
" loss='binary_crossentropy',\n",
" metrics=['accuracy', recall, precision, fbeta_score])\n",
" \n",
" return bert_model\n",
" \n",
"model_name = path + \"event_news_label_bert.h5\"\n",
"checkpointer = ModelCheckpoint(filepath=model_name,\n",
" monitor='val_fbeta_score', mode=\"max\",\n",
" verbose=2, save_best_only=True)\n",
"earlystopper = EarlyStopping(monitor='val_loss', patience=20, verbose=2, mode = \"min\")"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "66Rd4Xl-TzcS",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "da0ee542-0ee0-44ed-d900-64a7174fe21a"
},
"source": [
"sess = K.get_session()\n",
"uninitialized_variables = set([i.decode('ascii') for i in sess.run(tf.report_uninitialized_variables())])\n",
"init = tf.variables_initializer([v for v in tf.global_variables() if v.name.split(':')[0] in uninitialized_variables])\n",
"sess.run(init)\n",
"\n",
"bert_model = get_bert_finetuning_model(model)\n",
"bert_model.summary()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Model: \"model_6\"\n",
"__________________________________________________________________________________________________\n",
"Layer (type) Output Shape Param # Connected to \n",
"==================================================================================================\n",
"Input-Token (InputLayer) (None, 256) 0 \n",
"__________________________________________________________________________________________________\n",
"Input-Segment (InputLayer) (None, 256) 0 \n",
"__________________________________________________________________________________________________\n",
"Embedding-Token (TokenEmbedding [(None, 256, 768), ( 22268928 Input-Token[0][0] \n",
"__________________________________________________________________________________________________\n",
"Embedding-Segment (Embedding) (None, 256, 768) 1536 Input-Segment[0][0] \n",
"__________________________________________________________________________________________________\n",
"Embedding-Token-Segment (Add) (None, 256, 768) 0 Embedding-Token[0][0] \n",
" Embedding-Segment[0][0] \n",
"__________________________________________________________________________________________________\n",
"Embedding-Position (PositionEmb (None, 256, 768) 196608 Embedding-Token-Segment[0][0] \n",
"__________________________________________________________________________________________________\n",
"Embedding-Dropout (Dropout) (None, 256, 768) 0 Embedding-Position[0][0] \n",
"__________________________________________________________________________________________________\n",
"Embedding-Norm (LayerNormalizat (None, 256, 768) 1536 Embedding-Dropout[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-1-MultiHeadSelfAttentio (None, 256, 768) 2362368 Embedding-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-1-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-1-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-1-MultiHeadSelfAttentio (None, 256, 768) 0 Embedding-Norm[0][0] \n",
" Encoder-1-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-1-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-1-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-1-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-1-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-1-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-1-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-1-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-1-MultiHeadSelfAttention-\n",
" Encoder-1-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-1-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-1-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-2-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-1-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-2-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-2-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-2-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-1-FeedForward-Norm[0][0] \n",
" Encoder-2-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-2-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-2-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-2-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-2-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-2-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-2-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-2-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-2-MultiHeadSelfAttention-\n",
" Encoder-2-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-2-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-2-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-3-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-2-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-3-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-3-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-3-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-2-FeedForward-Norm[0][0] \n",
" Encoder-3-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-3-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-3-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-3-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-3-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-3-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-3-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-3-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-3-MultiHeadSelfAttention-\n",
" Encoder-3-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-3-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-3-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-4-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-3-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-4-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-4-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-4-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-3-FeedForward-Norm[0][0] \n",
" Encoder-4-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-4-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-4-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-4-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-4-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-4-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-4-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-4-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-4-MultiHeadSelfAttention-\n",
" Encoder-4-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-4-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-4-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-5-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-4-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-5-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-5-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-5-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-4-FeedForward-Norm[0][0] \n",
" Encoder-5-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-5-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-5-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-5-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-5-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-5-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-5-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-5-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-5-MultiHeadSelfAttention-\n",
" Encoder-5-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-5-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-5-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-6-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-5-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-6-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-6-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-6-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-5-FeedForward-Norm[0][0] \n",
" Encoder-6-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-6-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-6-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-6-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-6-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-6-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-6-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-6-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-6-MultiHeadSelfAttention-\n",
" Encoder-6-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-6-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-6-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-7-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-6-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-7-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-7-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-7-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-6-FeedForward-Norm[0][0] \n",
" Encoder-7-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-7-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-7-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-7-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-7-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-7-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-7-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-7-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-7-MultiHeadSelfAttention-\n",
" Encoder-7-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-7-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-7-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-8-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-7-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-8-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-8-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-8-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-7-FeedForward-Norm[0][0] \n",
" Encoder-8-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-8-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-8-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-8-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-8-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-8-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-8-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-8-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-8-MultiHeadSelfAttention-\n",
" Encoder-8-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-8-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-8-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-9-MultiHeadSelfAttentio (None, 256, 768) 2362368 Encoder-8-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-9-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-9-MultiHeadSelfAttention[\n",
"__________________________________________________________________________________________________\n",
"Encoder-9-MultiHeadSelfAttentio (None, 256, 768) 0 Encoder-8-FeedForward-Norm[0][0] \n",
" Encoder-9-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-9-MultiHeadSelfAttentio (None, 256, 768) 1536 Encoder-9-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-9-FeedForward (FeedForw (None, 256, 768) 4722432 Encoder-9-MultiHeadSelfAttention-\n",
"__________________________________________________________________________________________________\n",
"Encoder-9-FeedForward-Dropout ( (None, 256, 768) 0 Encoder-9-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-9-FeedForward-Add (Add) (None, 256, 768) 0 Encoder-9-MultiHeadSelfAttention-\n",
" Encoder-9-FeedForward-Dropout[0][\n",
"__________________________________________________________________________________________________\n",
"Encoder-9-FeedForward-Norm (Lay (None, 256, 768) 1536 Encoder-9-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-10-MultiHeadSelfAttenti (None, 256, 768) 2362368 Encoder-9-FeedForward-Norm[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-10-MultiHeadSelfAttenti (None, 256, 768) 0 Encoder-10-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-10-MultiHeadSelfAttenti (None, 256, 768) 0 Encoder-9-FeedForward-Norm[0][0] \n",
" Encoder-10-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-10-MultiHeadSelfAttenti (None, 256, 768) 1536 Encoder-10-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-10-FeedForward (FeedFor (None, 256, 768) 4722432 Encoder-10-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-10-FeedForward-Dropout (None, 256, 768) 0 Encoder-10-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-10-FeedForward-Add (Add (None, 256, 768) 0 Encoder-10-MultiHeadSelfAttention\n",
" Encoder-10-FeedForward-Dropout[0]\n",
"__________________________________________________________________________________________________\n",
"Encoder-10-FeedForward-Norm (La (None, 256, 768) 1536 Encoder-10-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-11-MultiHeadSelfAttenti (None, 256, 768) 2362368 Encoder-10-FeedForward-Norm[0][0]\n",
"__________________________________________________________________________________________________\n",
"Encoder-11-MultiHeadSelfAttenti (None, 256, 768) 0 Encoder-11-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-11-MultiHeadSelfAttenti (None, 256, 768) 0 Encoder-10-FeedForward-Norm[0][0]\n",
" Encoder-11-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-11-MultiHeadSelfAttenti (None, 256, 768) 1536 Encoder-11-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-11-FeedForward (FeedFor (None, 256, 768) 4722432 Encoder-11-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-11-FeedForward-Dropout (None, 256, 768) 0 Encoder-11-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-11-FeedForward-Add (Add (None, 256, 768) 0 Encoder-11-MultiHeadSelfAttention\n",
" Encoder-11-FeedForward-Dropout[0]\n",
"__________________________________________________________________________________________________\n",
"Encoder-11-FeedForward-Norm (La (None, 256, 768) 1536 Encoder-11-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-12-MultiHeadSelfAttenti (None, 256, 768) 2362368 Encoder-11-FeedForward-Norm[0][0]\n",
"__________________________________________________________________________________________________\n",
"Encoder-12-MultiHeadSelfAttenti (None, 256, 768) 0 Encoder-12-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-12-MultiHeadSelfAttenti (None, 256, 768) 0 Encoder-11-FeedForward-Norm[0][0]\n",
" Encoder-12-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-12-MultiHeadSelfAttenti (None, 256, 768) 1536 Encoder-12-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-12-FeedForward (FeedFor (None, 256, 768) 4722432 Encoder-12-MultiHeadSelfAttention\n",
"__________________________________________________________________________________________________\n",
"Encoder-12-FeedForward-Dropout (None, 256, 768) 0 Encoder-12-FeedForward[0][0] \n",
"__________________________________________________________________________________________________\n",
"Encoder-12-FeedForward-Add (Add (None, 256, 768) 0 Encoder-12-MultiHeadSelfAttention\n",
" Encoder-12-FeedForward-Dropout[0]\n",
"__________________________________________________________________________________________________\n",
"Encoder-12-FeedForward-Norm (La (None, 256, 768) 1536 Encoder-12-FeedForward-Add[0][0] \n",
"__________________________________________________________________________________________________\n",
"Extract (Extract) (None, 768) 0 Encoder-12-FeedForward-Norm[0][0]\n",
"__________________________________________________________________________________________________\n",
"NSP-Dense (Dense) (None, 768) 590592 Extract[0][0] \n",
"__________________________________________________________________________________________________\n",
"output (Dense) (None, 1) 769 NSP-Dense[0][0] \n",
"==================================================================================================\n",
"Total params: 108,114,433\n",
"Trainable params: 108,114,433\n",
"Non-trainable params: 0\n",
"__________________________________________________________________________________________________\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "VFVmzqXvxV2I",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 955
},
"outputId": "0dee0c30-ecbd-4d06-e741-a8042b468f62"
},
"source": [
"sess = K.get_session()\n",
"uninitialized_variables = set([i.decode('ascii') for i in sess.run(tf.report_uninitialized_variables())])\n",
"init = tf.variables_initializer([v for v in tf.global_variables() if v.name.split(':')[0] in uninitialized_variables])\n",
"sess.run(init)\n",
"\n",
"bert_model = get_bert_finetuning_model(model)\n",
"bert_model.load_weights(\"gdrive/My Drive/body_bert_256.h5\")\n",
"history = bert_model.fit(train_x, train_y, epochs=25, batch_size=16, verbose = 1, validation_data=(test_x, test_y))\n",
"bert_model.save_weights(\"gdrive/My Drive/body_bert_256_epoch50.h5\")"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Train on 20246 samples, validate on 3805 samples\n",
"Epoch 1/25\n",
"20246/20246 [==============================] - 1330s 66ms/step - loss: 0.6926 - accuracy: 0.5180 - recall: 0.8852 - precision: 0.5221 - fbeta_score: 0.6343 - val_loss: 0.6932 - val_accuracy: 0.5030 - val_recall: 0.3662 - val_precision: 0.5922 - val_fbeta_score: 0.4242\n",
"Epoch 2/25\n",
"20246/20246 [==============================] - 1319s 65ms/step - loss: 0.6915 - accuracy: 0.5221 - recall: 0.8501 - precision: 0.5207 - fbeta_score: 0.6184 - val_loss: 0.6887 - val_accuracy: 0.5640 - val_recall: 0.7281 - val_precision: 0.5785 - val_fbeta_score: 0.6145\n",
"Epoch 3/25\n",
"20246/20246 [==============================] - 1318s 65ms/step - loss: 0.6789 - accuracy: 0.5738 - recall: 0.7190 - precision: 0.5819 - fbeta_score: 0.6126 - val_loss: 0.7050 - val_accuracy: 0.5075 - val_recall: 0.4514 - val_precision: 0.5760 - val_fbeta_score: 0.4712\n",
"Epoch 4/25\n",
"20246/20246 [==============================] - 1320s 65ms/step - loss: 0.5551 - accuracy: 0.7174 - recall: 0.7525 - precision: 0.7280 - fbeta_score: 0.7196 - val_loss: 0.8139 - val_accuracy: 0.4933 - val_recall: 0.3668 - val_precision: 0.5788 - val_fbeta_score: 0.4179\n",
"Epoch 5/25\n",
"20246/20246 [==============================] - 1319s 65ms/step - loss: 0.3120 - accuracy: 0.8694 - recall: 0.8784 - precision: 0.8759 - fbeta_score: 0.8684 - val_loss: 1.1761 - val_accuracy: 0.4991 - val_recall: 0.3568 - val_precision: 0.5796 - val_fbeta_score: 0.4116\n",
"Epoch 6/25\n",
"20246/20246 [==============================] - 1319s 65ms/step - loss: 0.1799 - accuracy: 0.9314 - recall: 0.9350 - precision: 0.9361 - fbeta_score: 0.9308 - val_loss: 1.3997 - val_accuracy: 0.5193 - val_recall: 0.4819 - val_precision: 0.5775 - val_fbeta_score: 0.4954\n",
"Epoch 7/25\n",
"20246/20246 [==============================] - 1321s 65ms/step - loss: 0.1268 - accuracy: 0.9533 - recall: 0.9570 - precision: 0.9547 - fbeta_score: 0.9528 - val_loss: 1.5101 - val_accuracy: 0.5114 - val_recall: 0.4414 - val_precision: 0.5792 - val_fbeta_score: 0.4693\n",
"Epoch 8/25\n",
"20246/20246 [==============================] - 1320s 65ms/step - loss: 0.1018 - accuracy: 0.9645 - recall: 0.9649 - precision: 0.9671 - fbeta_score: 0.9635 - val_loss: 1.7262 - val_accuracy: 0.5017 - val_recall: 0.3862 - val_precision: 0.5778 - val_fbeta_score: 0.4340\n",
"Epoch 9/25\n",
"20246/20246 [==============================] - 1318s 65ms/step - loss: 0.0911 - accuracy: 0.9676 - recall: 0.9683 - precision: 0.9701 - fbeta_score: 0.9671 - val_loss: 1.8218 - val_accuracy: 0.4886 - val_recall: 0.3260 - val_precision: 0.5849 - val_fbeta_score: 0.3844\n",
"Epoch 10/25\n",
"20246/20246 [==============================] - 1321s 65ms/step - loss: 0.0785 - accuracy: 0.9713 - recall: 0.9724 - precision: 0.9732 - fbeta_score: 0.9710 - val_loss: 1.8267 - val_accuracy: 0.5070 - val_recall: 0.4098 - val_precision: 0.5780 - val_fbeta_score: 0.4490\n",
"Epoch 11/25\n",
"20246/20246 [==============================] - 1323s 65ms/step - loss: 0.0693 - accuracy: 0.9737 - recall: 0.9732 - precision: 0.9767 - fbeta_score: 0.9731 - val_loss: 1.8569 - val_accuracy: 0.5188 - val_recall: 0.4916 - val_precision: 0.5792 - val_fbeta_score: 0.5005\n",
"Epoch 12/25\n",
"20246/20246 [==============================] - 1318s 65ms/step - loss: 0.0618 - accuracy: 0.9773 - recall: 0.9777 - precision: 0.9788 - fbeta_score: 0.9768 - val_loss: 1.7918 - val_accuracy: 0.5067 - val_recall: 0.4202 - val_precision: 0.5774 - val_fbeta_score: 0.4556\n",
"Epoch 13/25\n",
"20246/20246 [==============================] - 1321s 65ms/step - loss: 0.0593 - accuracy: 0.9776 - recall: 0.9781 - precision: 0.9794 - fbeta_score: 0.9772 - val_loss: 1.8888 - val_accuracy: 0.5091 - val_recall: 0.4414 - val_precision: 0.5775 - val_fbeta_score: 0.4697\n",
"Epoch 14/25\n",
"20246/20246 [==============================] - 1321s 65ms/step - loss: 0.0534 - accuracy: 0.9793 - recall: 0.9790 - precision: 0.9816 - fbeta_score: 0.9791 - val_loss: 2.2426 - val_accuracy: 0.4886 - val_recall: 0.3233 - val_precision: 0.5795 - val_fbeta_score: 0.3868\n",
"Epoch 15/25\n",
"20246/20246 [==============================] - 1322s 65ms/step - loss: 0.0471 - accuracy: 0.9804 - recall: 0.9798 - precision: 0.9821 - fbeta_score: 0.9796 - val_loss: 2.1971 - val_accuracy: 0.5057 - val_recall: 0.4143 - val_precision: 0.5818 - val_fbeta_score: 0.4528\n",
"Epoch 16/25\n",
"20246/20246 [==============================] - 1319s 65ms/step - loss: 0.0495 - accuracy: 0.9793 - recall: 0.9796 - precision: 0.9814 - fbeta_score: 0.9792 - val_loss: 2.2741 - val_accuracy: 0.5059 - val_recall: 0.4057 - val_precision: 0.5816 - val_fbeta_score: 0.4502\n",
"Epoch 17/25\n",
"20246/20246 [==============================] - 1319s 65ms/step - loss: 0.0483 - accuracy: 0.9799 - recall: 0.9806 - precision: 0.9815 - fbeta_score: 0.9797 - val_loss: 2.0932 - val_accuracy: 0.5104 - val_recall: 0.4322 - val_precision: 0.5771 - val_fbeta_score: 0.4645\n",
"Epoch 18/25\n",
"20246/20246 [==============================] - 1320s 65ms/step - loss: 0.0394 - accuracy: 0.9831 - recall: 0.9824 - precision: 0.9859 - fbeta_score: 0.9830 - val_loss: 2.1859 - val_accuracy: 0.5051 - val_recall: 0.3847 - val_precision: 0.5814 - val_fbeta_score: 0.4328\n",
"Epoch 19/25\n",
"20246/20246 [==============================] - 1322s 65ms/step - loss: 0.0462 - accuracy: 0.9812 - recall: 0.9804 - precision: 0.9839 - fbeta_score: 0.9809 - val_loss: 2.2411 - val_accuracy: 0.5072 - val_recall: 0.4112 - val_precision: 0.5771 - val_fbeta_score: 0.4479\n",
"Epoch 20/25\n",
"20246/20246 [==============================] - 1321s 65ms/step - loss: 0.0353 - accuracy: 0.9841 - recall: 0.9852 - precision: 0.9846 - fbeta_score: 0.9838 - val_loss: 2.2884 - val_accuracy: 0.5151 - val_recall: 0.4217 - val_precision: 0.5828 - val_fbeta_score: 0.4573\n",
"Epoch 21/25\n",
"20246/20246 [==============================] - 1318s 65ms/step - loss: 0.0408 - accuracy: 0.9824 - recall: 0.9818 - precision: 0.9843 - fbeta_score: 0.9818 - val_loss: 2.5317 - val_accuracy: 0.4857 - val_recall: 0.2767 - val_precision: 0.5815 - val_fbeta_score: 0.3478\n",
"Epoch 22/25\n",
"20246/20246 [==============================] - 1319s 65ms/step - loss: 0.0372 - accuracy: 0.9828 - recall: 0.9815 - precision: 0.9859 - fbeta_score: 0.9826 - val_loss: 2.2843 - val_accuracy: 0.5043 - val_recall: 0.3758 - val_precision: 0.5849 - val_fbeta_score: 0.4276\n",
"Epoch 23/25\n",
"20246/20246 [==============================] - 1316s 65ms/step - loss: 0.0348 - accuracy: 0.9856 - recall: 0.9868 - precision: 0.9863 - fbeta_score: 0.9856 - val_loss: 2.2134 - val_accuracy: 0.5277 - val_recall: 0.4676 - val_precision: 0.5825 - val_fbeta_score: 0.4887\n",
"Epoch 24/25\n",
"20246/20246 [==============================] - 1317s 65ms/step - loss: 0.0351 - accuracy: 0.9847 - recall: 0.9840 - precision: 0.9869 - fbeta_score: 0.9845 - val_loss: 2.1987 - val_accuracy: 0.5148 - val_recall: 0.4272 - val_precision: 0.5806 - val_fbeta_score: 0.4617\n",
"Epoch 25/25\n",
"20246/20246 [==============================] - 1319s 65ms/step - loss: 0.0330 - accuracy: 0.9855 - recall: 0.9871 - precision: 0.9851 - fbeta_score: 0.9852 - val_loss: 2.2073 - val_accuracy: 0.5125 - val_recall: 0.3833 - val_precision: 0.5833 - val_fbeta_score: 0.4322\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "jBpYE9eVxfXv",
"colab_type": "code",
"colab": {}
},
"source": [
"test = pd.read_csv('gdrive/My Drive/capstone 2/event_embedding/Thesis_data/combined_data2015.csv', encoding='utf-8') "
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "NQu0eoaWxfsv",
"colab_type": "code",
"colab": {}
},
"source": [
"def predict_convert_data(data_df):\n",
" global tokenizer\n",
" indices = []\n",
" for i in tqdm(range(len(data_df))):\n",
" ids, segments = tokenizer.encode(data_df[DATA_COLUMN][i], max_len=SEQ_LEN)\n",
" indices.append(ids)\n",
" \n",
" items = indices\n",
" \n",
" \n",
" indices = np.array(indices)\n",
" return [indices, np.zeros_like(indices)]\n",
"\n",
"def predict_load_data(x): #Pandas Dataframe을 인풋으로 받는다\n",
" data_df = x\n",
" data_df[DATA_COLUMN] = data_df[DATA_COLUMN].astype(str)\n",
" data_x = predict_convert_data(data_df)\n",
"\n",
" return data_x"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "DBY60yKJxnKL",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "91537660-419c-4197-e583-f852b99e1c86"
},
"source": [
"test_set = predict_load_data(test)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"100%|██████████| 3692/3692 [00:01<00:00, 2444.62it/s]\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "jf9yeGiVbFxO",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 170
},
"outputId": "26775179-5501-4dfa-d099-57129d8b0bbc"
},
"source": [
"bert_model = get_bert_finetuning_model(model)\n",
"bert_model.load_weights(\"gdrive/My Drive/body_bert_256.h5\")\n",
"preds = bert_model.predict(test_set)\n",
"from sklearn.metrics import classification_report\n",
"y_true = test['index']\n",
"# F1 Score 확인\n",
"print(classification_report(y_true, np.round(preds,0)))"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.50 0.52 0.51 1867\n",
" 1 0.49 0.48 0.49 1825\n",
"\n",
" accuracy 0.50 3692\n",
" macro avg 0.50 0.50 0.50 3692\n",
"weighted avg 0.50 0.50 0.50 3692\n",
"\n"
],
"name": "stdout"
}
]
}
]
}
\ No newline at end of file
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "bert news label.ipynb",
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "code",
"metadata": {
"id": "58B51bnMtDVX",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 122
},
"outputId": "6e85676a-2b15-4885-b467-3358de1e7189"
},
"source": [
"from google.colab import auth\n",
"auth.authenticate_user()\n",
"\n",
"from google.colab import drive\n",
"drive.mount('/content/gdrive')"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly\n",
"\n",
"Enter your authorization code:\n",
"··········\n",
"Mounted at /content/gdrive\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "2GWn_WDkvp3g",
"colab_type": "code",
"colab": {}
},
"source": [
"import pandas as pd\n",
"combined_data = pd.read_csv('gdrive/My Drive/capstone 2/event_embedding/Thesis_data/combined_data3.csv', encoding='utf-8') \n",
"combined_data\n",
"\n",
"\n",
"path = \"gdrive/My Drive/capstone 2/\""
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "ovci8fVpZUmN",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 419
},
"outputId": "55dddc67-b92a-4cc6-a9b8-152e594441ce"
},
"source": [
"combined_data"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"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>time</th>\n",
" <th>headline</th>\n",
" <th>body</th>\n",
" <th>Price</th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Vol</th>\n",
" <th>Change</th>\n",
" <th>index</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>20050107</td>\n",
" <td>Stocks End Lower</td>\n",
" <td>Monday. Among some of the other highlights, c...</td>\n",
" <td>4.93</td>\n",
" <td>4.99</td>\n",
" <td>5.05</td>\n",
" <td>4.85</td>\n",
" <td>434.26M</td>\n",
" <td>-0.40%</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>20050107</td>\n",
" <td>Vital Signs for the Week of Jan. 10</td>\n",
" <td>Palo Alto, Calif. EARNINGS REP...</td>\n",
" <td>4.93</td>\n",
" <td>4.99</td>\n",
" <td>5.05</td>\n",
" <td>4.85</td>\n",
" <td>434.26M</td>\n",
" <td>-0.40%</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>20050110</td>\n",
" <td>Tightwad IT Buyers Loosen Up</td>\n",
" <td>plain-vanilla desktops, according to NPD Grou...</td>\n",
" <td>4.61</td>\n",
" <td>4.88</td>\n",
" <td>4.94</td>\n",
" <td>4.58</td>\n",
" <td>654.04M</td>\n",
" <td>-6.49%</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>20050110</td>\n",
" <td>Stocks Finish Slightly Higher</td>\n",
" <td>regular session. Looking ahead this wee...</td>\n",
" <td>4.61</td>\n",
" <td>4.88</td>\n",
" <td>4.94</td>\n",
" <td>4.58</td>\n",
" <td>654.04M</td>\n",
" <td>-6.49%</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>20050110</td>\n",
" <td>Commentary: The New Driver In Chipland</td>\n",
" <td>easy to see the consumer influence. Digital c...</td>\n",
" <td>4.61</td>\n",
" <td>4.88</td>\n",
" <td>4.94</td>\n",
" <td>4.58</td>\n",
" <td>654.04M</td>\n",
" <td>-6.49%</td>\n",
" <td>0</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",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24046</th>\n",
" <td>20150108</td>\n",
" <td>Israel's Water Ninja</td>\n",
" <td>influenced by his grandfather, who built Tel ...</td>\n",
" <td>112.01</td>\n",
" <td>112.67</td>\n",
" <td>113.25</td>\n",
" <td>110.21</td>\n",
" <td>53.70M</td>\n",
" <td>0.11%</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24047</th>\n",
" <td>20150108</td>\n",
" <td>What Drivers Want: Design Lessons From Ford's ...</td>\n",
" <td>faster, simpler, and easier to use. Will the ...</td>\n",
" <td>112.01</td>\n",
" <td>112.67</td>\n",
" <td>113.25</td>\n",
" <td>110.21</td>\n",
" <td>53.70M</td>\n",
" <td>0.11%</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24048</th>\n",
" <td>20150108</td>\n",
" <td>AT&amp;T May Face FCC Fine Over Mobile Data Slowdo...</td>\n",
" <td>halting the practice and millions of dollars ...</td>\n",
" <td>112.01</td>\n",
" <td>112.67</td>\n",
" <td>113.25</td>\n",
" <td>110.21</td>\n",
" <td>53.70M</td>\n",
" <td>0.11%</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24049</th>\n",
" <td>20150108</td>\n",
" <td>Is Samsung Feeling the Squeeze From Apple?</td>\n",
" <td>UBS Managing Director Steve Milunovich \\ndisc...</td>\n",
" <td>112.01</td>\n",
" <td>112.67</td>\n",
" <td>113.25</td>\n",
" <td>110.21</td>\n",
" <td>53.70M</td>\n",
" <td>0.11%</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24050</th>\n",
" <td>20150108</td>\n",
" <td>Company News: Auto Industry, U.S. Steel, Veriz...</td>\n",
" <td>billion sale to Apple last year. The complain...</td>\n",
" <td>112.01</td>\n",
" <td>112.67</td>\n",
" <td>113.25</td>\n",
" <td>110.21</td>\n",
" <td>53.70M</td>\n",
" <td>0.11%</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>24051 rows × 10 columns</p>\n",
"</div>"
],
"text/plain": [
" time ... index\n",
"0 20050107 ... 0\n",
"1 20050107 ... 0\n",
"2 20050110 ... 0\n",
"3 20050110 ... 0\n",
"4 20050110 ... 0\n",
"... ... ... ...\n",
"24046 20150108 ... 1\n",
"24047 20150108 ... 1\n",
"24048 20150108 ... 1\n",
"24049 20150108 ... 1\n",
"24050 20150108 ... 1\n",
"\n",
"[24051 rows x 10 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 3
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "XBgA_6YRv3KB",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "73a28fca-497e-4b21-a3f1-1e4de356f3e6"
},
"source": [
"%tensorflow_version 1.x\n",
"import tensorflow as tf\n",
"\n",
"import pandas as pd\n",
"import numpy as np \n",
"import re\n",
"import pickle\n",
"\n",
"import keras as keras\n",
"from keras.models import load_model\n",
"from keras import backend as K\n",
"from keras import Input, Model\n",
"from keras import optimizers\n",
"\n",
"import codecs\n",
"from tqdm import tqdm\n",
"import shutil\n",
"import warnings\n",
"import tensorflow as tf\n",
"import os\n",
"warnings.filterwarnings(action='ignore')\n",
"os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' \n",
"tf.logging.set_verbosity(tf.logging.ERROR)\n",
"\n",
"!pip install keras-bert\n",
"!pip install keras-radam"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"TensorFlow 1.x selected.\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"Collecting keras-bert\n",
" Downloading https://files.pythonhosted.org/packages/2c/0f/cdc886c1018943ea62d3209bc964413d5aa9d0eb7e493abd8545be679294/keras-bert-0.81.0.tar.gz\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from keras-bert) (1.18.4)\n",
"Requirement already satisfied: Keras in /usr/local/lib/python3.6/dist-packages (from keras-bert) (2.3.1)\n",
"Collecting keras-transformer>=0.30.0\n",
" Downloading https://files.pythonhosted.org/packages/22/b9/9040ec948ef895e71df6bee505a1f7e1c99ffedb409cb6eb329f04ece6e0/keras-transformer-0.33.0.tar.gz\n",
"Requirement already satisfied: h5py in /usr/local/lib/python3.6/dist-packages (from Keras->keras-bert) (2.10.0)\n",
"Requirement already satisfied: keras-preprocessing>=1.0.5 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-bert) (1.1.2)\n",
"Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-bert) (1.12.0)\n",
"Requirement already satisfied: scipy>=0.14 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-bert) (1.4.1)\n",
"Requirement already satisfied: keras-applications>=1.0.6 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-bert) (1.0.8)\n",
"Requirement already satisfied: pyyaml in /usr/local/lib/python3.6/dist-packages (from Keras->keras-bert) (3.13)\n",
"Collecting keras-pos-embd>=0.10.0\n",
" Downloading https://files.pythonhosted.org/packages/09/70/b63ed8fc660da2bb6ae29b9895401c628da5740c048c190b5d7107cadd02/keras-pos-embd-0.11.0.tar.gz\n",
"Collecting keras-multi-head>=0.22.0\n",
" Downloading https://files.pythonhosted.org/packages/a5/f0/a9a7528b8fefacaa9c5db736036fd8c061d754830a29c34129f6847bd338/keras-multi-head-0.24.0.tar.gz\n",
"Collecting keras-layer-normalization>=0.12.0\n",
" Downloading https://files.pythonhosted.org/packages/a4/0e/d1078df0494bac9ce1a67954e5380b6e7569668f0f3b50a9531c62c1fc4a/keras-layer-normalization-0.14.0.tar.gz\n",
"Collecting keras-position-wise-feed-forward>=0.5.0\n",
" Downloading https://files.pythonhosted.org/packages/e3/59/f0faa1037c033059e7e9e7758e6c23b4d1c0772cd48de14c4b6fd4033ad5/keras-position-wise-feed-forward-0.6.0.tar.gz\n",
"Collecting keras-embed-sim>=0.7.0\n",
" Downloading https://files.pythonhosted.org/packages/bc/20/735fd53f6896e2af63af47e212601c1b8a7a80d00b6126c388c9d1233892/keras-embed-sim-0.7.0.tar.gz\n",
"Collecting keras-self-attention==0.41.0\n",
" Downloading https://files.pythonhosted.org/packages/1b/1c/01599219bef7266fa43b3316e4f55bcb487734d3bafdc60ffd564f3cfe29/keras-self-attention-0.41.0.tar.gz\n",
"Building wheels for collected packages: keras-bert, keras-transformer, keras-pos-embd, keras-multi-head, keras-layer-normalization, keras-position-wise-feed-forward, keras-embed-sim, keras-self-attention\n",
" Building wheel for keras-bert (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-bert: filename=keras_bert-0.81.0-cp36-none-any.whl size=37913 sha256=f6e87897fa56346f3a9bd0607c976c0fb72e1d4f5d5798159416838347b34b2f\n",
" Stored in directory: /root/.cache/pip/wheels/bd/27/da/ffc2d573aa48b87440ec4f98bc7c992e3a2d899edb2d22ef9e\n",
" Building wheel for keras-transformer (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-transformer: filename=keras_transformer-0.33.0-cp36-none-any.whl size=13260 sha256=4cf6dcab922b6caf627c1ba6adc5dbe6e8e2e4d7f59247b710d043b3bc5f8da2\n",
" Stored in directory: /root/.cache/pip/wheels/26/98/13/a28402939e1d48edd8704e6b02f223795af4a706815f4bf6d8\n",
" Building wheel for keras-pos-embd (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-pos-embd: filename=keras_pos_embd-0.11.0-cp36-none-any.whl size=7554 sha256=8d7fac58ed8196ae123121c05fc80e7cdbcd03425613de81b7512c0a270a4ba2\n",
" Stored in directory: /root/.cache/pip/wheels/5b/a1/a0/ce6b1d49ba1a9a76f592e70cf297b05c96bc9f418146761032\n",
" Building wheel for keras-multi-head (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-multi-head: filename=keras_multi_head-0.24.0-cp36-none-any.whl size=15511 sha256=965f1fd64d0293581290a3590617435dce809574fa0029af5b70f2a827244133\n",
" Stored in directory: /root/.cache/pip/wheels/b6/84/01/dbcb50629030c8647a19dd0b7134574fad56c531bdb243bd20\n",
" Building wheel for keras-layer-normalization (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-layer-normalization: filename=keras_layer_normalization-0.14.0-cp36-none-any.whl size=5268 sha256=c9f4b2d27ebb8746e641efeaa10ccd6d26ccecf07851d6faebe0ffb4863deaa1\n",
" Stored in directory: /root/.cache/pip/wheels/54/80/22/a638a7d406fd155e507aa33d703e3fa2612b9eb7bb4f4fe667\n",
" Building wheel for keras-position-wise-feed-forward (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-position-wise-feed-forward: filename=keras_position_wise_feed_forward-0.6.0-cp36-none-any.whl size=5623 sha256=d502009afa989aa58bd189344430c7c5518e9465a0a1c6e4ef21d77a162d9c97\n",
" Stored in directory: /root/.cache/pip/wheels/39/e2/e2/3514fef126a00574b13bc0b9e23891800158df3a3c19c96e3b\n",
" Building wheel for keras-embed-sim (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-embed-sim: filename=keras_embed_sim-0.7.0-cp36-none-any.whl size=4676 sha256=c7445fbf736a11babf19d02ddb3d76f098a00706c800f3080ebc9a55745ca146\n",
" Stored in directory: /root/.cache/pip/wheels/d1/bc/b1/b0c45cee4ca2e6c86586b0218ffafe7f0703c6d07fdf049866\n",
" Building wheel for keras-self-attention (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-self-attention: filename=keras_self_attention-0.41.0-cp36-none-any.whl size=17288 sha256=bdeda9b286ae3be34885c5183effca526d866cba7dd00c740f02eb340e1fab42\n",
" Stored in directory: /root/.cache/pip/wheels/cc/dc/17/84258b27a04cd38ac91998abe148203720ca696186635db694\n",
"Successfully built keras-bert keras-transformer keras-pos-embd keras-multi-head keras-layer-normalization keras-position-wise-feed-forward keras-embed-sim keras-self-attention\n",
"Installing collected packages: keras-pos-embd, keras-self-attention, keras-multi-head, keras-layer-normalization, keras-position-wise-feed-forward, keras-embed-sim, keras-transformer, keras-bert\n",
"Successfully installed keras-bert-0.81.0 keras-embed-sim-0.7.0 keras-layer-normalization-0.14.0 keras-multi-head-0.24.0 keras-pos-embd-0.11.0 keras-position-wise-feed-forward-0.6.0 keras-self-attention-0.41.0 keras-transformer-0.33.0\n",
"Collecting keras-radam\n",
" Downloading https://files.pythonhosted.org/packages/46/8d/b83ccaa94253fbc920b21981f038393041d92236bb541751b98a66a2ac1d/keras-radam-0.15.0.tar.gz\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from keras-radam) (1.18.4)\n",
"Requirement already satisfied: Keras in /usr/local/lib/python3.6/dist-packages (from keras-radam) (2.3.1)\n",
"Requirement already satisfied: h5py in /usr/local/lib/python3.6/dist-packages (from Keras->keras-radam) (2.10.0)\n",
"Requirement already satisfied: scipy>=0.14 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-radam) (1.4.1)\n",
"Requirement already satisfied: pyyaml in /usr/local/lib/python3.6/dist-packages (from Keras->keras-radam) (3.13)\n",
"Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-radam) (1.12.0)\n",
"Requirement already satisfied: keras-applications>=1.0.6 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-radam) (1.0.8)\n",
"Requirement already satisfied: keras-preprocessing>=1.0.5 in /usr/local/lib/python3.6/dist-packages (from Keras->keras-radam) (1.1.2)\n",
"Building wheels for collected packages: keras-radam\n",
" Building wheel for keras-radam (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for keras-radam: filename=keras_radam-0.15.0-cp36-none-any.whl size=14685 sha256=60abbb595b856dbbf59934ad85b8754fc6d57e41d84bce2fee5b922a3717fc8a\n",
" Stored in directory: /root/.cache/pip/wheels/79/a0/c0/670b0a118e8f078539fafec7bd02eba0af921f745660c7f83f\n",
"Successfully built keras-radam\n",
"Installing collected packages: keras-radam\n",
"Successfully installed keras-radam-0.15.0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "V7_zjhL5wGeB",
"colab_type": "code",
"colab": {}
},
"source": [
"from keras_bert import load_trained_model_from_checkpoint, load_vocabulary\n",
"from keras_bert import Tokenizer\n",
"from keras_bert import AdamWarmup, calc_train_steps\n",
"\n",
"from keras_radam import RAdam"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "RE5pjPZjwG3q",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 102
},
"outputId": "2b293bd2-7d77-4a03-a8fe-af5896058933"
},
"source": [
"os.listdir(path+'/bert')"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"['bert_config.json',\n",
" 'vocab.txt',\n",
" 'bert_model.ckpt.index',\n",
" 'bert_model.ckpt.data-00000-of-00001',\n",
" 'bert_model.ckpt.meta']"
]
},
"metadata": {
"tags": []
},
"execution_count": 6
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "yWqOLyGWwIMf",
"colab_type": "code",
"colab": {}
},
"source": [
"SEQ_LEN = 256\n",
"BATCH_SIZE = 8\n",
"EPOCHS=2\n",
"LR=1e-5\n",
"\n",
"pretrained_path = path+\"/bert\"\n",
"config_path = os.path.join(pretrained_path, 'bert_config.json')\n",
"checkpoint_path = os.path.join(pretrained_path, 'bert_model.ckpt')\n",
"vocab_path = os.path.join(pretrained_path, 'vocab.txt')\n",
"\n",
"DATA_COLUMN = \"body\"\n",
"LABEL_COLUMN = \"index\""
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "G4E3vhF5wKmg",
"colab_type": "code",
"colab": {}
},
"source": [
"token_dict = {}\n",
"with codecs.open(vocab_path, 'r', 'utf8') as reader:\n",
" for line in reader:\n",
" token = line.strip()\n",
" if \"_\" in token:\n",
" token = token.replace(\"_\",\"\")\n",
" token = \"##\" + token\n",
" token_dict[token] = len(token_dict)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "c5a7hPzfwRcr",
"colab_type": "code",
"colab": {}
},
"source": [
"tokenizer = Tokenizer(token_dict)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "vehabKa5wTKG",
"colab_type": "code",
"colab": {}
},
"source": [
"def convert_data(data_df):\n",
" global tokenizer\n",
" indices, targets = [], []\n",
" for i in tqdm(range(len(data_df))):\n",
" ids, segments = tokenizer.encode((data_df.iloc[i])[DATA_COLUMN], max_len=SEQ_LEN)\n",
" indices.append(ids)\n",
" targets.append((data_df.iloc[i])[LABEL_COLUMN])\n",
" items = list(zip(indices, targets))\n",
" \n",
" indices, targets = zip(*items)\n",
" indices = np.array(indices)\n",
" return [indices, np.zeros_like(indices)], np.array(targets)\n",
"\n",
"def load_data(pandas_dataframe):\n",
" data_df = pandas_dataframe\n",
" # data_df[\"actor\"] = data_df[\"actor\"].astype(str)\n",
" # data_df[\"action\"] = data_df[\"action\"].astype(str)\n",
" # data_df[\"object\"] = data_df[\"object\"].astype(str)\n",
" data_x, data_y = convert_data(data_df)\n",
"\n",
" return data_x, data_y"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "V8xrXJlywXG-",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
},
"outputId": "1c560b33-635a-4eca-df3c-eae387590031"
},
"source": [
"from sklearn.model_selection import train_test_split\n",
"train,val = train_test_split(combined_data,test_size = 0.2)\n",
"\n",
"train_x, train_y = load_data(train)\n",
"test_x, test_y = load_data(val)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"100%|██████████| 19240/19240 [00:14<00:00, 1307.17it/s]\n",
"100%|██████████| 4811/4811 [00:03<00:00, 1265.52it/s]\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "VyyTba9swZgM",
"colab_type": "code",
"colab": {}
},
"source": [
"layer_num = 12\n",
"model = load_trained_model_from_checkpoint(\n",
" config_path,\n",
" checkpoint_path,\n",
" training=True,\n",
" trainable=True,\n",
" seq_len=SEQ_LEN,)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "7jO_vzY6w_qa",
"colab_type": "code",
"colab": {}
},
"source": [
"from keras.callbacks import ModelCheckpoint, EarlyStopping\n",
"def recall(y_true, y_pred):\n",
" \"\"\"Recall metric.\n",
"\n",
" Only computes a batch-wise average of recall.\n",
"\n",
" Computes the recall, a metric for multi-label classification of\n",
" how many relevant items are selected.\n",
" \"\"\"\n",
" true_positives = K.sum(K.round(K.clip(y_true[:, 0] * y_pred[:, 0], 0, 1)))\n",
" possible_positives = K.sum(K.round(K.clip(y_true[:, 0], 0, 1)))\n",
" recall = true_positives / (possible_positives + K.epsilon())\n",
" return recall\n",
"\n",
"\n",
"def precision(y_true, y_pred):\n",
" \"\"\"Precision metric.\n",
"\n",
" Only computes a batch-wise average of precision.\n",
"\n",
" Computes the precision, a metric for multi-label classification of\n",
" how many selected items are relevant.\n",
" \"\"\"\n",
" true_positives = K.sum(K.round(K.clip(y_true[:, 0] * y_pred[:, 0], 0, 1)))\n",
" predicted_positives = K.sum(K.round(K.clip(y_pred[:, 0], 0, 1)))\n",
" precision = true_positives / (predicted_positives + K.epsilon())\n",
" return precision\n",
"\n",
"\n",
"def fbeta_score(y_true, y_pred):\n",
"\n",
" # If there are no true positives, fix the F score at 0 like sklearn.\n",
" if K.sum(K.round(K.clip(y_true, 0, 1))) == 0:\n",
" return 0\n",
"\n",
" p = precision(y_true, y_pred)\n",
" r = recall(y_true, y_pred)\n",
" bb = 1 ** 2\n",
" fbeta_score = (1 + bb) * (p * r) / (bb * p + r + K.epsilon())\n",
" return fbeta_score\n",
"\n",
"def get_bert_finetuning_model(model):\n",
" inputs = model.inputs[:2]\n",
" dense = model.layers[-3].output\n",
"\n",
" outputs = keras.layers.Dense(1, activation='sigmoid',kernel_initializer=keras.initializers.TruncatedNormal(stddev=0.02),\n",
" name = 'real_output')(dense)\n",
"\n",
"\n",
"\n",
" bert_model = keras.models.Model(inputs, outputs)\n",
" bert_model.compile(\n",
" optimizer=RAdam(learning_rate=0.00001, weight_decay=0.0025),\n",
" loss='binary_crossentropy',\n",
" metrics=['accuracy', recall, precision, fbeta_score])\n",
" \n",
" return bert_model\n",
" \n",
"model_name = path + \"event_news_label_bert.h5\"\n",
"checkpointer = ModelCheckpoint(filepath=model_name,\n",
" monitor='val_fbeta_score', mode=\"max\",\n",
" verbose=2, save_best_only=True)\n",
"earlystopper = EarlyStopping(monitor='val_loss', patience=20, verbose=2, mode = \"min\")"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "XQDRjG2vbKKs",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 938
},
"outputId": "7fbefaa0-2ad0-4c1d-d486-27379af24381"
},
"source": [
"with K.tensorflow_backend.tf.device('/gpu:0'):\n",
" sess = K.get_session()\n",
" uninitialized_variables = set([i.decode('ascii') for i in sess.run(tf.report_uninitialized_variables())])\n",
" init = tf.variables_initializer([v for v in tf.global_variables() if v.name.split(':')[0] in uninitialized_variables])\n",
" sess.run(init)\n",
"\n",
" bert_model = get_bert_finetuning_model(model)\n",
" history = bert_model.fit(train_x, train_y, epochs=30, batch_size=16, verbose = 1, validation_data=(test_x, test_y))\n",
" bert_model.save_weights(\"gdrive/My Drive/body_bert_256_epoch30.h5\")"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Train on 19240 samples, validate on 4811 samples\n",
"Epoch 1/30\n",
"19240/19240 [==============================] - 1236s 64ms/step - loss: 0.6922 - accuracy: 0.5271 - recall: 0.9021 - precision: 0.5280 - fbeta_score: 0.6416 - val_loss: 0.6910 - val_accuracy: 0.5340 - val_recall: 1.0000 - val_precision: 0.5341 - val_fbeta_score: 0.6876\n",
"Epoch 2/30\n",
"19240/19240 [==============================] - 1228s 64ms/step - loss: 0.6914 - accuracy: 0.5291 - recall: 0.8927 - precision: 0.5204 - fbeta_score: 0.6347 - val_loss: 0.6919 - val_accuracy: 0.5340 - val_recall: 1.0000 - val_precision: 0.5341 - val_fbeta_score: 0.6876\n",
"Epoch 3/30\n",
"19240/19240 [==============================] - 1230s 64ms/step - loss: 0.6861 - accuracy: 0.5491 - recall: 0.7746 - precision: 0.5634 - fbeta_score: 0.6203 - val_loss: 0.6902 - val_accuracy: 0.5309 - val_recall: 0.7255 - val_precision: 0.5468 - val_fbeta_score: 0.6113\n",
"Epoch 4/30\n",
"19240/19240 [==============================] - 1230s 64ms/step - loss: 0.6125 - accuracy: 0.6657 - recall: 0.7281 - precision: 0.6842 - fbeta_score: 0.6798 - val_loss: 0.7663 - val_accuracy: 0.5259 - val_recall: 0.4899 - val_precision: 0.5644 - val_fbeta_score: 0.5093\n",
"Epoch 5/30\n",
"19240/19240 [==============================] - 1229s 64ms/step - loss: 0.3738 - accuracy: 0.8379 - recall: 0.8502 - precision: 0.8488 - fbeta_score: 0.8387 - val_loss: 1.0253 - val_accuracy: 0.5329 - val_recall: 0.6017 - val_precision: 0.5592 - val_fbeta_score: 0.5647\n",
"Epoch 6/30\n",
"19240/19240 [==============================] - 1229s 64ms/step - loss: 0.1909 - accuracy: 0.9276 - recall: 0.9332 - precision: 0.9313 - fbeta_score: 0.9271 - val_loss: 1.3036 - val_accuracy: 0.5319 - val_recall: 0.5900 - val_precision: 0.5597 - val_fbeta_score: 0.5601\n",
"Epoch 7/30\n",
"19240/19240 [==============================] - 1229s 64ms/step - loss: 0.1249 - accuracy: 0.9540 - recall: 0.9576 - precision: 0.9573 - fbeta_score: 0.9544 - val_loss: 1.6319 - val_accuracy: 0.5404 - val_recall: 0.6667 - val_precision: 0.5567 - val_fbeta_score: 0.5950\n",
"Epoch 8/30\n",
"19240/19240 [==============================] - 1229s 64ms/step - loss: 0.0950 - accuracy: 0.9663 - recall: 0.9678 - precision: 0.9675 - fbeta_score: 0.9655 - val_loss: 1.7987 - val_accuracy: 0.5383 - val_recall: 0.5949 - val_precision: 0.5670 - val_fbeta_score: 0.5654\n",
"Epoch 9/30\n",
"19240/19240 [==============================] - 1230s 64ms/step - loss: 0.0802 - accuracy: 0.9715 - recall: 0.9726 - precision: 0.9745 - fbeta_score: 0.9717 - val_loss: 1.8214 - val_accuracy: 0.5311 - val_recall: 0.5689 - val_precision: 0.5639 - val_fbeta_score: 0.5503\n",
"Epoch 10/30\n",
"19240/19240 [==============================] - 1229s 64ms/step - loss: 0.0726 - accuracy: 0.9730 - recall: 0.9738 - precision: 0.9757 - fbeta_score: 0.9730 - val_loss: 1.9001 - val_accuracy: 0.5417 - val_recall: 0.6549 - val_precision: 0.5639 - val_fbeta_score: 0.5913\n",
"Epoch 11/30\n",
"19240/19240 [==============================] - 1229s 64ms/step - loss: 0.0618 - accuracy: 0.9768 - recall: 0.9769 - precision: 0.9794 - fbeta_score: 0.9767 - val_loss: 1.9707 - val_accuracy: 0.5350 - val_recall: 0.6545 - val_precision: 0.5576 - val_fbeta_score: 0.5870\n",
"Epoch 12/30\n",
"19240/19240 [==============================] - 1230s 64ms/step - loss: 0.0607 - accuracy: 0.9779 - recall: 0.9785 - precision: 0.9805 - fbeta_score: 0.9780 - val_loss: 1.9424 - val_accuracy: 0.5371 - val_recall: 0.5922 - val_precision: 0.5664 - val_fbeta_score: 0.5638\n",
"Epoch 13/30\n",
"19240/19240 [==============================] - 1230s 64ms/step - loss: 0.0521 - accuracy: 0.9796 - recall: 0.9808 - precision: 0.9814 - fbeta_score: 0.9798 - val_loss: 2.2737 - val_accuracy: 0.5383 - val_recall: 0.6275 - val_precision: 0.5605 - val_fbeta_score: 0.5782\n",
"Epoch 14/30\n",
"19240/19240 [==============================] - 1230s 64ms/step - loss: 0.0514 - accuracy: 0.9797 - recall: 0.9803 - precision: 0.9818 - fbeta_score: 0.9797 - val_loss: 1.9318 - val_accuracy: 0.5309 - val_recall: 0.5317 - val_precision: 0.5681 - val_fbeta_score: 0.5332\n",
"Epoch 15/30\n",
"19240/19240 [==============================] - 1230s 64ms/step - loss: 0.0449 - accuracy: 0.9813 - recall: 0.9797 - precision: 0.9844 - fbeta_score: 0.9808 - val_loss: 2.3235 - val_accuracy: 0.5277 - val_recall: 0.4475 - val_precision: 0.5793 - val_fbeta_score: 0.4868\n",
"Epoch 16/30\n",
"19240/19240 [==============================] - 1231s 64ms/step - loss: 0.0445 - accuracy: 0.9824 - recall: 0.9824 - precision: 0.9850 - fbeta_score: 0.9827 - val_loss: 2.1759 - val_accuracy: 0.5340 - val_recall: 0.4795 - val_precision: 0.5824 - val_fbeta_score: 0.5076\n",
"Epoch 17/30\n",
"19240/19240 [==============================] - 1231s 64ms/step - loss: 0.0412 - accuracy: 0.9827 - recall: 0.9822 - precision: 0.9854 - fbeta_score: 0.9827 - val_loss: 2.1135 - val_accuracy: 0.5390 - val_recall: 0.6302 - val_precision: 0.5630 - val_fbeta_score: 0.5813\n",
"Epoch 18/30\n",
"19240/19240 [==============================] - 1230s 64ms/step - loss: 0.0418 - accuracy: 0.9828 - recall: 0.9826 - precision: 0.9852 - fbeta_score: 0.9828 - val_loss: 2.2571 - val_accuracy: 0.5394 - val_recall: 0.6241 - val_precision: 0.5648 - val_fbeta_score: 0.5785\n",
"Epoch 19/30\n",
"19240/19240 [==============================] - 1229s 64ms/step - loss: 0.0375 - accuracy: 0.9839 - recall: 0.9837 - precision: 0.9863 - fbeta_score: 0.9839 - val_loss: 2.4486 - val_accuracy: 0.5427 - val_recall: 0.6864 - val_precision: 0.5607 - val_fbeta_score: 0.6030\n",
"Epoch 20/30\n",
"19240/19240 [==============================] - 1230s 64ms/step - loss: 0.0390 - accuracy: 0.9837 - recall: 0.9828 - precision: 0.9865 - fbeta_score: 0.9836 - val_loss: 2.3747 - val_accuracy: 0.5321 - val_recall: 0.5468 - val_precision: 0.5661 - val_fbeta_score: 0.5405\n",
"Epoch 21/30\n",
"19240/19240 [==============================] - 1231s 64ms/step - loss: 0.0347 - accuracy: 0.9852 - recall: 0.9846 - precision: 0.9878 - fbeta_score: 0.9854 - val_loss: 2.3107 - val_accuracy: 0.5375 - val_recall: 0.5940 - val_precision: 0.5656 - val_fbeta_score: 0.5647\n",
"Epoch 22/30\n",
"19240/19240 [==============================] - 1231s 64ms/step - loss: 0.0356 - accuracy: 0.9854 - recall: 0.9844 - precision: 0.9877 - fbeta_score: 0.9850 - val_loss: 2.4489 - val_accuracy: 0.5371 - val_recall: 0.6188 - val_precision: 0.5599 - val_fbeta_score: 0.5741\n",
"Epoch 23/30\n",
"19240/19240 [==============================] - 1230s 64ms/step - loss: 0.0368 - accuracy: 0.9837 - recall: 0.9825 - precision: 0.9863 - fbeta_score: 0.9832 - val_loss: 2.1525 - val_accuracy: 0.5271 - val_recall: 0.4709 - val_precision: 0.5715 - val_fbeta_score: 0.4996\n",
"Epoch 24/30\n",
"19240/19240 [==============================] - 1231s 64ms/step - loss: 0.0341 - accuracy: 0.9845 - recall: 0.9841 - precision: 0.9870 - fbeta_score: 0.9846 - val_loss: 2.1537 - val_accuracy: 0.5271 - val_recall: 0.5332 - val_precision: 0.5623 - val_fbeta_score: 0.5319\n",
"Epoch 25/30\n",
"19240/19240 [==============================] - 1231s 64ms/step - loss: 0.0313 - accuracy: 0.9857 - recall: 0.9853 - precision: 0.9879 - fbeta_score: 0.9856 - val_loss: 2.4771 - val_accuracy: 0.5309 - val_recall: 0.6418 - val_precision: 0.5529 - val_fbeta_score: 0.5808\n",
"Epoch 26/30\n",
"15408/19240 [=======================>......] - ETA: 3:48 - loss: 0.0320 - accuracy: 0.9859 - recall: 0.9857 - precision: 0.9883 - fbeta_score: 0.9861"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "jBpYE9eVxfXv",
"colab_type": "code",
"colab": {}
},
"source": [
"test = pd.read_csv('gdrive/My Drive/capstone 2/event_embedding/Thesis_data/combined_data2015.csv', encoding='utf-8') "
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "NQu0eoaWxfsv",
"colab_type": "code",
"colab": {}
},
"source": [
"def predict_convert_data(data_df):\n",
" global tokenizer\n",
" indices = []\n",
" for i in tqdm(range(len(data_df))):\n",
" ids, segments = tokenizer.encode(data_df[DATA_COLUMN][i], max_len=SEQ_LEN)\n",
" indices.append(ids)\n",
" \n",
" items = indices\n",
" \n",
" \n",
" indices = np.array(indices)\n",
" return [indices, np.zeros_like(indices)]\n",
"\n",
"def predict_load_data(x): #Pandas Dataframe을 인풋으로 받는다\n",
" data_df = x\n",
" data_df[DATA_COLUMN] = data_df[DATA_COLUMN].astype(str)\n",
" data_x = predict_convert_data(data_df)\n",
"\n",
" return data_x"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "DBY60yKJxnKL",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "87137a7f-a38e-4fe4-b29b-cfd867cedd80"
},
"source": [
"test_set = predict_load_data(test)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"100%|██████████| 3692/3692 [00:01<00:00, 2567.73it/s]\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "yuZyrVFCo6_9",
"colab_type": "text"
},
"source": [
"# Body 128"
]
},
{
"cell_type": "code",
"metadata": {
"id": "jf9yeGiVbFxO",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 170
},
"outputId": "67adb4d9-670c-41e5-f0ac-d20e1c6caae2"
},
"source": [
"bert_model = get_bert_finetuning_model(model)\n",
"bert_model.load_weights(\"gdrive/My Drive/body_bert.h5\")\n",
"preds = bert_model.predict(test_set)\n",
"from sklearn.metrics import classification_report\n",
"y_true = test['index']\n",
"# F1 Score 확인\n",
"print(classification_report(y_true, np.round(preds,0)))"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.51 0.24 0.33 1867\n",
" 1 0.50 0.76 0.60 1825\n",
"\n",
" accuracy 0.50 3692\n",
" macro avg 0.51 0.50 0.47 3692\n",
"weighted avg 0.51 0.50 0.46 3692\n",
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "CNChuUzCbY3t",
"colab_type": "text"
},
"source": [
"# Body 256 epoch 3"
]
},
{
"cell_type": "code",
"metadata": {
"id": "y3l9jap3xpFB",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 170
},
"outputId": "5c1f17cb-0f0c-4899-b1bf-e4db6dfceb3a"
},
"source": [
"bert_model = get_bert_finetuning_model(model)\n",
"bert_model.load_weights(path+\"body_bert_512.h5\")\n",
"preds = bert_model.predict(test_set)\n",
"from sklearn.metrics import classification_report\n",
"y_true = test['index']\n",
"# F1 Score 확인\n",
"print(classification_report(y_true, np.round(preds,0)))"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.48 0.22 0.30 1867\n",
" 1 0.49 0.76 0.59 1825\n",
"\n",
" accuracy 0.49 3692\n",
" macro avg 0.48 0.49 0.45 3692\n",
"weighted avg 0.48 0.49 0.45 3692\n",
"\n"
],
"name": "stdout"
}
]
}
]
}
\ No newline at end of file
This diff could not be displayed because it is too large.
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "bert word embedding.ipynb",
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"0488e2a159f94f1e8fd2d95cfa1f0c00": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
"_view_name": "HBoxView",
"_dom_classes": [],
"_model_name": "HBoxModel",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
"layout": "IPY_MODEL_f6b7f67b13a94abe81c8f311f5d9584e",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_182e7f63a7a747be9806d768c59ac8ed",
"IPY_MODEL_89484e917aaf4be7b9c1fd73542101ec"
]
}
},
"f6b7f67b13a94abe81c8f311f5d9584e": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"182e7f63a7a747be9806d768c59ac8ed": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_e3002daa07f44aa296d26fc14e9e5c10",
"_dom_classes": [],
"description": "Downloading: 100%",
"_model_name": "FloatProgressModel",
"bar_style": "success",
"max": 213450,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 213450,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_03e4968cf76248429f98b73ef104941b"
}
},
"89484e917aaf4be7b9c1fd73542101ec": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_33057b5773f04ab8a43d33eed74453bb",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "​",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 213k/213k [00:00&lt;00:00, 615kB/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_865728d013634aeaa7705c7350d86541"
}
},
"e3002daa07f44aa296d26fc14e9e5c10": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "initial",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"bar_color": null,
"_model_module": "@jupyter-widgets/controls"
}
},
"03e4968cf76248429f98b73ef104941b": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"33057b5773f04ab8a43d33eed74453bb": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"865728d013634aeaa7705c7350d86541": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"b3cf8354fb91443db5657239b1631db1": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
"_view_name": "HBoxView",
"_dom_classes": [],
"_model_name": "HBoxModel",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
"layout": "IPY_MODEL_dca67a11598049b5b6a2e87b1d1d9724",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_ad4a891b74304e5cafc91dcac6f1aa71",
"IPY_MODEL_3ecdbfd3ce6c4e64ae31985197903358"
]
}
},
"dca67a11598049b5b6a2e87b1d1d9724": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"ad4a891b74304e5cafc91dcac6f1aa71": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_cec8ee3dd75a468d985fb9d2c17cd7f7",
"_dom_classes": [],
"description": "Downloading: 100%",
"_model_name": "FloatProgressModel",
"bar_style": "success",
"max": 433,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 433,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_58100c551b1d4dd683e9bfb2c4059022"
}
},
"3ecdbfd3ce6c4e64ae31985197903358": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_1c55789eede0464f85386b4e41c46c06",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "​",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 433/433 [00:12&lt;00:00, 35.2B/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_b5def479898f453fb51cd221ff78b1e4"
}
},
"cec8ee3dd75a468d985fb9d2c17cd7f7": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "initial",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"bar_color": null,
"_model_module": "@jupyter-widgets/controls"
}
},
"58100c551b1d4dd683e9bfb2c4059022": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"1c55789eede0464f85386b4e41c46c06": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"b5def479898f453fb51cd221ff78b1e4": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"7e00f631bf7c4557bcaeea97f26b3bb8": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HBoxModel",
"state": {
"_view_name": "HBoxView",
"_dom_classes": [],
"_model_name": "HBoxModel",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.5.0",
"box_style": "",
"layout": "IPY_MODEL_ca6631cb27f941fa92a7ff08cfb5fdde",
"_model_module": "@jupyter-widgets/controls",
"children": [
"IPY_MODEL_d97d7a015ffa428696024cef965e789d",
"IPY_MODEL_716a044bb3ad4f2081d064d690d40fd9"
]
}
},
"ca6631cb27f941fa92a7ff08cfb5fdde": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"d97d7a015ffa428696024cef965e789d": {
"model_module": "@jupyter-widgets/controls",
"model_name": "FloatProgressModel",
"state": {
"_view_name": "ProgressView",
"style": "IPY_MODEL_14c4dc6f2e3b48aa924966e737ed73ff",
"_dom_classes": [],
"description": "Downloading: 100%",
"_model_name": "FloatProgressModel",
"bar_style": "success",
"max": 435779157,
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": 435779157,
"_view_count": null,
"_view_module_version": "1.5.0",
"orientation": "horizontal",
"min": 0,
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_2df44811e03f4474ab053a62de70c160"
}
},
"716a044bb3ad4f2081d064d690d40fd9": {
"model_module": "@jupyter-widgets/controls",
"model_name": "HTMLModel",
"state": {
"_view_name": "HTMLView",
"style": "IPY_MODEL_dcc537362666468c8994a0eca019d05c",
"_dom_classes": [],
"description": "",
"_model_name": "HTMLModel",
"placeholder": "​",
"_view_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"value": " 436M/436M [00:12&lt;00:00, 36.1MB/s]",
"_view_count": null,
"_view_module_version": "1.5.0",
"description_tooltip": null,
"_model_module": "@jupyter-widgets/controls",
"layout": "IPY_MODEL_2eb87bd2ec0a4382b77b8562d0ac8dc8"
}
},
"14c4dc6f2e3b48aa924966e737ed73ff": {
"model_module": "@jupyter-widgets/controls",
"model_name": "ProgressStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "ProgressStyleModel",
"description_width": "initial",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"bar_color": null,
"_model_module": "@jupyter-widgets/controls"
}
},
"2df44811e03f4474ab053a62de70c160": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
},
"dcc537362666468c8994a0eca019d05c": {
"model_module": "@jupyter-widgets/controls",
"model_name": "DescriptionStyleModel",
"state": {
"_view_name": "StyleView",
"_model_name": "DescriptionStyleModel",
"description_width": "",
"_view_module": "@jupyter-widgets/base",
"_model_module_version": "1.5.0",
"_view_count": null,
"_view_module_version": "1.2.0",
"_model_module": "@jupyter-widgets/controls"
}
},
"2eb87bd2ec0a4382b77b8562d0ac8dc8": {
"model_module": "@jupyter-widgets/base",
"model_name": "LayoutModel",
"state": {
"_view_name": "LayoutView",
"grid_template_rows": null,
"right": null,
"justify_content": null,
"_view_module": "@jupyter-widgets/base",
"overflow": null,
"_model_module_version": "1.2.0",
"_view_count": null,
"flex_flow": null,
"width": null,
"min_width": null,
"border": null,
"align_items": null,
"bottom": null,
"_model_module": "@jupyter-widgets/base",
"top": null,
"grid_column": null,
"overflow_y": null,
"overflow_x": null,
"grid_auto_flow": null,
"grid_area": null,
"grid_template_columns": null,
"flex": null,
"_model_name": "LayoutModel",
"justify_items": null,
"grid_row": null,
"max_height": null,
"align_content": null,
"visibility": null,
"align_self": null,
"height": null,
"min_height": null,
"padding": null,
"grid_auto_rows": null,
"grid_gap": null,
"max_width": null,
"order": null,
"_view_module_version": "1.2.0",
"grid_template_areas": null,
"object_position": null,
"object_fit": null,
"grid_auto_columns": null,
"margin": null,
"display": null,
"left": null
}
}
}
}
},
"cells": [
{
"cell_type": "code",
"metadata": {
"id": "N3qUV5UzKg0E",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 122
},
"outputId": "80f26292-1a7c-4f58-de91-810f46f754fc"
},
"source": [
"from google.colab import auth\n",
"auth.authenticate_user()\n",
"\n",
"from google.colab import drive\n",
"drive.mount('/content/gdrive')"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly\n",
"\n",
"Enter your authorization code:\n",
"··········\n",
"Mounted at /content/gdrive\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "VWsgaghyKio5",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
},
"outputId": "cce2685d-a26e-4924-d908-2e135107e7eb"
},
"source": [
"import pandas as pd\n",
"combined_data = pd.read_csv('gdrive/My Drive/capstone 2/event_embedding/Thesis_data/keyword_data2.csv', encoding='utf-8') \n",
"test_data = pd.read_csv('gdrive/My Drive/capstone 2/event_embedding/Thesis_data/keyword_data2015.csv', encoding='utf-8') \n",
"\n",
"combined_data\n",
"\n",
"print(len(combined_data))\n",
"print(len(test_data))\n",
"path = \"gdrive/My Drive/capstone 2/\""
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"2427\n",
"253\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "s89npKfoxupw",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 419
},
"outputId": "555fd7a1-e95f-4fb7-8de4-c2f9c0fa5546"
},
"source": [
"combined_data"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"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>date</th>\n",
" <th>title</th>\n",
" <th>price</th>\n",
" <th>open</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>volume</th>\n",
" <th>change</th>\n",
" <th>index</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>20050107</td>\n",
" <td>Stocks End Lower Vital Signs for the Week of J...</td>\n",
" <td>4.93</td>\n",
" <td>4.99</td>\n",
" <td>5.05</td>\n",
" <td>4.85</td>\n",
" <td>434.26M</td>\n",
" <td>-0.40%</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>20050110</td>\n",
" <td>Tightwad IT Buyers Loosen Up Stocks Finish Sli...</td>\n",
" <td>4.61</td>\n",
" <td>4.88</td>\n",
" <td>4.94</td>\n",
" <td>4.58</td>\n",
" <td>654.04M</td>\n",
" <td>-6.49%</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>20050111</td>\n",
" <td>Stocks Finish Lower Tech Stocks' Date with Rea...</td>\n",
" <td>4.68</td>\n",
" <td>4.67</td>\n",
" <td>4.71</td>\n",
" <td>4.52</td>\n",
" <td>507.50M</td>\n",
" <td>1.52%</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>20050112</td>\n",
" <td>Apple Beats the Street The 90% Solution to IP ...</td>\n",
" <td>4.99</td>\n",
" <td>5.26</td>\n",
" <td>5.32</td>\n",
" <td>4.98</td>\n",
" <td>792.41M</td>\n",
" <td>6.62%</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>20050113</td>\n",
" <td>Sun Micro Misses Revenue Estimates Prudential ...</td>\n",
" <td>5.01</td>\n",
" <td>5.01</td>\n",
" <td>5.12</td>\n",
" <td>4.94</td>\n",
" <td>442.85M</td>\n",
" <td>0.40%</td>\n",
" <td>1</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>2422</th>\n",
" <td>20150102</td>\n",
" <td>‘Van Gogh or Van Goo’ Matters Little to Billio...</td>\n",
" <td>106.25</td>\n",
" <td>108.29</td>\n",
" <td>108.65</td>\n",
" <td>105.41</td>\n",
" <td>64.29M</td>\n",
" <td>-2.82%</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2423</th>\n",
" <td>20150105</td>\n",
" <td>Berkshire Soars as Buffett Shifts Focus to Tak...</td>\n",
" <td>106.26</td>\n",
" <td>106.54</td>\n",
" <td>107.43</td>\n",
" <td>104.63</td>\n",
" <td>65.80M</td>\n",
" <td>0.01%</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2424</th>\n",
" <td>20150106</td>\n",
" <td>HTC Posts First Sales Growth in 3 Years on New...</td>\n",
" <td>107.75</td>\n",
" <td>107.20</td>\n",
" <td>108.20</td>\n",
" <td>106.69</td>\n",
" <td>40.11M</td>\n",
" <td>1.40%</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2425</th>\n",
" <td>20150107</td>\n",
" <td>Intel CEO Krzanich Shows off Wearable Chipset,...</td>\n",
" <td>111.89</td>\n",
" <td>109.23</td>\n",
" <td>112.15</td>\n",
" <td>108.70</td>\n",
" <td>59.36M</td>\n",
" <td>3.84%</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2426</th>\n",
" <td>20150108</td>\n",
" <td>Xiaomi Buying Spree Gives Apple, Samsung Reaso...</td>\n",
" <td>112.01</td>\n",
" <td>112.67</td>\n",
" <td>113.25</td>\n",
" <td>110.21</td>\n",
" <td>53.70M</td>\n",
" <td>0.11%</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2427 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" date ... index\n",
"0 20050107 ... 0\n",
"1 20050110 ... 0\n",
"2 20050111 ... 1\n",
"3 20050112 ... 1\n",
"4 20050113 ... 1\n",
"... ... ... ...\n",
"2422 20150102 ... 0\n",
"2423 20150105 ... 1\n",
"2424 20150106 ... 1\n",
"2425 20150107 ... 1\n",
"2426 20150108 ... 1\n",
"\n",
"[2427 rows x 9 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 3
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "2OsBf-PiSF_1",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 265
},
"outputId": "7cd8ac0b-b226-48d6-dd30-bbb0268f3349"
},
"source": [
"lenlist = []\n",
"\n",
"for _,item in enumerate(combined_data[\"title\"]):\n",
" lenlist.append(len(item))\n",
"\n",
"import matplotlib.pyplot as plt\n",
"n, bins, patches = plt.hist(lenlist, bins=10)\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD4CAYAAAAAczaOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAARy0lEQVR4nO3df4ylV13H8ffHXVoQlN22k6bubtxFN5pKEJq11mCIYbW0hbg1qaTEyIpNNmpRFA1sJbH+CEnxV5UEa1ZaWJQAtWK6kSqubQ3xjxamUEp/UDqWYnfTdgf6Q5EAVr/+cc/AZZjZ7dw7c+d2z/uV3NzznOfc+3zn7Mxnnj33uXdSVUiS+vAd612AJGlyDH1J6oihL0kdMfQlqSOGviR1ZON6F3A8Z5xxRm3fvn29y5CkZ5U77rjji1U1s9S+qQ797du3Mzs7u95lSNKzSpIvLLfP5R1J6oihL0kdMfQlqSOGviR1xNCXpI4Y+pLUEUNfkjpi6EtSRwx9SerIVL8jd1zb939kXY770FWvXpfjStKJeKYvSR05YegnuS7JsSR3D/X9UZLPJrkryd8n2TS074okc0nuT/Kqof4LWt9ckv2r/6VIkk7kmZzpvxe4YFHfYeDFVfUS4HPAFQBJzgYuBX6oPeYvkmxIsgF4F3AhcDbwujZWkjRBJwz9qvoY8Piivn+uqqfb5m3A1tbeA3ywqr5WVZ8H5oBz222uqh6sqq8DH2xjJUkTtBpr+r8I/GNrbwEeHtp3pPUt1/9tkuxLMptkdn5+fhXKkyQtGCv0k7wNeBp4/+qUA1V1oKp2VdWumZkl/waAJGlEI1+ymeQXgNcAu6uqWvdRYNvQsK2tj+P0S5ImZKQz/SQXAG8BfrqqvjK06xBwaZJTk+wAdgIfBz4B7EyyI8kpDF7sPTRe6ZKklTrhmX6SDwA/AZyR5AhwJYOrdU4FDicBuK2qfqmq7klyPXAvg2Wfy6vqf9vzvBH4KLABuK6q7lmDr0eSdBwnDP2qet0S3dceZ/zbgbcv0X8TcNOKqpMkrSrfkStJHTH0Jakjhr4kdcTQl6SOGPqS1BFDX5I6YuhLUkcMfUnqiKEvSR0x9CWpI4a+JHXE0Jekjhj6ktQRQ1+SOmLoS1JHDH1J6oihL0kdMfQlqSOGviR1xNCXpI4Y+pLUEUNfkjpi6EtSRwx9SeqIoS9JHTlh6Ce5LsmxJHcP9Z2W5HCSB9r95tafJO9MMpfkriTnDD1mbxv/QJK9a/PlSJKO55mc6b8XuGBR337g5qraCdzctgEuBHa22z7gGhj8kgCuBH4UOBe4cuEXhSRpck4Y+lX1MeDxRd17gIOtfRC4eKj/fTVwG7ApyVnAq4DDVfV4VT0BHObbf5FIktbYqGv6Z1bVI639KHBma28BHh4ad6T1Ldf/bZLsSzKbZHZ+fn7E8iRJSxn7hdyqKqBWoZaF5ztQVbuqatfMzMxqPa0kidFD/7G2bEO7P9b6jwLbhsZtbX3L9UuSJmjU0D8ELFyBsxe4caj/9e0qnvOAp9oy0EeB85Nsbi/gnt/6JEkTtPFEA5J8APgJ4IwkRxhchXMVcH2Sy4AvAK9tw28CLgLmgK8AbwCoqseT/AHwiTbu96tq8YvDkqQ1dsLQr6rXLbNr9xJjC7h8mee5DrhuRdVJklaV78iVpI4Y+pLUEUNfkjpi6EtSRwx9SeqIoS9JHTH0Jakjhr4kdcTQl6SOGPqS1BFDX5I6YuhLUkcMfUnqiKEvSR0x9CWpI4a+JHXE0Jekjhj6ktQRQ1+SOmLoS1JHDH1J6oihL0kdMfQlqSOGviR1ZKzQT/IbSe5JcneSDyR5bpIdSW5PMpfkQ0lOaWNPbdtzbf/21fgCJEnP3Mihn2QL8GvArqp6MbABuBR4B3B1VX0/8ARwWXvIZcATrf/qNk6SNEHjLu9sBJ6XZCPwncAjwCuBG9r+g8DFrb2nbdP2706SMY8vSVqBkUO/qo4Cfwz8B4Owfwq4A3iyqp5uw44AW1p7C/Bwe+zTbfzpox5fkrRy4yzvbGZw9r4D+B7g+cAF4xaUZF+S2SSz8/Pz4z6dJGnIOMs7Pwl8vqrmq+p/gA8DLwc2teUegK3A0dY+CmwDaPtfCHxp8ZNW1YGq2lVVu2ZmZsYoT5K02Dih/x/AeUm+s63N7wbuBW4FLmlj9gI3tvahtk3bf0tV1RjHlySt0Dhr+rczeEH2k8Bn2nMdAN4KvDnJHIM1+2vbQ64FTm/9bwb2j1G3JGkEG088ZHlVdSVw5aLuB4Fzlxj7VeBnxzmeJGk8viNXkjpi6EtSRwx9SeqIoS9JHTH0Jakjhr4kdcTQl6SOGPqS1BFDX5I6YuhLUkcMfUnqiKEvSR0x9CWpI4a+JHXE0Jekjhj6ktQRQ1+SOmLoS1JHDH1J6oihL0kdMfQlqSOGviR1xNCXpI4Y+pLUEUNfkjoyVugn2ZTkhiSfTXJfkh9LclqSw0keaPeb29gkeWeSuSR3JTlndb4ESdIzNe6Z/p8D/1RVPwj8MHAfsB+4uap2Aje3bYALgZ3ttg+4ZsxjS5JWaOTQT/JC4BXAtQBV9fWqehLYAxxsww4CF7f2HuB9NXAbsCnJWSNXLklasXHO9HcA88B7knwqybuTPB84s6oeaWMeBc5s7S3Aw0OPP9L6vkWSfUlmk8zOz8+PUZ4kabFxQn8jcA5wTVW9DPhvvrmUA0BVFVAredKqOlBVu6pq18zMzBjlSZIWGyf0jwBHqur2tn0Dg18Cjy0s27T7Y23/UWDb0OO3tj5J0oSMHPpV9SjwcJIfaF27gXuBQ8De1rcXuLG1DwGvb1fxnAc8NbQMJEmagI1jPv5XgfcnOQV4EHgDg18k1ye5DPgC8No29ibgImAO+EobK0maoLFCv6ruBHYtsWv3EmMLuHyc40mSxuM7ciWpI4a+JHXE0Jekjhj6ktQRQ1+SOjLuJZtawvb9H1m3Yz901avX7diSpp9n+pLUEUNfkjpi6EtSRwx9SeqIoS9JHTH0Jakjhr4kdcTQl6SOGPqS1BFDX5I6YuhLUkcMfUnqiKEvSR0x9CWpI4a+JHXE0JekjvhHVE4y6/UHXPzjLdKzg2f6ktQRQ1+SOjJ26CfZkORTSf6hbe9IcnuSuSQfSnJK6z+1bc+1/dvHPbYkaWVW40z/TcB9Q9vvAK6uqu8HngAua/2XAU+0/qvbOEnSBI0V+km2Aq8G3t22A7wSuKENOQhc3Np72jZt/+42XpI0IeOe6f8Z8Bbg/9r26cCTVfV02z4CbGntLcDDAG3/U238t0iyL8lsktn5+fkxy5MkDRs59JO8BjhWVXesYj1U1YGq2lVVu2ZmZlbzqSWpe+Ncp/9y4KeTXAQ8F/hu4M+BTUk2trP5rcDRNv4osA04kmQj8ELgS2McX5K0QiOf6VfVFVW1taq2A5cCt1TVzwG3Ape0YXuBG1v7UNum7b+lqmrU40uSVm4trtN/K/DmJHMM1uyvbf3XAqe3/jcD+9fg2JKk41iVj2Goqn8F/rW1HwTOXWLMV4GfXY3jSZJG4ztyJakjhr4kdcTQl6SOGPqS1BFDX5I6YuhLUkcMfUnqiKEvSR0x9CWpI4a+JHXE0Jekjhj6ktQRQ1+SOmLoS1JHDH1J6oihL0kdMfQlqSOGviR1xNCXpI4Y+pLUEUNfkjpi6EtSRwx9SeqIoS9JHRk59JNsS3JrknuT3JPkTa3/tCSHkzzQ7je3/iR5Z5K5JHclOWe1vghJ0jMzzpn+08BvVtXZwHnA5UnOBvYDN1fVTuDmtg1wIbCz3fYB14xxbEnSCEYO/ap6pKo+2dr/BdwHbAH2AAfbsIPAxa29B3hfDdwGbEpy1siVS5JWbFXW9JNsB14G3A6cWVWPtF2PAme29hbg4aGHHWl9i59rX5LZJLPz8/OrUZ4kqRk79JO8APg74Ner6j+H91VVAbWS56uqA1W1q6p2zczMjFueJGnIWKGf5DkMAv/9VfXh1v3YwrJNuz/W+o8C24YevrX1SZImZJyrdwJcC9xXVX86tOsQsLe19wI3DvW/vl3Fcx7w1NAykCRpAjaO8diXAz8PfCbJna3vt4GrgOuTXAZ8AXht23cTcBEwB3wFeMMYx5YkjWDk0K+qfwOyzO7dS4wv4PJRjydJGp/vyJWkjhj6ktSRcdb0pW/Yvv8j63Lch6569bocV3q28kxfkjpi6EtSRwx9SeqIoS9JHTH0Jakjhr4kdcTQl6SOGPqS1BFDX5I6YuhLUkcMfUnqiKEvSR0x9CWpI4a+JHXE0Jekjhj6ktQR/4iKntXW64+3gH/ARc9OnulLUkcMfUnqiKEvSR0x9CWpI4a+JHVk4qGf5IIk9yeZS7J/0seXpJ5NNPSTbADeBVwInA28LsnZk6xBkno26ev0zwXmqupBgCQfBPYA9064Dmls6/kegfXS43sT1uvfea3metKhvwV4eGj7CPCjwwOS7AP2tc0vJ7l/xGOdAXxxxMdOwrTXB9Nf47TXB9Nf44rqyzvWsJLlnVRz+EyNOdffu9yOqXtHblUdAA6M+zxJZqtq1yqUtCamvT6Y/hqnvT6Y/hqnvT6Y/hqnvb7FJv1C7lFg29D21tYnSZqASYf+J4CdSXYkOQW4FDg04RokqVsTXd6pqqeTvBH4KLABuK6q7lmjw429RLTGpr0+mP4ap70+mP4ap70+mP4ap72+b5GqWu8aJEkT4jtyJakjhr4kdeSkC/1p+piHJA8l+UySO5PMtr7TkhxO8kC739z6k+Sdre67kpyzBvVcl+RYkruH+lZcT5K9bfwDSfZOoMbfTXK0zeOdSS4a2ndFq/H+JK8a6l+T74Mk25LcmuTeJPckeVPrn5p5PE6NUzGPSZ6b5ONJPt3q+73WvyPJ7e1YH2oXe5Dk1LY91/ZvP1Hda1jje5N8fmgOX9r61+XnZSRVddLcGLw4/O/Ai4BTgE8DZ69jPQ8BZyzq+0Ngf2vvB97R2hcB/wgEOA+4fQ3qeQVwDnD3qPUApwEPtvvNrb15jWv8XeC3lhh7dvs3PhXY0f7tN6zl9wFwFnBOa38X8LlWx9TM43FqnIp5bHPxgtZ+DnB7m5vrgUtb/18Cv9zavwL8ZWtfCnzoeHWv0hwuV+N7gUuWGL8uPy+j3E62M/1vfMxDVX0dWPiYh2myBzjY2geBi4f631cDtwGbkpy1mgeuqo8Bj49Zz6uAw1X1eFU9ARwGLljjGpezB/hgVX2tqj4PzDH4Hliz74OqeqSqPtna/wXcx+Cd5lMzj8epcTkTncc2F19um89ptwJeCdzQ+hfP4cLc3gDsTpLj1D2249S4nHX5eRnFyRb6S33Mw/G+2ddaAf+c5I4MPl4C4MyqeqS1HwXObO31qn2l9axXnW9s/22+bmHpZL1rbMsML2NwFjiV87ioRpiSeUyyIcmdwDEGQfjvwJNV9fQSx/pGHW3/U8Dpa1nfUjVW1cIcvr3N4dVJTl1c46Japi2TTrrQnzY/XlXnMPhU0cuTvGJ4Zw3+/zc118xOWz1DrgG+D3gp8AjwJ+tbDiR5AfB3wK9X1X8O75uWeVyixqmZx6r636p6KYN35Z8L/OB61bKcxTUmeTFwBYNaf4TBks1b17HEkZxsoT9VH/NQVUfb/THg7xl8cz+2sGzT7o+14etV+0rrmXidVfVY+wH8P+Cv+OZ/4delxiTPYRCm76+qD7fuqZrHpWqctnlsNT0J3Ar8GIMlkYU3jA4f6xt1tP0vBL40ifoW1XhBWzqrqvoa8B6mYA5X6mQL/an5mIckz0/yXQtt4Hzg7lbPwiv4e4EbW/sQ8Pp2FcB5wFNDywVraaX1fBQ4P8nmtjxwfutbM4te2/gZBvO4UOOl7eqOHcBO4OOs4fdBW0u+Frivqv50aNfUzONyNU7LPCaZSbKptZ8H/BSD1x1uBS5pwxbP4cLcXgLc0v43tVzdY1umxs8O/WIPg9cchudwKn5eTmiSrxpP4sbgVfTPMVgjfNs61vEiBlcWfBq4Z6EWBmuRNwMPAP8CnFbfvFrgXa3uzwC71qCmDzD4b/3/MFhbvGyUeoBfZPCi2RzwhgnU+NethrsY/HCdNTT+ba3G+4EL1/r7APhxBks3dwF3tttF0zSPx6lxKuYReAnwqVbH3cDvDP3MfLzNx98Cp7b+57btubb/RSeqew1rvKXN4d3A3/DNK3zW5edllJsfwyBJHTnZlnckScdh6EtSRwx9SeqIoS9JHTH0Jakjhr4kdcTQl6SO/D/JXcFTIBn7OQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "NMPfAqICKf2a",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 581
},
"outputId": "31fe53cd-6d2d-4a3a-9bd0-ec17159758f3"
},
"source": [
"!pip install transformers\n",
"import logging\n",
"import time\n",
"from platform import python_version\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import sklearn\n",
"import torch\n",
"import torch.nn as nn\n",
"import torch.nn.functional as F\n",
"import transformers\n",
"from sklearn.metrics import roc_auc_score\n",
"from torch.autograd import Variable"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Collecting transformers\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/12/b5/ac41e3e95205ebf53439e4dd087c58e9fd371fd8e3724f2b9b4cdb8282e5/transformers-2.10.0-py3-none-any.whl (660kB)\n",
"\u001b[K |████████████████████████████████| 665kB 9.2MB/s \n",
"\u001b[?25hCollecting sacremoses\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/7d/34/09d19aff26edcc8eb2a01bed8e98f13a1537005d31e95233fd48216eed10/sacremoses-0.0.43.tar.gz (883kB)\n",
"\u001b[K |████████████████████████████████| 890kB 48.9MB/s \n",
"\u001b[?25hRequirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.6/dist-packages (from transformers) (2019.12.20)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from transformers) (1.18.4)\n",
"Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.6/dist-packages (from transformers) (4.41.1)\n",
"Collecting sentencepiece\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/d4/a4/d0a884c4300004a78cca907a6ff9a5e9fe4f090f5d95ab341c53d28cbc58/sentencepiece-0.1.91-cp36-cp36m-manylinux1_x86_64.whl (1.1MB)\n",
"\u001b[K |████████████████████████████████| 1.1MB 44.4MB/s \n",
"\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.6/dist-packages (from transformers) (3.0.12)\n",
"Requirement already satisfied: requests in /usr/local/lib/python3.6/dist-packages (from transformers) (2.23.0)\n",
"Collecting tokenizers==0.7.0\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/14/e5/a26eb4716523808bb0a799fcfdceb6ebf77a18169d9591b2f46a9adb87d9/tokenizers-0.7.0-cp36-cp36m-manylinux1_x86_64.whl (3.8MB)\n",
"\u001b[K |████████████████████████████████| 3.8MB 42.2MB/s \n",
"\u001b[?25hRequirement already satisfied: dataclasses; python_version < \"3.7\" in /usr/local/lib/python3.6/dist-packages (from transformers) (0.7)\n",
"Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from sacremoses->transformers) (1.12.0)\n",
"Requirement already satisfied: click in /usr/local/lib/python3.6/dist-packages (from sacremoses->transformers) (7.1.2)\n",
"Requirement already satisfied: joblib in /usr/local/lib/python3.6/dist-packages (from sacremoses->transformers) (0.15.1)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests->transformers) (2020.4.5.1)\n",
"Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests->transformers) (1.24.3)\n",
"Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests->transformers) (2.9)\n",
"Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests->transformers) (3.0.4)\n",
"Building wheels for collected packages: sacremoses\n",
" Building wheel for sacremoses (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for sacremoses: filename=sacremoses-0.0.43-cp36-none-any.whl size=893260 sha256=f4121a107ea6b7b88d33fdc2a7bec9734d6c23cc9083be9036ffe9c3b955acc8\n",
" Stored in directory: /root/.cache/pip/wheels/29/3c/fd/7ce5c3f0666dab31a50123635e6fb5e19ceb42ce38d4e58f45\n",
"Successfully built sacremoses\n",
"Installing collected packages: sacremoses, sentencepiece, tokenizers, transformers\n",
"Successfully installed sacremoses-0.0.43 sentencepiece-0.1.91 tokenizers-0.7.0 transformers-2.10.0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "X2qIJL4fLB4n",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 164,
"referenced_widgets": [
"0488e2a159f94f1e8fd2d95cfa1f0c00",
"f6b7f67b13a94abe81c8f311f5d9584e",
"182e7f63a7a747be9806d768c59ac8ed",
"89484e917aaf4be7b9c1fd73542101ec",
"e3002daa07f44aa296d26fc14e9e5c10",
"03e4968cf76248429f98b73ef104941b",
"33057b5773f04ab8a43d33eed74453bb",
"865728d013634aeaa7705c7350d86541",
"b3cf8354fb91443db5657239b1631db1",
"dca67a11598049b5b6a2e87b1d1d9724",
"ad4a891b74304e5cafc91dcac6f1aa71",
"3ecdbfd3ce6c4e64ae31985197903358",
"cec8ee3dd75a468d985fb9d2c17cd7f7",
"58100c551b1d4dd683e9bfb2c4059022",
"1c55789eede0464f85386b4e41c46c06",
"b5def479898f453fb51cd221ff78b1e4",
"7e00f631bf7c4557bcaeea97f26b3bb8",
"ca6631cb27f941fa92a7ff08cfb5fdde",
"d97d7a015ffa428696024cef965e789d",
"716a044bb3ad4f2081d064d690d40fd9",
"14c4dc6f2e3b48aa924966e737ed73ff",
"2df44811e03f4474ab053a62de70c160",
"dcc537362666468c8994a0eca019d05c",
"2eb87bd2ec0a4382b77b8562d0ac8dc8"
]
},
"outputId": "1d675857-ca63-467f-ce9a-2e9f3ba985f1"
},
"source": [
"model_class = transformers.BertModel\n",
"tokenizer_class = transformers.BertTokenizer\n",
"pretrained_weights='bert-base-cased'\n",
"# Load pretrained model/tokenizer\n",
"tokenizer = tokenizer_class.from_pretrained(pretrained_weights)\n",
"bert_model = model_class.from_pretrained(pretrained_weights)"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "0488e2a159f94f1e8fd2d95cfa1f0c00",
"version_minor": 0,
"version_major": 2
},
"text/plain": [
"HBox(children=(FloatProgress(value=0.0, description='Downloading', max=213450.0, style=ProgressStyle(descripti…"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "b3cf8354fb91443db5657239b1631db1",
"version_minor": 0,
"version_major": 2
},
"text/plain": [
"HBox(children=(FloatProgress(value=0.0, description='Downloading', max=433.0, style=ProgressStyle(description_…"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "7e00f631bf7c4557bcaeea97f26b3bb8",
"version_minor": 0,
"version_major": 2
},
"text/plain": [
"HBox(children=(FloatProgress(value=0.0, description='Downloading', max=435779157.0, style=ProgressStyle(descri…"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "49IOXdUhLQ7u",
"colab_type": "code",
"colab": {}
},
"source": [
"max_seq = 512\n",
"def tokenize_text(df, max_seq):\n",
" return [\n",
" tokenizer.encode(text, add_special_tokens=True)[:max_seq] for text in df.values\n",
" ]\n",
"\n",
"def pad_text(tokenized_text, max_seq):\n",
" return np.array([el + [0] * (max_seq - len(el)) for el in tokenized_text])\n",
"\n",
"def tokenize_and_pad_text(df, max_seq):\n",
" tokenized_text = tokenize_text(df, max_seq)\n",
" padded_text = pad_text(tokenized_text, max_seq)\n",
" return torch.tensor(padded_text)\n",
"\n",
"def targets_to_tensor(df, target_columns):\n",
" return torch.tensor(df[target_columns].values, dtype=torch.float32)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "OROlflCuyPWG",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "23721d4d-e430-4de7-b3a4-e73c0e57072e"
},
"source": [
"train_indices = tokenize_and_pad_text(combined_data[0:1].copy()[\"title\"], max_seq)\n",
"with torch.no_grad():\n",
" x_val = bert_model(train_indices)[0]\n",
"x_val.size()"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"torch.Size([1, 512, 768])"
]
},
"metadata": {
"tags": []
},
"execution_count": 13
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "pn2OsYWp1pPC",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 901
},
"outputId": "3b932188-810b-432a-b215-63c8296eba1a"
},
"source": [
"train_indices"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"tensor([[ 101, 9924, 1116, 5135, 5738, 25118, 1233, 20979, 1116, 1111,\n",
" 1103, 6237, 1104, 4945, 119, 1275, 102, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
" 0, 0]])"
]
},
"metadata": {
"tags": []
},
"execution_count": 14
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "TeNZa7Pzxim3",
"colab_type": "code",
"colab": {}
},
"source": [
"# count = 1\n",
"# for i in range(0,1801,200):\n",
"# train_indices = tokenize_and_pad_text(combined_data[i:i+200].copy()[\"title\"], max_seq) #20246\n",
"# with torch.no_grad():\n",
"# x_train = bert_model(train_indices)[0]\n",
"# torch.save(x_train, 'gdrive/My Drive/tensor512/train_'+str(count)+'.pt')\n",
"# del train_indices\n",
"# count+=1\n",
"# print(count)\n",
"\n",
"\n",
"# val_indices = tokenize_and_pad_text(combined_data[2000:2200].copy()[\"title\"], max_seq)\n",
"# with torch.no_grad():\n",
"# x_val = bert_model(val_indices)[0]\n",
"# torch.save(x_val, 'gdrive/My Drive/tensor512/val_1.pt')\n",
"# del val_indices\n",
"# val_indices = tokenize_and_pad_text(combined_data[2200:2400].copy()[\"title\"], max_seq)\n",
"# with torch.no_grad():\n",
"# x_val = bert_model(val_indices)[0]\n",
"# torch.save(x_val, 'gdrive/My Drive/tensor512/val_2.pt')\n",
"# del val_indices\n",
"\n",
"# test_indices = tokenize_and_pad_text(test_data[\"title\"], max_seq)\n",
"# with torch.no_grad():\n",
"# x_test = bert_model(test_indices)[0]\n",
"# np.save('gdrive/My Drive/test.npy',x_test.numpy())\n",
"# del test_indices\n",
"\n",
"# y_train = targets_to_tensor(combined_data[0:2000].copy(), \"index\")\n",
"# np.save('gdrive/My Drive/y_train.npy',y_train.numpy())\n",
"# del y_train\n",
"\n",
"# y_val = targets_to_tensor(combined_data[2000:].copy(), \"index\")\n",
"# np.save('gdrive/My Drive/y_val.npy',y_val.numpy())\n",
"# del y_val\n",
"\n",
"y_test = targets_to_tensor(test_data, \"index\")\n",
"np.save('gdrive/My Drive/y_test.npy',y_test.numpy())\n",
"del y_test\n",
"\n",
"\n",
"# torch.save(x_test, 'gdrive/My Drive/tensor/test_2.pt')\n",
"# torch.save(x_val, 'gdrive/My Drive/tensor/val_1.pt')\n",
"# y_train = targets_to_tensor(combined_data[0:1].copy(), \"index\")\n",
"# y_val = targets_to_tensor(combined_data[20246:].copy(), \"index\")\n",
"# y_test = targets_to_tensor(df_test, target_columns)\n",
"\n",
"# count = 1\n",
"# for i in range(0,20000,2000):\n",
"# if i == 20000:\n",
"# temp = tokenize_and_pad_text(combined_data[20000:20246].copy()[\"headline\"], max_seq)\n",
"# else: \n",
"# temp = tokenize_and_pad_text(combined_data[i:i+2000].copy()[\"headline\"], max_seq)\n",
"# with torch.no_grad():\n",
"# x_test = bert_model(temp)[0]\n",
"# torch.save(x_test, 'gdrive/My Drive/tensor80/train_'+str(count)+'.pt')\n",
"# count +=1 \n",
"# del temp\n",
"# temp = tokenize_and_pad_text(combined_data[20000:20246].copy()[\"headline\"], max_seq)\n",
"# # temp = tokenize_and_pad_text(combined_data[20246:22246].copy()[\"headline\"], max_seq)\n",
"# with torch.no_grad():\n",
"# x_test = bert_model(temp)[0]\n",
"# torch.save(x_test, 'gdrive/My Drive/tensor80/train_11.pt')\n",
"# del temp\n",
"\n",
"# temp = tokenize_and_pad_text(combined_data[22246:].copy()[\"headline\"], max_seq)\n",
"# with torch.no_grad():\n",
"# x_test = bert_model(temp)[0]\n",
"# torch.save(x_test, 'gdrive/My Drive/tensor80/val_2.pt')\n",
"# del temp"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "aJp1oA-Kt4Wg",
"colab_type": "code",
"colab": {}
},
"source": [
"temp = tokenize_and_pad_text(test_data[0:2000].copy()[\"headline\"], max_seq)\n",
"with torch.no_grad():\n",
" x_test = bert_model(temp)[0]\n",
"torch.save(x_test, 'gdrive/My Drive/tensor80/test_1.pt')\n",
"del temp\n",
"\n",
"temp = tokenize_and_pad_text(test_data[2000:].copy()[\"headline\"], max_seq)\n",
"with torch.no_grad():\n",
" x_test = bert_model(temp)[0]\n",
"torch.save(x_test, 'gdrive/My Drive/tensor80/test_2.pt')\n",
"del temp"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "o3ObZM88xje5",
"colab_type": "code",
"colab": {}
},
"source": [
"y_train = targets_to_tensor(combined_data[0:20246].copy(), \"index\")\n",
"y_val = targets_to_tensor(combined_data[20246:].copy(), \"index\")\n",
"y_test = targets_to_tensor(test_data, \"index\")\n",
"\n",
"torch.save(y_train, 'gdrive/My Drive/tensor/y_train.pt')\n",
"torch.save(y_val, 'gdrive/My Drive/tensor/y_val.pt')\n",
"torch.save(y_test, 'gdrive/My Drive/tensor/y_test.pt')\n"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "LWXz0C4WyKND",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
},
"outputId": "5511676d-be38-4d4e-af38-ff51274c946a"
},
"source": [
"temp = torch.load('gdrive/My Drive/tensor80/test_1.pt')\n",
"temp2 = torch.load('gdrive/My Drive/tensor80/test_2.pt')\n",
"print(temp.size())\n",
"print(temp2.size())\n",
"\n",
"temp3 = torch.cat([temp, temp2], dim=0)\n",
"temp3.size()\n",
"torch.save(temp3, 'gdrive/My Drive/tensor80/test.pt')"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"torch.Size([2000, 80, 768])\n",
"torch.Size([1692, 80, 768])\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "9QSpEMakzsYN",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 170
},
"outputId": "220a36ac-3088-4af0-f8b0-6e60e7b69d89"
},
"source": [
"added = torch.load('gdrive/My Drive/tensor512/train_1.pt')\n",
"\n",
"for i in range(2,11):\n",
" temp = torch.load('gdrive/My Drive/tensor512/train_'+str(i)+'.pt')\n",
" added = torch.cat([added,temp],0)\n",
" print(added.size())\n",
" del temp\n",
"\n",
"np.save('gdrive/My Drive/train.npy',added.numpy())"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"torch.Size([400, 512, 768])\n",
"torch.Size([600, 512, 768])\n",
"torch.Size([800, 512, 768])\n",
"torch.Size([1000, 512, 768])\n",
"torch.Size([1200, 512, 768])\n",
"torch.Size([1400, 512, 768])\n",
"torch.Size([1600, 512, 768])\n",
"torch.Size([1800, 512, 768])\n",
"torch.Size([2000, 512, 768])\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "dPx0jGrF0mOk",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "d1b26c62-9a81-4866-a6ad-bdbd1a526003"
},
"source": [
"added = torch.load('gdrive/My Drive/tensor512/val_1.pt')\n",
"\n",
"for i in range(2,3):\n",
" temp = torch.load('gdrive/My Drive/tensor512/val_'+str(i)+'.pt')\n",
" added = torch.cat([added,temp],0)\n",
" print(added.size())\n",
"\n",
"np.save('gdrive/My Drive/val.npy',added.numpy())"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"torch.Size([400, 512, 768])\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "ldah_SPc719u",
"colab_type": "code",
"colab": {}
},
"source": [
"import numpy as np\n",
"import torch\n",
"\n",
"y_val = targets_to_tensor(combined_data[20246:].copy(), \"index\")\n",
"np.save('gdrive/My Drive/tensor80/val_y.npy',y_val.numpy())\n",
"del y_val \n"
],
"execution_count": null,
"outputs": []
}
]
}
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
date,price,open,high,low,volume,change
20200323,"42,500","42,600","43,550","42,400",29.15K,-6.39%
20200322,"45,400","45,400","45,400","45,400",-,0.00%
20200320,"45,400","44,150","45,500","43,550",49.16M,5.70%
20200319,"42,950","46,500","46,600","42,300",0.64K,-5.81%
20200318,"45,600","47,750","48,350","45,600",38.15M,-3.59%
20200317,"47,300","46,900","49,650","46,700",50.59M,-3.27%
20200316,"48,900","50,100","50,900","48,800",33.06M,-2.10%
20200315,"49,950","49,950","49,950","49,950",-,0.00%
20200313,"49,950","47,450","51,600","46,850",58.33M,-1.67%
20200312,"50,800","51,000","51,900","49,300",47.90M,-2.50%
20200311,"52,100","54,300","54,400","52,000",37.83M,-4.58%
20200310,"54,600","53,800","54,900","53,700",31.33M,0.74%
20200309,"54,200","54,700","55,000","53,600",30.01M,-4.07%
20200308,"56,500","56,500","56,500","56,500",-,0.00%
20200306,"56,500","56,500","57,200","56,200",18.59M,-2.25%
20200305,"57,800","57,600","58,000","56,700",21.66M,0.70%
20200304,"57,400","54,800","57,600","54,600",24.32M,3.61%
20200303,"55,400","56,700","56,900","55,100",29.81M,0.73%
20200302,"55,000","54,300","55,500","53,600",29.21M,1.48%
20200301,"54,200","54,200","54,200","54,200",-,0.00%
20200228,"54,200","55,000","55,500","54,200",29.91M,-3.04%
20200227,"55,900","56,300","56,900","55,500",22.36M,-1.06%
20200226,"56,500","56,000","57,000","56,000",25.38M,-2.42%
20200225,"57,900","56,200","58,000","56,200",23.07M,1.94%
20200224,"56,800","57,400","58,100","56,800",25.36M,-4.05%
20200223,"59,200","59,200","59,200","59,200",-,0.00%
20200221,"59,200","58,800","59,800","58,500",13.28M,-1.33%
20200220,"60,000","60,700","61,300","59,600",14.51M,-0.33%
20200219,"60,200","59,800","60,400","59,400",12.94M,0.67%
20200218,"59,800","60,800","60,900","59,700",16.63M,-2.76%
20200217,"61,500","61,600","62,000","61,200",8.49M,-0.49%
20200216,"61,800","61,800","61,800","61,800",-,0.00%
20200214,"61,800","60,900","61,900","60,200",13.26M,1.81%
20200213,"60,700","61,200","61,600","60,500",18.34M,0.33%
20200212,"60,500","60,300","60,700","59,700",12.73M,1.00%
20200211,"59,900","59,800","60,700","59,700",10.95M,0.34%
20200210,"59,700","59,200","59,800","59,100",12.69M,-1.16%
20200209,"60,400","60,400","60,400","60,400",-,0.00%
20200207,"60,400","61,100","61,200","59,700",16.27M,-1.15%
20200206,"61,100","60,100","61,100","59,700",14.68M,2.69%
20200205,"59,500","60,000","60,200","58,900",18.19M,1.02%
20200204,"58,900","57,100","59,000","56,800",21.10M,2.97%
20200203,"57,200","55,500","57,400","55,200",22.91M,1.42%
20200202,"56,400","56,400","56,400","56,400",-,0.00%
20200131,"56,400","57,800","58,400","56,400",19.49M,-1.40%
20200130,"57,200","58,800","58,800","56,800",20.72M,-3.21%
20200129,"59,100","59,100","59,700","58,800",16.26M,0.51%
20200128,"58,800","59,400","59,400","58,300",22.63M,-3.29%
20200127,"60,800","60,800","60,800","60,800",-,0.00%
20200123,"60,800","61,800","61,800","60,700",14.88M,-2.41%
20200122,"62,300","60,500","62,600","60,400",15.05M,1.47%
20200121,"61,400","62,000","62,400","61,200",11.11M,-1.60%
20200120,"62,400","62,000","62,800","61,700",12.46M,1.79%
20200119,"61,300","61,300","61,300","61,300",-,0.00%
20200117,"61,300","61,900","62,000","61,000",15.45M,0.99%
20200116,"60,700","59,100","60,700","59,000",13.56M,2.88%
20200115,"59,000","59,500","59,600","58,900",13.72M,-1.67%
20200114,"60,000","60,400","61,000","59,900",16.08M,0.00%
20200113,"60,000","59,600","60,000","59,100",11.26M,0.84%
20200112,"59,500","59,500","59,500","59,500",-,0.00%
20200110,"59,500","58,800","59,700","58,300",15.83M,1.54%
20200109,"58,600","58,400","58,600","57,400",23.23M,3.17%
20200108,"56,800","56,200","57,400","55,900",23.33M,1.79%
20200107,"55,800","55,700","56,400","55,600",9.89M,0.54%
20200106,"55,500","54,900","55,600","54,600",10.24M,0.00%
20200105,"55,500","55,500","55,500","55,500",-,0.00%
20200103,"55,500","56,000","56,600","54,900",15.31M,0.54%
20200102,"55,200","55,500","56,000","55,000",12.76M,-1.08%
20191230,"55,800","56,200","56,600","55,700",8.35M,-1.24%
20191229,"56,500","56,500","56,500","56,500",-,0.00%
20191227,"56,500","55,700","56,900","55,500",12.29M,1.99%
20191226,"55,400","54,700","55,400","54,400",9.57M,0.73%
20191225,"55,000","55,000","55,000","55,000",-,0.00%
20191224,"55,000","55,600","55,700","54,800",9.19M,-0.90%
20191223,"55,500","56,100","56,400","55,100",9.49M,-0.89%
20191222,"56,000","56,000","56,000","56,000",-,0.00%
20191220,"56,000","56,100","56,500","55,600",12.07M,0.00%
20191219,"56,000","57,000","57,300","55,500",13.95M,-0.53%
20191218,"56,300","56,700","57,200","56,000",15.49M,-0.71%
20191217,"56,700","55,800","56,700","55,400",18.75M,3.66%
20191216,"54,700","54,500","54,900","54,300",11.10M,0.00%
20191215,"54,700","54,700","54,700","54,700",-,0.00%
20191213,"54,700","54,500","54,800","53,900",17.59M,2.63%
20191212,"53,300","53,000","53,300","52,700",28.45M,2.70%
20191211,"51,900","51,500","52,200","51,400",11.00M,0.78%
20191210,"51,500","51,000","51,600","50,700",6.87M,0.59%
20191209,"51,200","50,900","51,400","50,700",8.27M,1.59%
20191208,"50,400","50,400","50,400","50,400",-,0.00%
20191206,"50,400","50,100","50,900","49,950",10.87M,1.82%
20191205,"49,500","50,200","50,400","49,500",10.02M,0.10%
20191204,"49,450","49,600","49,850","49,000",12.96M,-0.90%
20191203,"49,900","49,800","50,300","49,500",12.00M,-0.99%
20191202,"50,400","50,900","51,300","50,400",9.59M,0.20%
20191201,"50,300","50,300","50,300","50,300",-,0.00%
20191129,"50,300","51,200","51,400","50,200",11.01M,-1.95%
20191128,"51,300","51,900","52,100","51,300",6.15M,-1.72%
20191127,"52,200","51,800","52,300","51,600",7.19M,0.77%
20191126,"51,800","51,900","52,900","51,800",26.04M,0.00%
20191125,"51,800","52,200","52,600","51,700",9.01M,0.39%
20191122,"51,600","51,000","51,600","50,900",8.33M,1.18%
20191121,"51,000","51,600","52,100","50,600",14.25M,-1.92%
20191120,"52,000","53,400","53,400","52,000",11.83M,-2.80%
20191119,"53,500","53,200","53,500","52,700",8.10M,0.00%
20191118,"53,500","53,600","53,800","53,200",7.65M,-0.37%
20191117,"53,700","53,700","53,700","53,700",-,0.00%
20191115,"53,700","52,900","53,700","52,600",9.68M,1.70%
20191114,"52,800","51,900","52,800","51,900",12.00M,0.57%
20191113,"52,500","52,500","52,500","52,000",6.22M,-0.19%
20191112,"52,600","51,800","52,600","51,600",6.10M,1.94%
20191111,"51,600","52,200","52,200","51,400",8.18M,-0.96%
20191110,"52,100","52,100","52,100","52,100",-,0.00%
20191108,"52,100","53,200","53,300","52,000",10.39M,-1.51%
20191107,"52,900","53,400","53,400","52,400",9.14M,-0.75%
20191106,"53,300","52,900","53,500","52,700",13.12M,1.14%
20191105,"52,700","52,400","52,700","52,100",10.12M,0.76%
20191104,"52,300","51,700","52,300","51,400",12.76M,2.15%
20191103,"51,200","51,200","51,200","51,200",-,0.00%
20191101,"51,200","50,600","51,200","50,400",7.54M,1.59%
20191031,"50,400","51,000","51,400","50,300",10.21M,0.00%
20191030,"50,400","50,700","50,800","50,200",8.87M,-1.37%
20191029,"51,100","51,400","51,700","50,800",7.14M,-0.39%
20191028,"51,300","50,700","51,500","50,700",6.34M,0.79%
20191027,"50,900","50,900","50,900","50,900",-,0.00%
20191025,"50,900","50,800","51,200","50,500",7.84M,0.39%
20191024,"50,700","52,500","52,500","50,500",10.77M,-0.98%
20191023,"51,200","51,300","51,500","50,800",8.46M,0.00%
20191022,"51,200","50,800","51,500","50,700",10.71M,1.79%
20191021,"50,300","49,900","50,400","49,800",4.39M,0.80%
20191020,"49,900","49,900","49,900","49,900",-,0.00%
20191018,"49,900","50,300","50,900","49,650",8.40M,-1.19%
20191017,"50,500","50,500","50,600","50,100",6.61M,-0.39%
20191016,"50,700","50,700","50,900","50,400",9.01M,1.20%
20191015,"50,100","49,900","50,200","49,900",5.90M,0.20%
20191014,"50,000","50,000","50,300","49,850",10.87M,1.73%
20191013,"49,150","49,150","49,150","49,150",-,0.00%
20191011,"49,150","49,000","49,450","48,800",7.73M,1.24%
20191010,"48,550","48,200","49,200","48,000",17.84M,-0.72%
20191009,"48,900","48,900","48,900","48,900",-,0.00%
20191008,"48,900","47,900","49,000","47,600",13.29M,2.41%
20191007,"47,750","48,350","48,700","47,650",6.47M,-0.52%
20191006,"48,000","48,000","48,000","48,000",-,0.00%
20191004,"48,000","47,400","48,650","47,350",8.46M,0.84%
20191003,"47,600","47,600","47,600","47,600",-,0.00%
20191002,"47,600","48,350","48,400","47,600",8.37M,-2.56%
20191001,"48,850","48,900","49,100","48,650",6.20M,-0.41%
20190930,"49,050","48,050","49,250","47,900",9.20M,1.34%
20190929,"48,400","48,400","48,400","48,400",-,0.00%
20190927,"48,400","48,000","48,700","48,000",8.03M,-1.63%
20190926,"49,200","49,000","49,250","48,900",8.36M,0.61%
20190925,"48,900","49,200","49,350","48,800",9.11M,-1.21%
20190924,"49,500","49,050","49,650","48,850",7.84M,0.41%
20190923,"49,300","49,250","49,300","49,000",7.40M,0.20%
20190922,"49,200","49,200","49,200","49,200",-,0.00%
20190920,"49,200","49,400","49,600","49,100",14.91M,0.10%
20190919,"49,150","48,050","49,200","47,850",15.19M,3.04%
20190918,"47,700","46,900","47,700","46,800",9.82M,1.71%
20190917,"46,900","47,000","47,100","46,800",5.99M,-0.42%
20190916,"47,100","47,000","47,100","46,400",11.99M,-0.11%
20190915,"47,150","47,150","47,150","47,150",-,0.00%
20190911,"47,150","47,300","47,400","46,800",16.12M,0.32%
20190910,"47,000","47,100","47,200","46,550",9.16M,0.21%
20190909,"46,900","46,450","47,000","46,300",9.17M,1.30%
20190908,"46,300","46,300","46,300","46,300",-,0.00%
20190906,"46,300","46,500","46,500","45,850",9.70M,1.31%
20190905,"45,700","44,800","46,100","44,450",17.82M,3.63%
20190904,"44,100","43,250","44,100","43,150",11.48M,1.97%
20190903,"43,250","43,550","43,650","43,100",8.52M,-1.26%
20190902,"43,800","44,850","44,850","43,650",7.11M,-0.45%
20190901,"44,000","44,000","44,000","44,000",-,0.00%
20190830,"44,000","43,750","44,300","43,750",8.78M,1.38%
20190829,"43,400","44,200","44,200","43,050",10.13M,-1.70%
20190828,"44,150","44,100","44,400","43,750",5.75M,0.23%
20190827,"44,050","43,650","44,200","43,600",16.31M,1.03%
20190826,"43,600","43,050","43,800","42,950",7.94M,-0.80%
20190825,"43,950","43,950","43,950","43,950",-,0.00%
20190823,"43,950","43,800","44,200","43,650",4.64M,-0.23%
20190822,"44,050","44,500","44,700","43,850",8.05M,-1.01%
20190821,"44,500","44,350","44,800","44,150",6.52M,0.11%
20190820,"44,450","43,950","44,600","43,550",8.41M,1.95%
20190819,"43,600","44,350","44,350","43,500",5.97M,-0.68%
20190818,"43,900","43,900","43,900","43,900",-,0.00%
20190816,"43,900","43,800","43,900","43,300",9.45M,0.46%
20190815,"43,700","43,700","43,700","43,700",-,0.00%
20190814,"43,700","43,900","44,250","43,500",8.50M,1.63%
20190813,"43,000","43,500","43,500","42,950",6.96M,-1.60%
20190812,"43,700","44,000","44,000","43,550",7.27M,1.27%
20190811,"43,150","43,150","43,150","43,150",-,0.00%
20190809,"43,150","43,250","43,350","43,050",9.08M,1.17%
20190808,"42,650","43,250","43,500","42,650",16.00M,-1.27%
20190807,"43,200","43,600","43,900","43,100",9.99M,-0.69%
20190806,"43,500","42,500","43,800","42,500",15.06M,-1.02%
20190805,"43,950","44,350","44,600","43,600",13.32M,-2.22%
20190804,"44,950","44,950","44,950","44,950",-,0.00%
20190802,"44,950","44,550","45,500","44,300",11.82M,-0.55%
20190801,"45,200","44,900","45,500","44,850",7.74M,-0.33%
20190731,"45,350","46,200","46,600","45,000",12.82M,-2.58%
20190730,"46,550","46,300","46,850","46,300",5.51M,0.98%
20190729,"46,100","46,800","47,050","46,000",6.85M,-2.23%
20190728,"47,150","47,150","47,150","47,150",-,0.00%
20190726,"47,150","46,650","47,150","46,550",7.67M,-0.11%
20190725,"47,200","47,150","47,200","46,600",8.38M,1.72%
20190724,"46,400","47,100","47,150","46,250",8.34M,-1.90%
20190723,"47,300","47,350","47,550","47,050",8.90M,0.21%
20190722,"47,200","46,800","47,300","46,600",9.01M,0.85%
20190721,"46,800","46,800","46,800","46,800",-,0.00%
20190719,"46,800","46,650","46,950","46,600",7.98M,1.52%
20190718,"46,100","46,450","46,450","45,650",4.95M,0.11%
20190717,"46,050","46,150","46,350","45,950",5.21M,-1.71%
20190716,"46,850","46,450","46,850","46,300",7.21M,0.86%
20190715,"46,450","45,950","46,650","45,750",4.71M,0.32%
20190714,"46,300","46,300","46,300","46,300",-,0.00%
20190712,"46,300","46,350","46,400","45,800",5.12M,0.22%
20190711,"46,200","46,350","46,550","46,150",10.85M,1.43%
20190710,"45,550","45,550","46,150","45,500",9.17M,1.00%
20190709,"45,100","44,850","45,450","44,700",7.63M,1.58%
20190708,"44,400","44,750","44,800","44,350",7.81M,-2.74%
20190705,"45,650","45,950","45,950","45,250",7.22M,-0.76%
20190704,"46,000","45,250","46,200","45,250",6.36M,1.32%
20190703,"45,400","45,750","46,350","45,200",9.66M,-1.84%
20190702,"46,250","46,200","46,900","45,850",8.43M,-0.75%
20190701,"46,600","47,350","47,400","46,250",11.03M,-0.85%
20190630,"47,000","47,000","47,000","47,000",-,0.00%
20190628,"47,000","47,000","47,000","46,700",12.25M,1.08%
20190627,"46,500","46,000","46,600","45,750",12.58M,1.75%
20190626,"45,700","45,800","46,000","45,600",9.02M,0.22%
20190625,"45,600","45,200","45,800","45,200",6.87M,0.22%
20190624,"45,500","45,200","45,800","45,200",6.07M,-0.44%
20190623,"45,700","45,700","45,700","45,700",-,0.00%
20190621,"45,700","45,750","45,800","45,200",9.32M,0.44%
20190620,"45,500","44,850","45,500","44,850",6.76M,0.33%
20190619,"45,350","45,450","45,450","45,000",9.36M,2.25%
20190618,"44,350","43,750","44,500","43,650",7.98M,1.03%
20190617,"43,900","43,750","44,050","43,400",7.36M,-0.23%
20190616,"44,000","44,000","44,000","44,000",-,0.00%
20190614,"44,000","43,750","44,150","43,300",8.31M,0.57%
20190613,"43,750","44,200","44,400","43,400",16.89M,-1.91%
20190612,"44,600","44,800","45,050","44,300",8.55M,-0.56%
20190611,"44,850","44,800","45,000","44,550",6.63M,0.11%
20190610,"44,800","44,300","44,850","44,050",8.62M,1.36%
20190607,"44,200","43,600","44,350","43,450",11.62M,0.68%
20190605,"43,900","44,050","44,200","43,700",10.82M,1.04%
20190604,"43,450","43,400","43,700","43,000",9.87M,-0.80%
20190603,"43,800","42,950","43,900","42,500",15.08M,3.06%
20190531,"42,500","42,600","42,800","42,150",10.21M,-0.12%
20190530,"42,550","42,200","42,700","42,150",9.98M,1.79%
20190529,"41,800","41,850","42,100","41,300",14.52M,-1.76%
20190528,"42,550","42,550","42,950","42,150",22.59M,-0.23%
20190527,"42,650","42,500","43,000","42,350",7.44M,-0.12%
20190524,"42,700","43,800","43,800","42,400",13.34M,-2.62%
20190523,"43,850","43,900","44,000","43,250",12.19M,0.80%
20190522,"43,500","43,700","43,800","42,400",10.70M,0.81%
20190521,"43,150","42,600","43,950","42,350",18.69M,2.74%
20190520,"42,000","41,650","42,100","41,550",13.11M,1.94%
20190517,"41,200","41,950","42,050","40,850",12.29M,-0.84%
20190516,"41,550","42,350","42,400","41,350",13.62M,-2.35%
20190515,"42,550","42,700","43,050","42,550",7.66M,-0.23%
20190514,"42,650","41,300","43,100","41,300",11.54M,0.00%
20190513,"42,650","42,500","43,200","42,350",7.62M,-0.58%
20190510,"42,900","42,600","43,450","42,450",13.51M,1.06%
20190509,"42,450","43,900","44,250","42,450",22.04M,-4.07%
20190508,"44,250","44,300","44,850","44,200",10.04M,-1.34%
20190507,"44,850","45,250","45,300","44,400",11.96M,-0.99%
20190503,"45,300","45,900","46,050","45,300",6.54M,-1.31%
20190502,"45,900","45,500","46,150","45,400",8.62M,0.11%
20190430,"45,850","46,000","46,300","45,350",10.16M,-0.65%
20190429,"46,150","45,150","46,150","45,100",8.48M,2.90%
20190426,"44,850","44,200","45,000","43,800",9.37M,0.45%
20190425,"44,650","44,250","45,000","44,100",9.52M,-0.22%
20190424,"44,750","45,400","45,650","44,150",12.18M,-1.00%
20190423,"45,200","45,050","45,500","45,000",6.88M,-0.33%
20190422,"45,350","45,400","45,900","45,100",5.90M,0.11%
20190419,"45,300","45,750","46,000","45,250",8.35M,-0.66%
20190418,"45,600","47,200","47,250","45,500",10.83M,-3.08%
20190417,"47,050","47,300","47,600","47,000",5.47M,-0.42%
20190416,"47,250","47,400","47,400","46,800",7.62M,0.43%
20190415,"47,050","47,150","47,500","47,000",8.72M,0.43%
20190412,"46,850","46,050","46,900","46,000",7.65M,1.30%
20190411,"46,250","46,700","46,800","46,150",13.62M,-0.96%
20190410,"46,700","46,400","46,700","46,050",10.35M,0.11%
20190409,"46,650","46,700","46,950","46,200",6.88M,0.00%
20190408,"46,650","47,250","47,250","46,150",8.49M,-0.43%
20190405,"46,850","46,950","47,550","46,600",8.53M,-0.21%
20190404,"46,950","46,150","47,100","46,150",11.44M,0.75%
20190403,"46,600","46,750","46,750","45,800",12.00M,1.86%
20190402,"45,750","45,550","46,100","45,350",8.90M,1.55%
20190401,"45,050","45,200","45,450","44,850",6.79M,0.90%
20190329,"44,650","44,500","44,900","44,200",11.00M,-0.45%
20190328,"44,850","44,950","45,200","44,300",6.81M,-1.10%
20190327,"45,350","44,750","45,600","44,250",9.32M,0.22%
20190326,"45,250","45,500","45,700","44,900",9.65M,-0.55%
20190325,"45,500","45,300","45,650","44,800",8.68M,-2.26%
20190322,"46,550","46,850","47,000","46,250",12.49M,1.53%
20190321,"45,850","44,600","46,250","44,050",21.03M,4.09%
20190320,"44,050","43,800","44,200","43,100",9.83M,0.34%
20190319,"43,900","43,750","43,900","43,550",7.60M,0.46%
20190318,"43,700","43,950","44,150","43,450",8.16M,-1.13%
20190315,"44,200","43,800","44,250","43,700",14.61M,0.80%
20190314,"43,850","43,700","44,300","43,550",18.02M,0.00%
20190313,"43,850","44,250","44,450","43,700",8.10M,-1.79%
20190312,"44,650","44,300","44,950","44,150",10.83M,2.29%
20190311,"43,650","44,400","44,450","43,650",8.51M,-0.34%
20190308,"43,800","44,450","44,800","43,800",7.70M,-1.46%
20190307,"44,450","43,400","44,950","43,400",10.99M,1.02%
20190306,"44,000","44,000","44,300","43,700",9.95M,-0.56%
20190305,"44,250","44,600","45,100","44,150",10.50M,-1.34%
20190304,"44,850","46,000","46,100","44,800",12.67M,-0.55%
20190228,"45,100","46,400","46,500","45,100",23.50M,-3.53%
20190227,"46,750","47,000","47,250","46,750",7.69M,0.00%
20190226,"46,750","47,350","47,450","46,500",7.98M,-1.27%
20190225,"47,350","47,400","47,550","47,050",7.46M,0.42%
20190222,"47,150","46,500","47,150","46,450",6.67M,0.43%
20190221,"46,950","46,500","47,200","46,200",8.45M,0.11%
20190220,"46,900","46,750","47,100","46,500",11.22M,2.07%
20190219,"45,950","45,850","46,150","45,450",6.73M,-0.54%
20190218,"46,200","46,500","46,850","45,850",8.17M,0.33%
20190215,"46,050","46,750","46,850","45,650",10.54M,-3.05%
20190214,"47,500","46,600","47,500","46,150",17.12M,2.81%
20190213,"46,200","46,400","46,700","46,000",11.29M,0.33%
20190212,"46,050","44,650","46,250","44,650",12.99M,2.33%
20190211,"45,000","44,500","45,000","44,250",10.23M,0.45%
20190208,"44,800","45,700","45,700","44,650",12.49M,-3.03%
20190207,"46,200","46,800","47,100","46,200",15.64M,-0.32%
20190201,"46,350","46,650","46,950","46,250",13.63M,0.43%
20190131,"46,150","46,650","47,050","46,150",21.47M,-0.54%
20190130,"46,400","44,800","46,400","44,800",17.06M,1.98%
20190129,"45,500","45,050","45,500","44,350",15.05M,1.00%
20190128,"45,050","45,000","45,500","44,600",17.60M,0.67%
20190125,"44,750","44,300","44,750","43,750",21.94M,3.95%
20190124,"43,050","43,050","43,100","42,350",14.17M,2.50%
20190123,"42,000","41,350","42,250","41,350",10.38M,-0.36%
20190122,"42,150","42,750","42,850","41,850",9.91M,-1.40%
20190121,"42,750","42,700","42,750","41,900",11.34M,1.06%
20190118,"42,300","42,000","42,400","41,950",9.73M,0.83%
20190117,"41,950","41,700","42,100","41,450",11.57M,1.21%
20190116,"41,450","41,150","41,450","40,700",8.48M,0.85%
20190115,"41,100","40,050","41,100","39,850",11.22M,2.62%
20190114,"40,050","40,450","40,700","39,850",11.98M,-1.11%
20190111,"40,500","40,350","40,550","39,950",11.23M,1.76%
20190110,"39,800","40,000","40,150","39,600",14.33M,0.51%
20190109,"39,600","38,650","39,600","38,300",16.96M,3.94%
20190108,"38,100","38,000","39,200","37,950",12.64M,-1.68%
20190107,"38,750","38,000","38,900","37,800",11.94M,3.47%
20190104,"37,450","37,450","37,600","36,850",13.30M,-0.40%
20190103,"37,600","38,300","38,550","37,450",12.44M,-2.97%
20190102,"38,750","39,400","39,400","38,550",7.79M,0.13%
20181228,"38,700","38,250","38,900","38,200",9.72M,1.18%
20181227,"38,250","38,700","38,800","38,100",10.46M,-0.26%
20181226,"38,350","38,400","38,750","38,300",12.61M,-1.16%
20181224,"38,800","38,500","39,050","38,300",9.72M,0.39%
20181221,"38,650","38,200","38,650","38,100",14.04M,0.00%
20181220,"38,650","38,600","39,100","38,500",10.56M,-1.15%
20181219,"39,100","38,900","39,350","38,850",9.51M,0.51%
20181218,"38,900","38,300","39,200","38,300",10.79M,-0.64%
20181217,"39,150","38,650","39,600","38,650",11.44M,0.51%
20181214,"38,950","40,200","40,200","38,700",18.81M,-2.63%
20181213,"40,000","40,650","40,750","40,000",22.70M,-1.11%
20181212,"40,450","40,250","40,700","40,150",10.61M,0.50%
20181211,"40,250","40,600","40,700","40,200",10.60M,0.12%
20181210,"40,200","40,450","40,650","40,000",13.29M,-1.83%
20181207,"40,950","40,900","41,400","40,850",11.41M,1.11%
20181206,"40,500","40,600","41,100","40,450",14.06M,-2.29%
20181205,"41,450","40,900","41,750","40,850",12.03M,-1.66%
20181204,"42,150","42,650","42,900","41,900",13.97M,-2.54%
20181203,"43,250","42,750","43,400","42,400",11.62M,3.35%
20181130,"41,850","43,450","44,000","41,750",19.08M,-3.01%
20181129,"43,150","43,850","43,850","42,900",8.44M,0.00%
20181128,"43,150","42,800","43,200","42,750",6.86M,0.23%
20181127,"43,050","42,900","43,100","42,500",8.15M,1.06%
20181126,"42,600","42,150","42,800","42,100",5.96M,0.71%
20181125,"42,300","42,250","42,350","42,250",-,-0.24%
20181123,"42,400","42,450","42,600","41,900",5.18M,-0.12%
20181122,"42,450","42,000","42,650","42,000",5.95M,0.83%
20181121,"42,100","41,800","42,300","41,800",10.68M,-1.64%
20181120,"42,800","42,450","43,000","42,100",9.32M,-1.95%
20181119,"43,650","44,050","44,250","43,450",7.50M,-0.34%
20181118,"43,800","44,000","44,000","43,800",-,-0.45%
20181116,"44,000","44,600","44,750","43,700",7.75M,-0.56%
20181115,"44,250","44,050","44,350","43,500",5.85M,0.34%
20181114,"44,100","44,500","44,500","43,800",6.56M,-0.90%
20181113,"44,500","43,900","44,500","43,400",9.02M,-1.55%
20181112,"45,200","43,850","45,250","43,700",8.49M,3.20%
20181111,"43,800","43,900","43,900","43,800",-,-1.13%
20181109,"44,300","44,450","44,850","43,900",7.19M,0.57%
20181108,"44,050","44,900","45,050","44,050",12.32M,0.11%
20181107,"44,000","43,600","44,500","43,400",11.54M,0.57%
20181106,"43,750","43,750","43,800","42,950",7.36M,-0.11%
20181105,"43,800","43,750","43,800","42,900",9.18M,0.23%
20181104,"43,700","43,800","43,800","43,700",-,-1.02%
20181102,"44,150","43,050","44,250","42,800",16.50M,4.74%
20181101,"42,150","42,450","42,950","42,150",12.92M,-0.59%
20181031,"42,400","42,900","43,350","41,700",16.99M,0.12%
20181030,"42,350","41,400","43,000","41,000",14.19M,2.29%
20181029,"41,400","40,850","41,950","40,550",13.03M,0.98%
20181026,"41,000","41,100","41,300","40,400",14.00M,0.00%
20181025,"41,000","40,600","41,550","40,550",18.58M,-3.64%
20181024,"42,550","43,050","43,100","42,250",13.49M,-1.16%
20181023,"43,050","43,300","43,450","42,550",9.44M,-1.15%
20181022,"43,550","43,450","43,950","43,200",7.79M,0.23%
20181021,"43,450","43,400","43,450","43,400",-,-1.03%
20181019,"43,900","43,900","44,150","43,450",7.78M,-0.34%
20181018,"44,050","43,950","44,450","43,700",8.09M,-0.23%
20181017,"44,150","44,150","44,500","44,000",8.30M,1.26%
20181016,"43,600","43,700","44,150","43,350",6.80M,-0.46%
20181015,"43,800","44,050","44,050","43,350",7.19M,-0.45%
20181014,"44,000","44,000","44,000","44,000",-,0.00%
20181012,"44,000","43,200","44,650","43,200",12.37M,2.09%
20181011,"43,100","44,000","44,650","43,100",18.87M,-4.86%
20181010,"45,300","45,250","45,500","44,500",9.75M,0.78%
20181009,"44,950","44,950","44,950","44,950",-,0.00%
20181008,"44,950","44,200","45,200","44,200",6.57M,0.56%
20181007,"44,700","44,700","44,700","44,700",-,0.00%
20181005,"44,700","44,800","45,500","44,550",10.51M,0.00%
20181004,"44,700","45,150","45,600","44,700",11.34M,-2.19%
20181003,"45,700","45,700","45,700","45,700",-,0.00%
20181002,"45,700","46,450","46,700","45,700",6.34M,-1.40%
20181001,"46,350","46,450","46,800","45,800",6.31M,-0.22%
20180930,"46,450","46,450","46,450","46,450",-,0.00%
20180928,"46,450","47,250","47,250","46,300",10.81M,-2.21%
20180927,"47,500","46,950","47,500","46,450",15.26M,0.21%
20180926,"47,400","47,400","47,400","47,400",-,0.00%
20180921,"47,400","46,550","47,550","46,550",14.39M,0.32%
20180920,"47,250","46,850","47,600","46,400",13.40M,2.38%
20180919,"46,150","46,000","46,200","45,700",9.26M,1.43%
20180918,"45,500","44,950","45,900","44,700",8.97M,0.78%
20180917,"45,150","45,550","45,800","44,900",8.10M,-1.53%
20180916,"45,850","45,850","45,850","45,850",-,0.00%
20180914,"45,850","45,000","45,850","44,900",12.03M,4.09%
20180913,"44,050","44,550","44,750","44,000",17.93M,-1.12%
20180912,"44,550","44,900","45,100","44,500",11.17M,-1.11%
20180911,"45,050","45,550","45,900","45,050",7.81M,-0.99%
20180910,"45,500","45,450","45,550","45,000",7.87M,1.34%
20180909,"44,900","44,900","44,900","44,900",-,0.00%
20180907,"44,900","44,500","45,200","44,400",17.73M,-2.60%
20180906,"46,100","46,200","46,400","45,800",8.57M,-1.07%
20180905,"46,600","47,300","47,450","46,400",9.10M,-2.20%
20180904,"47,650","47,550","47,800","47,200",6.61M,0.42%
20180903,"47,450","48,200","48,300","47,300",7.91M,-2.06%
20180902,"48,450","48,450","48,450","48,450",-,0.00%
20180831,"48,450","47,100","48,450","47,000",13.51M,1.68%
20180830,"47,650","46,950","47,950","46,700",12.16M,1.82%
20180829,"46,800","46,750","46,800","46,400",5.50M,0.54%
20180828,"46,550","46,800","46,950","46,300",7.23M,0.54%
20180827,"46,300","46,100","46,550","46,000",5.11M,0.33%
20180826,"46,150","46,150","46,150","46,150",-,0.00%
20180824,"46,150","45,900","46,400","45,550",6.44M,-0.11%
20180823,"46,200","46,150","46,200","45,700",6.60M,0.22%
20180822,"46,100","45,150","46,200","44,900",11.63M,2.90%
20180821,"44,800","43,700","44,900","43,700",9.47M,2.17%
20180820,"43,850","43,500","44,200","43,500",7.20M,-0.57%
20180819,"44,100","44,100","44,100","44,100",-,0.00%
20180817,"44,100","44,050","44,400","44,050",6.54M,-0.34%
20180816,"44,250","43,800","44,650","43,700",10.07M,-1.99%
20180815,"45,150","45,150","45,150","45,150",-,0.00%
20180814,"45,150","44,850","45,400","44,850",6.37M,0.22%
20180813,"45,050","44,950","45,100","44,650",9.78M,-0.77%
20180812,"45,400","45,400","45,400","45,400",-,0.00%
20180810,"45,400","46,150","46,400","44,850",16.53M,-3.20%
20180809,"46,900","47,000","47,050","46,450",11.40M,0.21%
20180808,"46,800","47,000","47,000","46,550",6.37M,0.21%
20180807,"46,700","46,300","46,750","45,900",9.02M,1.97%
20180806,"45,800","46,150","46,150","45,750",6.70M,0.11%
20180805,"45,750","45,750","45,750","45,750",-,0.00%
20180803,"45,750","45,850","45,900","45,450",7.44M,0.44%
20180802,"45,550","46,550","46,800","45,500",7.93M,-2.15%
20180801,"46,550","46,050","46,850","46,050",7.09M,0.65%
20180731,"46,250","46,200","46,450","46,000",7.59M,-0.54%
20180730,"46,500","46,550","46,800","46,350",5.52M,-0.85%
20180729,"46,900","46,900","46,900","46,900",-,0.00%
20180727,"46,900","46,450","47,000","46,450",4.75M,0.00%
20180726,"46,900","46,100","47,000","46,000",7.34M,1.63%
20180725,"46,150","46,250","46,550","45,900",7.21M,0.00%
20180724,"46,150","46,350","46,600","45,950",7.92M,-0.75%
20180723,"46,500","47,100","47,200","46,150",10.81M,-2.00%
20180722,"47,450","47,450","47,450","47,450",-,0.00%
20180720,"47,450","47,000","47,600","46,700",10.23M,1.17%
20180719,"46,900","47,050","47,200","46,600",9.70M,0.75%
20180718,"46,550","46,700","47,200","46,450",10.88M,1.53%
20180717,"45,850","46,150","46,200","45,600",8.76M,-0.43%
20180716,"46,050","46,800","46,800","46,000",7.54M,-0.97%
20180715,"46,500","46,500","46,500","46,500",-,0.00%
20180713,"46,500","45,800","46,500","45,750",10.96M,2.20%
20180712,"45,500","45,900","46,250","45,450",11.78M,-1.09%
20180711,"46,000","46,400","46,450","45,400",10.82M,-0.65%
20180710,"46,300","46,200","46,550","46,100",9.27M,1.54%
20180709,"45,600","45,500","46,100","45,200",11.59M,1.56%
20180708,"44,900","44,900","44,900","44,900",-,0.00%
20180706,"44,900","45,500","45,850","44,650",17.78M,-2.29%
20180705,"45,950","46,100","46,550","45,600",6.91M,-0.65%
20180704,"46,250","46,700","47,050","46,050",8.13M,0.22%
20180703,"46,150","45,750","46,450","45,750",10.43M,1.32%
20180702,"45,550","46,500","47,150","45,500",12.75M,-2.36%
20180629,"46,650","46,250","47,150","46,200",13.69M,-0.32%
20180628,"46,800","46,850","47,150","46,600",12.08M,-2.40%
20180627,"47,950","47,450","48,500","47,000",15.09M,2.02%
20180626,"47,000","45,900","47,300","45,900",11.14M,0.75%
20180625,"46,650","47,050","47,050","46,150",9.52M,-1.27%
20180624,"47,250","47,250","47,250","47,250",-,0.00%
20180622,"47,250","47,000","47,250","46,200",10.25M,0.43%
20180621,"47,050","47,900","47,900","47,050",9.98M,0.11%
20180620,"47,000","47,450","47,600","46,850",11.31M,0.00%
20180619,"47,000","47,200","47,350","46,500",15.17M,0.86%
20180618,"46,600","47,600","47,650","46,200",16.62M,-2.20%
20180617,"47,650","47,650","47,650","47,650",-,0.00%
20180615,"47,650","48,500","48,700","47,650",16.84M,-1.14%
20180614,"48,200","49,000","49,000","48,200",19.00M,-2.43%
20180613,"49,400","49,400","49,400","49,400",-,0.00%
20180612,"49,400","49,700","49,800","49,250",11.43M,-1.00%
20180611,"49,900","49,750","50,300","49,350",10.50M,0.50%
20180610,"49,650","49,650","49,650","49,650",-,0.00%
20180608,"49,650","50,200","50,400","49,600",16.58M,-1.88%
20180607,"50,600","51,800","51,800","50,500",13.17M,-1.36%
20180606,"51,300","51,300","51,300","51,300",-,0.00%
20180605,"51,300","51,100","51,400","50,400",8.86M,0.39%
20180604,"51,100","50,800","51,200","50,700",9.29M,-0.39%
20180603,"51,300","51,300","51,300","51,300",-,0.00%
20180601,"51,300","50,500","51,700","49,950",12.44M,1.18%
20180531,"50,700","50,400","50,800","49,850",35.94M,2.42%
20180530,"49,500","51,300","51,500","49,100",20.20M,-3.51%
20180529,"51,300","52,200","52,500","51,300",8.43M,-1.91%
20180528,"52,300","52,500","53,000","52,000",9.75M,-0.76%
20180527,"52,700","52,700","52,700","52,700",-,0.00%
20180525,"52,700","51,000","52,800","50,800",15.17M,2.53%
20180524,"51,400","52,000","52,000","51,100",8.18M,-0.77%
20180523,"51,800","50,600","52,000","50,400",17.00M,3.60%
20180522,"50,000","50,000","50,000","50,000",-,0.00%
20180521,"50,000","49,650","50,200","49,100",8.62M,1.01%
20180518,"49,500","49,900","49,900","49,350",6.64M,0.20%
20180517,"49,400","50,300","50,500","49,400",10.30M,-0.90%
20180516,"49,850","49,200","50,200","49,150",15.24M,1.32%
20180515,"49,200","50,200","50,400","49,100",17.01M,-1.80%
20180514,"50,100","51,000","51,100","49,900",14.84M,-2.34%
20180511,"51,300","52,000","52,200","51,200",10.14M,-0.58%
20180510,"51,600","51,700","51,700","50,600",13.76M,1.38%
20180509,"50,900","52,600","52,800","50,900",15.96M,-3.23%
20180508,"52,600","52,600","53,200","51,900",22.96M,1.35%
20180507,"51,900","51,900","51,900","51,900",-,0.00%
20180504,"51,900","53,000","53,900","51,800",39.42M,-2.08%
20180427,"53,000","53,380","53,640","52,440",28.28M,1.65%
20180426,"52,140","50,420","52,160","50,400",17.92M,3.45%
20180425,"50,400","49,220","50,500","49,220",16.55M,-0.12%
20180424,"50,460","51,840","51,860","50,080",15.70M,-2.77%
20180423,"51,900","51,000","52,080","51,000",8.85M,0.54%
20180420,"51,620","51,800","52,260","51,420",11.65M,-2.20%
20180419,"52,780","52,000","52,980","51,540",17.13M,2.76%
20180418,"51,360","51,000","51,360","50,580",13.44M,2.76%
20180417,"49,980","50,240","50,540","49,820",7.76M,-0.72%
20180416,"50,340","50,320","50,600","49,860",7.69M,1.08%
20180413,"49,800","49,600","50,180","49,400",10.26M,1.63%
20180412,"49,000","49,440","49,440","48,880",12.45M,0.29%
20180411,"48,860","49,900","49,900","48,600",10.03M,-0.04%
20180410,"48,880","48,540","49,220","48,040",10.93M,-0.65%
20180409,"49,200","48,260","49,440","48,200",9.88M,1.65%
20180406,"48,400","48,000","48,580","47,400",10.95M,-0.70%
20180405,"48,740","47,400","49,380","47,340",13.24M,3.88%
20180404,"46,920","48,160","48,260","46,920",12.31M,-2.49%
20180403,"48,120","47,880","48,140","47,280",12.69M,-0.87%
20180402,"48,540","49,000","49,220","48,500",7.10M,-1.38%
20180330,"49,220","49,080","49,900","49,080",7.75M,0.37%
20180329,"49,040","48,700","49,560","48,320",9.69M,0.70%
20180328,"48,700","49,100","49,100","48,340",15.06M,-2.56%
20180327,"49,980","50,320","50,460","49,080",11.84M,-0.60%
20180326,"50,280","49,420","50,280","49,040",10.04M,1.13%
20180323,"49,720","50,340","50,720","49,600",14.66M,-3.98%
20180322,"51,780","51,060","51,780","51,040",8.28M,1.41%
20180321,"51,060","51,780","51,780","51,060",8.33M,-0.27%
20180320,"51,200","50,700","51,200","50,100",8.08M,0.91%
20180319,"50,740","50,620","51,340","50,440",8.21M,-0.78%
20180316,"51,140","51,220","51,420","50,240",12.11M,-0.78%
20180315,"51,540","52,000","52,020","51,020",8.64M,-0.43%
20180314,"51,760","51,020","52,000","51,000",12.51M,0.19%
20180313,"51,660","50,760","51,660","50,360",20.06M,3.86%
20180312,"49,740","50,560","50,780","49,580",8.64M,0.00%
20180309,"49,740","49,440","50,540","49,240",14.23M,1.10%
20180308,"49,200","49,200","49,480","48,080",19.43M,1.19%
20180307,"48,620","48,200","48,900","47,220",21.20M,3.40%
20180306,"47,020","45,920","47,100","45,820",15.12M,4.03%
20180305,"45,200","45,820","46,160","45,080",13.27M,-1.78%
20180302,"46,020","46,580","46,800","46,000",13.11M,-2.21%
20180228,"47,060","47,380","48,100","47,000",14.97M,-0.68%
20180227,"47,380","48,360","48,380","47,380",9.41M,0.00%
20180226,"47,380","47,280","47,560","47,080",8.20M,0.34%
20180223,"47,220","46,760","47,800","46,760",12.09M,0.98%
20180222,"46,760","47,260","47,260","46,760",8.67M,-1.10%
20180221,"47,280","47,280","47,580","46,840",12.81M,-0.25%
20180220,"47,400","48,040","48,160","47,220",10.10M,-2.03%
20180219,"48,380","49,800","49,800","47,860",14.77M,-1.27%
20180214,"49,000","48,080","49,100","47,940",16.88M,3.07%
20180213,"47,540","46,200","48,060","46,200",18.75M,3.98%
20180212,"45,720","45,100","46,320","45,040",15.55M,2.28%
20180209,"44,700","44,440","45,180","44,420",17.40M,-2.83%
20180208,"46,000","46,120","46,620","45,980",22.48M,0.44%
20180207,"45,800","48,240","48,260","45,800",23.37M,-3.42%
20180206,"47,420","46,600","47,920","46,580",18.25M,-1.04%
20180205,"47,920","46,500","48,320","46,000",25.87M,0.46%
20180202,"47,700","49,380","49,400","47,700",27.89M,-4.26%
20180201,"49,820","50,620","50,960","49,720",25.79M,-0.16%
20180131,"49,900","50,020","54,140","49,600",64.19M,0.20%
20180130,"49,800","50,440","50,640","49,780",12.20M,-2.77%
20180129,"51,220","51,200","51,480","50,900",11.64M,0.87%
20180126,"50,780","50,500","50,780","49,840",10.34M,1.03%
20180125,"50,260","49,220","50,360","49,160",10.99M,1.86%
20180124,"49,340","48,860","49,700","48,560",9.17M,0.37%
20180123,"49,160","48,660","49,160","48,300",12.86M,1.91%
20180122,"48,240","48,640","48,680","47,960",12.31M,-2.19%
20180119,"49,320","50,380","50,380","49,040",9.04M,-1.16%
20180118,"49,900","50,020","50,640","49,820",14.56M,0.56%
20180117,"49,620","50,020","50,020","49,060",10.57M,-0.76%
20180116,"50,000","48,760","50,140","48,620",13.20M,3.01%
20180115,"48,540","48,800","48,980","47,920",10.08M,0.71%
20180112,"48,200","48,240","48,480","46,760",26.77M,-0.08%
20180111,"48,240","48,200","49,260","48,020",23.95M,-1.23%
20180110,"48,840","50,500","50,520","48,640",18.53M,-3.10%
20180109,"50,400","51,460","51,720","49,980",17.83M,-3.11%
20180108,"52,020","52,400","52,520","51,500",8.36M,-0.19%
20180105,"52,120","51,300","52,120","51,200",9.33M,2.04%
20180104,"51,080","52,120","52,180","50,640",11.64M,-1.05%
20180103,"51,620","52,540","52,560","51,420",9.92M,1.18%
20180102,"51,020","51,380","51,400","50,780",8.46M,0.12%
20171228,"50,960","49,560","50,960","49,500",8.88M,3.24%
20171227,"49,360","48,960","49,560","48,460",10.71M,2.41%
20171226,"48,200","49,760","50,100","48,200",15.91M,-3.02%
20171222,"49,700","49,400","49,960","49,240",11.17M,1.14%
20171221,"49,140","51,000","51,060","49,100",15.31M,-3.42%
20171220,"50,880","51,500","51,760","50,820",10.07M,-1.32%
20171219,"51,560","51,540","52,080","51,520",10.51M,0.70%
20171218,"51,200","50,620","51,240","50,620",7.19M,1.15%
20171215,"50,620","51,240","51,480","50,520",14.85M,-0.86%
20171214,"51,060","51,320","52,280","51,060",19.98M,-0.51%
20171213,"51,320","52,100","52,100","51,100",11.08M,-1.50%
20171212,"52,100","51,820","52,100","51,660",8.05M,0.62%
20171211,"51,780","52,000","52,040","51,500",8.00M,-0.42%
20171208,"52,000","51,360","52,000","51,040",10.66M,2.48%
20171207,"50,740","50,040","50,980","50,020",11.03M,1.44%
20171206,"50,020","51,260","51,560","50,020",10.83M,-2.42%
20171205,"51,260","50,600","51,300","50,280",9.20M,-0.16%
20171204,"51,340","50,840","51,340","50,020",13.62M,0.98%
20171201,"50,840","50,800","51,780","50,800",12.46M,0.08%
20171130,"50,800","50,800","51,860","50,200",28.09M,-3.42%
20171129,"52,600","53,200","53,240","52,500",9.58M,-1.28%
20171128,"53,280","52,700","53,280","51,720",13.39M,1.22%
20171127,"52,640","55,360","55,360","52,640",18.09M,-5.08%
20171124,"55,460","55,300","55,500","55,180",4.42M,0.29%
20171123,"55,300","55,960","55,980","55,020",6.21M,-1.18%
20171122,"55,960","55,980","56,200","55,620",7.89M,1.23%
20171121,"55,280","55,400","55,840","55,280",9.92M,0.14%
20171120,"55,200","55,900","55,980","55,200",9.45M,-1.11%
20171117,"55,820","56,400","56,880","55,820",10.37M,0.07%
20171116,"55,780","55,440","56,000","55,400",7.62M,0.80%
20171115,"55,340","55,920","56,320","55,320",8.75M,-1.04%
20171114,"55,920","56,380","56,740","55,920",6.72M,-0.82%
20171113,"56,380","56,400","56,800","56,100",7.47M,-0.04%
20171110,"56,400","55,800","56,540","55,780",6.64M,0.11%
20171109,"56,340","56,920","56,920","55,900",11.99M,-0.74%
20171108,"56,760","56,100","57,060","55,860",8.36M,1.18%
20171107,"56,100","56,380","56,920","55,860",7.46M,-0.50%
20171106,"56,380","56,380","56,500","55,340",8.96M,0.00%
20171103,"56,380","57,060","57,140","55,860",9.93M,-1.19%
20171102,"57,060","57,500","57,520","56,760",10.18M,-0.28%
20171101,"57,220","57,500","57,500","56,180",14.28M,3.89%
20171031,"55,080","54,060","55,440","53,500",13.30M,1.92%
20171030,"54,040","53,780","54,320","53,700",8.19M,1.81%
20171027,"53,080","52,400","53,320","52,140",7.39M,1.30%
20171026,"52,400","53,720","53,900","52,400",9.76M,-2.78%
20171025,"53,900","54,040","54,420","53,700",5.87M,-0.26%
20171024,"54,040","54,700","54,780","54,040",5.75M,-0.48%
20171023,"54,300","54,600","54,640","54,000",8.30M,0.85%
20171020,"53,840","52,800","54,100","52,800",7.86M,1.62%
20171019,"52,980","54,700","54,700","52,980",11.97M,-3.25%
20171018,"54,760","54,820","55,240","54,040",10.03M,-0.07%
20171017,"54,800","54,020","55,380","54,000",10.57M,1.63%
20171016,"53,920","53,980","54,860","53,760",8.96M,-0.15%
20171013,"54,000","54,540","54,840","53,780",12.52M,-1.46%
20171012,"54,800","54,840","55,160","54,100",13.73M,0.29%
20171011,"54,640","53,600","54,760","53,340",12.90M,3.48%
20171010,"52,800","53,360","53,640","52,800",19.83M,-97.94%
20171009,"2,564,000","2,564,000","2,564,000","2,564,000",0.01K,"4,900.00%"
20170929,"51,280","51,180","51,620","50,840",11.68M,0.04%
20170928,"51,260","52,260","52,460","51,260",12.01M,-0.81%
20170927,"51,680","52,000","52,200","51,500",9.99M,0.04%
20170926,"51,660","53,020","53,120","51,560",15.73M,-3.66%
20170925,"53,620","53,000","53,680","53,000",8.78M,1.17%
20170922,"53,000","52,960","53,600","52,460",13.87M,0.38%
20170921,"52,800","52,220","52,960","52,220",8.30M,1.11%
20170920,"52,220","52,120","52,500","51,840",9.12M,0.19%
20170919,"52,120","52,500","52,640","51,780",9.75M,-0.69%
20170918,"52,480","50,540","52,480","50,520",11.27M,4.13%
20170915,"50,400","50,300","50,560","49,860",10.55M,0.20%
20170914,"50,300","50,060","50,320","49,760",14.06M,1.37%
20170913,"49,620","49,820","50,400","49,440",9.33M,0.04%
20170912,"49,600","50,200","50,220","49,140",11.44M,-0.40%
20170911,"49,800","49,700","50,180","49,500",9.80M,1.47%
20170908,"49,080","48,700","49,180","48,580",10.84M,2.00%
20170907,"48,120","47,000","48,220","47,000",9.64M,2.38%
20170906,"47,000","46,760","47,180","46,700",10.27M,0.51%
20170905,"46,760","46,240","46,900","45,960",9.68M,1.56%
20170904,"46,040","45,780","46,360","45,500",7.88M,-0.95%
20170901,"46,480","46,460","46,640","46,300",9.26M,0.35%
20170831,"46,320","46,220","46,640","46,000",10.08M,0.26%
20170830,"46,200","46,380","46,400","45,960",7.24M,0.26%
20170829,"46,080","45,640","46,080","45,160",12.59M,-0.04%
20170828,"46,100","47,020","47,240","45,960",9.96M,-1.96%
20170825,"47,020","47,880","47,880","46,720",10.80M,-1.05%
20170824,"47,520","47,520","47,660","47,340",8.49M,0.08%
20170823,"47,480","47,780","47,780","47,180",7.68M,1.02%
20170822,"47,000","46,820","47,160","46,700",6.48M,0.34%
20170821,"46,840","47,240","47,240","46,580",4.90M,-0.13%
20170818,"46,900","46,760","47,240","46,240",10.00M,-0.30%
20170817,"47,040","46,960","47,300","46,740",12.11M,1.82%
20170816,"46,200","46,220","46,380","46,000",21.88M,2.67%
20170814,"45,000","45,120","45,400","44,720",18.78M,0.85%
20170811,"44,620","45,120","45,300","44,220",24.82M,-2.79%
20170810,"45,900","46,200","46,320","45,460",22.83M,-0.82%
20170809,"46,280","47,400","47,400","46,240",14.53M,-3.02%
20170808,"47,720","47,980","48,260","47,480",7.93M,0.29%
20170807,"47,580","47,500","48,080","47,440",7.12M,-0.25%
20170804,"47,700","48,160","48,180","47,500",8.36M,-0.17%
20170803,"47,780","49,000","49,000","47,120",15.51M,-2.49%
20170802,"49,000","49,200","49,340","48,600",7.59M,0.82%
20170801,"48,600","48,000","48,840","47,540",11.22M,0.83%
20170731,"48,200","47,420","48,240","46,920",12.65M,0.92%
20170728,"47,760","49,800","49,800","47,380",25.54M,-4.10%
20170727,"49,800","50,000","50,640","49,560",11.43M,-0.08%
20170726,"49,840","49,600","50,020","49,300",10.93M,-0.32%
20170725,"50,000","50,500","50,760","49,940",10.13M,-1.69%
20170724,"50,860","50,700","51,000","50,620",7.09M,-0.43%
20170721,"51,080","50,860","51,160","50,520",8.43M,-0.23%
20170720,"51,200","50,760","51,320","50,560",8.35M,0.91%
20170719,"50,740","50,620","50,820","50,000",11.16M,-0.20%
20170718,"50,840","50,420","50,880","50,360",6.66M,0.39%
20170717,"50,640","50,900","51,020","50,520",7.86M,0.32%
20170714,"50,480","51,000","51,080","50,420",7.98M,-0.16%
20170713,"50,560","50,080","50,940","50,040",15.63M,1.36%
20170712,"49,880","49,000","50,000","48,840",9.47M,1.80%
20170711,"49,000","48,640","49,000","48,280",9.59M,0.70%
20170710,"48,660","48,500","48,900","48,320",10.60M,1.67%
20170707,"47,860","47,740","48,120","47,620",8.04M,-0.42%
20170706,"48,060","48,000","48,100","47,720",10.55M,1.01%
20170705,"47,580","46,820","47,680","46,780",9.77M,1.23%
20170704,"47,000","47,160","47,400","46,900",7.95M,-0.47%
20170703,"47,220","47,500","47,780","47,120",6.80M,-0.67%
20170630,"47,540","47,500","47,620","47,100",11.75M,-0.83%
20170629,"47,940","48,040","48,320","47,940",7.99M,0.50%
20170628,"47,700","47,600","48,000","47,560",9.45M,-1.24%
20170627,"48,300","48,220","48,400","47,900",9.38M,0.04%
20170626,"48,280","47,520","48,360","47,520",8.06M,1.39%
20170623,"47,620","47,600","47,780","47,420",8.63M,-0.71%
20170622,"47,960","47,960","48,080","47,720",8.92M,1.01%
20170621,"47,480","47,740","48,120","47,480",9.65M,-1.37%
20170620,"48,140","47,240","48,140","47,220",14.84M,3.39%
20170619,"46,560","45,580","46,560","45,560",10.64M,2.15%
20170616,"45,580","45,500","45,940","45,460",15.12M,-0.22%
20170615,"45,680","45,680","45,920","45,180",9.15M,0.71%
20170614,"45,360","45,800","46,060","45,240",9.74M,-0.09%
20170613,"45,400","45,140","45,620","45,140",8.62M,0.04%
20170612,"45,380","45,420","45,600","45,140",10.90M,-1.56%
20170609,"46,100","45,680","46,440","45,600",11.73M,2.08%
20170608,"45,160","45,000","45,580","45,000",13.95M,-0.31%
20170607,"45,300","46,500","46,500","45,240",12.19M,-98.03%
20170606,"2,297,000","2,297,000","2,297,000","2,297,000",-,"4,900.00%"
20170605,"45,940","46,040","46,360","45,720",7.56M,-0.04%
20170602,"45,960","45,060","45,960","45,000",12.40M,2.86%
20170601,"44,680","44,860","44,900","44,400",9.74M,-0.04%
20170531,"44,700","44,580","45,020","44,400",18.39M,0.13%
20170530,"44,640","45,520","45,660","44,480",12.42M,-2.15%
20170529,"45,620","46,220","46,400","45,380",8.72M,-1.00%
20170526,"46,080","45,600","46,460","45,540",13.06M,0.88%
20170525,"45,680","45,160","45,680","44,800",12.95M,1.78%
20170524,"44,880","44,860","45,300","44,800",8.60M,-0.09%
20170523,"44,920","45,400","45,580","44,900",12.57M,-0.40%
20170522,"45,100","45,040","45,380","44,760",17.62M,0.85%
20170519,"44,720","45,640","45,780","44,720",15.72M,-2.66%
20170518,"45,940","45,740","46,000","45,540",10.77M,-0.86%
20170517,"46,340","46,120","46,640","46,100",7.41M,-0.09%
20170516,"46,380","46,660","46,800","46,100",8.65M,0.61%
20170515,"46,100","45,620","46,280","45,620",8.00M,0.61%
20170512,"45,820","45,760","46,160","45,660",9.00M,0.70%
20170511,"45,500","45,420","46,180","45,220",20.43M,-0.22%
20170510,"45,600","46,160","47,220","45,600",22.63M,-98.06%
20170509,"2,351,000","2,351,000","2,351,000","2,351,000",0.04K,"4,900.00%"
20170508,"47,020","45,520","47,020","45,340",16.63M,3.30%
20170504,"45,520","45,700","45,700","44,860",11.28M,-97.97%
20170503,"2,245,000","2,245,000","2,245,000","2,245,000",-,"4,900.00%"
20170502,"44,900","45,500","45,500","44,760",14.03M,-97.99%
20170501,"2,231,000","2,231,000","2,231,000","2,231,000",0.00K,"4,900.00%"
20170428,"44,620","45,780","45,800","44,520",21.47M,1.78%
20170427,"43,840","42,700","44,520","41,960",21.48M,2.43%
20170426,"42,800","42,700","42,800","42,520",10.63M,0.23%
20170425,"42,700","41,460","42,740","41,320",14.25M,3.54%
20170424,"41,240","41,260","41,260","40,920",7.01M,1.18%
20170421,"40,760","40,480","41,400","40,480",12.16M,1.19%
20170420,"40,280","40,580","40,800","40,080",19.56M,-1.52%
20170419,"40,900","41,300","41,420","40,900",10.14M,-1.45%
20170418,"41,500","41,680","41,820","41,280",6.35M,-0.14%
20170417,"41,560","42,000","42,080","41,520",4.20M,-1.09%
20170414,"42,020","42,160","42,260","41,760",4.46M,-0.94%
20170413,"42,420","41,660","42,460","41,660",8.48M,1.24%
20170412,"41,900","41,860","41,940","41,700",6.77M,0.72%
20170411,"41,600","41,940","41,940","41,580",5.37M,-0.81%
20170410,"41,940","41,940","41,940","41,500",6.07M,0.82%
20170407,"41,600","41,800","41,820","41,160",8.32M,-0.57%
20170406,"41,840","42,000","42,080","41,600",7.78M,-0.71%
20170405,"42,140","41,900","42,240","41,700",8.75M,0.14%
20170404,"42,080","41,600","42,180","41,520",10.12M,1.54%
20170403,"41,440","41,400","41,720","41,300",7.79M,0.58%
20170331,"41,200","41,820","42,020","41,200",9.74M,-1.86%
20170330,"41,980","41,880","42,440","41,880",8.09M,0.48%
20170329,"41,780","41,740","41,960","41,580",10.08M,0.72%
20170328,"41,480","41,560","41,840","41,380",8.14M,0.68%
20170327,"41,200","41,200","41,880","41,180",9.57M,-0.72%
20170324,"41,500","41,600","41,980","41,080",12.65M,-0.72%
20170323,"41,800","42,200","42,360","41,700",14.99M,-1.55%
20170322,"42,460","41,600","42,460","41,580",15.24M,-0.23%
20170321,"42,560","41,780","42,680","41,760",11.01M,1.58%
20170320,"41,900","42,000","42,120","41,740",9.92M,-1.18%
20170317,"42,400","41,800","42,500","41,720",11.34M,1.34%
20170316,"41,840","41,800","42,180","41,540",9.81M,1.06%
20170315,"41,400","40,800","41,440","40,800",8.30M,0.10%
20170314,"41,360","40,620","41,540","40,500",11.32M,1.87%
20170313,"40,600","40,040","40,980","40,040",7.41M,1.05%
20170310,"40,180","39,960","40,420","39,860",10.12M,-0.05%
20170309,"40,200","40,200","40,300","40,020",11.41M,0.00%
20170308,"40,200","40,200","40,620","40,140",10.84M,0.00%
20170307,"40,200","39,800","40,320","39,800",10.54M,0.30%
20170306,"40,080","39,220","40,220","39,220",12.20M,1.16%
20170303,"39,620","39,340","39,720","39,160",12.69M,-0.25%
20170302,"39,720","38,420","39,860","38,420",20.81M,3.33%
20170228,"38,440","38,060","38,760","37,960",15.00M,1.00%
20170227,"38,060","38,020","38,140","37,700",8.74M,-0.42%
20170224,"38,220","38,960","39,100","38,060",8.79M,-2.45%
20170223,"39,180","39,020","39,440","39,020",10.03M,-0.31%
20170222,"39,300","39,000","39,340","38,980",8.53M,0.92%
20170221,"38,940","38,540","39,560","38,420",10.48M,0.72%
20170220,"38,660","38,220","38,780","38,160",7.47M,2.11%
20170217,"37,860","37,560","38,040","37,280",15.08M,-0.42%
20170216,"38,020","37,800","38,360","37,780",10.22M,0.80%
20170215,"37,720","37,080","37,960","37,080",13.88M,0.37%
20170214,"37,580","37,960","38,260","37,320",13.04M,-1.00%
20170213,"37,960","37,740","38,060","37,720",10.39M,-1.04%
20170210,"38,360","38,400","38,760","38,300",10.72M,-0.10%
20170209,"38,400","38,780","38,840","38,220",13.16M,0.00%
20170208,"38,400","38,740","38,780","38,200",12.87M,-1.08%
20170207,"38,820","39,560","39,580","38,760",12.17M,-1.87%
20170206,"39,560","39,580","39,660","39,140",8.82M,0.25%
20170203,"39,460","39,400","39,500","39,180",8.47M,0.25%
20170202,"39,360","39,600","39,660","39,200",11.89M,0.61%
20170201,"39,120","39,540","39,660","39,040",13.00M,-0.86%
20170131,"39,460","39,900","39,900","39,460",14.17M,-98.02%
20170130,"1,995,000","1,995,000","1,995,000","1,995,000",0.04K,"4,900.00%"
20170126,"39,900","39,420","40,000","39,420",12.90M,1.27%
20170125,"39,400","38,340","39,400","38,320",13.14M,3.25%
20170124,"38,160","38,120","38,580","37,880",9.73M,0.26%
20170123,"38,060","37,200","38,060","37,000",8.50M,2.31%
20170120,"37,200","37,120","37,420","36,880",8.76M,-0.75%
20170119,"37,480","37,720","37,920","37,020",8.97M,1.46%
20170118,"36,940","37,040","37,500","36,620",8.86M,-0.05%
20170117,"36,960","36,580","37,460","36,580",8.09M,0.82%
20170116,"36,660","36,860","37,820","36,320",16.59M,-2.14%
20170113,"37,460","38,100","38,320","37,460",15.38M,-3.45%
20170112,"38,800","38,000","38,800","37,980",11.59M,1.36%
20170111,"38,280","37,520","38,560","37,420",11.86M,2.79%
20170110,"37,240","37,280","37,400","37,080",8.71M,0.05%
20170109,"37,220","36,600","37,500","36,560",12.87M,2.82%
20170106,"36,200","36,180","36,440","36,040",8.38M,1.80%
20170105,"35,560","36,060","36,060","35,540",10.49M,-1.66%
20170104,"36,160","36,500","36,520","36,100",7.31M,-0.88%
20170103,"36,480","36,280","36,620","36,020",7.34M,1.05%
20170102,"36,100","35,980","36,240","35,880",4.65M,-98.00%
20170101,"1,802,000","1,802,000","1,802,000","1,802,000",0.01K,"4,900.00%"
20161229,"36,040","35,420","36,040","35,400",7.00M,0.78%
20161228,"35,760","35,840","35,980","35,600",6.62M,-0.61%
20161227,"35,980","35,980","36,200","35,860",4.60M,0.06%
20161226,"35,960","35,600","36,000","35,560",4.80M,-97.98%
20161225,"1,782,000","1,782,000","1,782,000","1,782,000",0.02K,"4,900.00%"
20161223,"35,640","36,020","36,080","35,600",8.12M,-1.49%
20161222,"36,180","36,260","36,300","35,980",5.33M,0.22%
20161221,"36,100","36,360","36,600","36,020",6.53M,-0.39%
20161220,"36,240","35,920","36,400","35,840",6.13M,0.95%
20161219,"35,900","35,620","36,380","35,620",5.44M,-98.00%
20161218,"1,793,000","1,793,000","1,793,000","1,793,000",-,"4,900.00%"
20161216,"35,860","35,300","36,020","35,200",11.50M,1.93%
20161215,"35,180","34,820","35,500","34,820",5.77M,-1.01%
20161214,"35,540","35,560","35,680","35,280",7.18M,0.62%
20161213,"35,320","34,620","35,440","34,620",10.88M,0.80%
20161212,"35,040","34,660","35,360","34,660",11.18M,-98.03%
20161211,"1,780,000","1,780,000","1,780,000","1,780,000",0.02K,"4,900.00%"
20161209,"35,600","35,900","35,900","35,400",9.52M,-0.56%
20161208,"35,800","35,980","36,020","35,520",16.40M,1.02%
20161207,"35,440","35,040","35,480","35,040",9.54M,1.37%
20161206,"34,960","34,440","35,200","34,400",13.69M,1.75%
20161205,"34,360","34,340","34,680","34,220",8.47M,-98.01%
20161204,"1,727,000","1,727,000","1,727,000","1,727,000",0.04K,"4,900.00%"
20161202,"34,540","34,480","34,760","34,140",14.06M,-1.26%
20161201,"34,980","34,800","35,060","34,660",13.10M,0.17%
20161130,"34,920","33,540","34,940","33,540",25.48M,4.11%
20161129,"33,540","33,800","33,960","33,380",17.66M,0.00%
20161128,"33,540","33,000","33,620","32,800",12.98M,-97.97%
20161127,"1,650,000","1,650,000","1,650,000","1,650,000",0.09K,"4,900.00%"
20161125,"33,000","32,820","33,040","32,660",6.26M,0.00%
20161124,"33,000","32,980","33,040","32,660",7.43M,0.06%
20161123,"32,980","33,220","33,220","32,520",12.22M,0.55%
20161122,"32,800","32,140","32,900","32,000",9.75M,2.95%
20161121,"31,860","31,300","32,120","31,300",8.18M,-97.99%
20161120,"1,586,000","1,586,000","1,586,000","1,586,000",0.01K,"4,900.00%"
20161118,"31,720","31,640","31,760","31,400",9.34M,1.15%
20161117,"31,360","31,100","31,520","30,900",7.86M,0.64%
20161116,"31,160","30,800","31,280","30,800",11.32M,1.23%
20161115,"30,780","31,060","31,620","30,780",13.65M,-0.90%
20161114,"31,060","31,900","31,920","31,040",15.05M,-98.06%
20161113,"1,598,000","1,598,000","1,598,000","1,598,000",0.06K,"4,900.00%"
20161111,"31,960","31,700","32,360","31,700",12.75M,-3.09%
20161110,"32,980","32,600","33,000","32,360",11.79M,3.32%
20161109,"31,920","32,920","33,140","31,820",15.62M,-2.92%
20161108,"32,880","32,980","32,980","32,700",5.37M,0.24%
20161107,"32,800","32,940","33,000","32,680",7.65M,-97.98%
20161106,"1,627,000","1,627,000","1,627,000","1,627,000",0.08K,"4,900.00%"
20161104,"32,540","32,100","32,680","32,100",7.10M,0.68%
20161103,"32,320","32,600","32,800","32,120",10.32M,-1.64%
20161102,"32,860","32,800","33,040","32,620",10.10M,-0.54%
20161101,"33,040","32,600","33,040","32,240",10.15M,0.79%
20161031,"32,780","32,320","32,780","32,220",11.87M,-97.97%
20161030,"1,614,000","1,614,000","1,614,000","1,614,000",0.04K,"4,900.00%"
20161028,"32,280","31,600","32,280","31,600",9.83M,2.61%
20161027,"31,460","31,420","32,340","31,120",13.83M,0.38%
20161026,"31,340","31,940","31,980","31,240",9.73M,-1.88%
20161025,"31,940","32,000","32,080","31,840",9.31M,-0.68%
20161024,"32,160","31,860","32,160","31,800",8.75M,-97.98%
20161023,"1,589,000","1,589,000","1,589,000","1,589,000",0.01K,"4,900.00%"
20161021,"31,780","32,120","32,260","31,760",10.32M,-1.91%
20161020,"32,400","32,520","33,020","32,180",10.22M,-0.31%
20161019,"32,500","31,580","32,860","31,500",14.98M,2.27%
20161018,"31,780","31,440","31,900","31,440",10.19M,-0.06%
20161017,"31,800","31,300","32,040","30,760",12.66M,-97.98%
20161016,"1,577,000","1,577,000","1,577,000","1,577,000",0.05K,"4,900.00%"
20161014,"31,540","30,960","31,760","30,940",14.15M,1.28%
20161013,"31,140","31,000","31,620","30,900",21.05M,1.43%
20161012,"30,700","29,900","30,900","29,880",37.54M,-0.65%
20161011,"30,900","32,000","32,500","30,900",34.09M,-8.04%
20161010,"33,600","33,000","33,780","32,560",25.07M,-98.03%
20161009,"1,706,000","1,706,000","1,706,000","1,706,000",0.03K,"4,900.00%"
20161007,"34,120","34,000","34,320","33,800",21.38M,0.89%
20161006,"33,820","33,920","34,000","33,340",27.88M,4.45%
20161005,"32,380","32,020","32,520","31,940",11.45M,0.31%
20161004,"32,280","32,200","32,480","32,120",10.24M,-97.98%
20161003,"1,598,000","1,598,000","1,598,000","1,598,000",-,"4,900.00%"
20160930,"31,960","31,800","32,300","31,700",11.53M,-0.13%
20160929,"32,000","31,460","32,380","31,440",11.38M,2.11%
20160928,"31,340","31,080","31,460","31,080",7.81M,-0.13%
20160927,"31,380","31,000","31,500","30,660",9.83M,0.06%
20160926,"31,360","31,420","31,920","31,280",13.15M,-98.00%
20160925,"1,571,000","1,571,000","1,571,000","1,571,000",0.02K,"4,900.00%"
20160923,"31,420","31,640","31,960","31,320",16.72M,-2.90%
20160922,"32,360","32,000","32,820","31,980",11.01M,1.63%
20160921,"31,840","31,900","32,020","31,520",9.96M,0.44%
20160920,"31,700","31,180","31,760","31,180",12.92M,1.73%
20160919,"31,160","30,760","31,380","30,720",21.33M,-97.96%
20160918,"1,527,000","1,527,000","1,527,000","1,527,000",0.02K,"4,900.00%"
20160913,"30,540","30,160","30,980","29,900",24.65M,4.23%
20160912,"29,300","29,800","30,120","29,120",26.22M,-98.14%
20160911,"1,575,000","1,575,000","1,575,000","1,575,000",-,"4,900.00%"
20160909,"31,500","32,220","32,360","31,280",13.04M,-3.90%
20160908,"32,780","32,460","32,780","32,280",11.84M,1.11%
20160907,"32,420","32,960","33,040","32,420",9.57M,-1.34%
20160906,"32,860","32,140","32,900","31,940",7.66M,2.30%
20160905,"32,120","31,800","32,300","31,700",8.36M,-97.99%
20160904,"1,597,000","1,597,000","1,597,000","1,597,000",0.09K,"4,900.00%"
20160902,"31,940","31,900","32,260","31,760",8.07M,0.63%
20160901,"31,740","31,660","31,760","31,260",18.74M,-2.04%
20160831,"32,400","32,820","32,820","32,220",20.48M,-1.52%
20160830,"32,900","32,940","33,420","32,660",7.84M,0.30%
20160829,"32,800","32,040","32,800","31,940",8.84M,-97.97%
20160828,"1,612,000","1,612,000","1,612,000","1,612,000",-,"4,900.00%"
20160826,"32,240","32,120","32,460","32,060",12.05M,-1.65%
20160825,"32,780","32,600","33,180","32,440",14.12M,-0.85%
20160824,"33,060","33,600","33,640","32,720",15.87M,-2.02%
20160823,"33,740","33,300","33,880","33,140",10.93M,1.32%
20160822,"33,300","33,480","33,840","33,180",12.59M,-98.01%
20160821,"1,675,000","1,675,000","1,675,000","1,675,000",0.02K,"4,900.00%"
20160819,"33,500","32,760","33,500","32,720",15.29M,2.13%
20160818,"32,800","31,340","32,880","31,320",17.87M,4.73%
20160817,"31,320","31,380","31,400","31,020",6.85M,-0.13%
20160816,"31,360","30,900","31,520","30,900",10.70M,1.49%
20160812,"30,900","31,180","31,400","30,880",10.37M,-0.90%
20160811,"31,180","30,820","31,180","30,520",10.37M,1.17%
20160810,"30,820","31,340","31,400","30,680",12.06M,-1.66%
20160809,"31,340","31,480","31,580","31,140",8.76M,-0.13%
20160808,"31,380","31,320","31,500","31,120",10.32M,-97.99%
20160807,"1,561,000","1,561,000","1,561,000","1,561,000",0.06K,"4,900.00%"
20160805,"31,220","30,580","31,280","30,500",6.90M,2.90%
20160804,"30,340","30,380","30,660","30,340",7.00M,0.00%
20160803,"30,340","30,960","30,960","30,340",7.50M,-2.00%
20160802,"30,960","31,360","31,360","30,920",8.31M,-1.28%
20160801,"31,360","31,380","31,600","31,200",11.11M,-97.96%
20160731,"1,539,000","1,539,000","1,539,000","1,539,000",0.01K,"4,900.00%"
20160729,"30,780","30,400","31,140","30,220",14.93M,2.12%
20160728,"30,140","30,660","30,720","29,960",9.46M,-1.31%
20160727,"30,540","30,240","30,580","30,240",6.33M,-0.20%
20160726,"30,600","30,000","30,620","29,960",7.21M,1.86%
20160725,"30,040","30,000","30,460","29,900",7.58M,-98.02%
20160724,"1,516,000","1,516,000","1,516,000","1,516,000",0.01K,"4,900.00%"
20160722,"30,320","30,120","30,560","30,120",8.27M,-1.75%
20160721,"30,860","30,800","30,940","30,740",7.95M,0.19%
20160720,"30,800","30,660","30,840","30,480",7.76M,0.46%
20160719,"30,660","30,560","30,800","30,440",10.12M,0.00%
20160718,"30,660","30,360","30,660","30,000",10.92M,-97.98%
20160717,"1,518,000","1,518,000","1,518,000","1,518,000",0.00K,"4,900.00%"
20160715,"30,360","30,000","30,440","29,720",11.59M,1.20%
20160714,"30,000","29,620","30,000","29,520",12.38M,1.28%
20160713,"29,620","29,920","29,920","29,260",9.90M,1.16%
20160712,"29,280","29,980","30,100","29,200",10.97M,-1.68%
20160711,"29,780","29,200","30,000","29,200",13.43M,-97.96%
20160710,"1,460,000","1,460,000","1,460,000","1,460,000",0.03K,"4,900.00%"
20160708,"29,200","29,000","29,500","28,980",12.34M,0.69%
20160707,"29,000","28,420","29,000","28,320",11.31M,2.04%
20160706,"28,420","28,940","29,040","28,240",16.04M,-3.27%
20160705,"29,380","29,320","29,500","29,240",7.77M,0.20%
20160704,"29,320","29,280","29,480","29,020",7.84M,0.00%
20160701,"29,320","28,540","29,580","28,540",14.34M,2.88%
20160630,"28,500","28,160","28,900","27,940",13.65M,2.08%
20160629,"27,920","28,160","28,240","27,820",10.41M,-0.21%
20160628,"27,980","27,800","28,080","27,580",10.69M,0.07%
20160627,"27,960","28,000","28,100","27,700",11.84M,-0.14%
20160624,"28,000","28,900","28,900","27,200",20.50M,-2.10%
20160623,"28,600","28,880","28,900","28,540",11.21M,-1.04%
20160622,"28,900","28,920","29,000","28,620",8.86M,-0.21%
20160621,"28,960","28,640","28,980","28,520",9.68M,1.19%
20160620,"28,620","28,540","28,960","28,520",13.42M,-97.99%
20160619,"1,426,000","1,426,000","1,426,000","1,426,000",0.00K,"4,900.00%"
20160617,"28,520","28,200","28,700","28,200",16.41M,1.21%
20160616,"28,180","28,260","28,340","27,900",14.45M,-0.28%
20160615,"28,260","27,700","28,320","27,660",15.11M,2.39%
20160614,"27,600","27,420","27,720","27,380",12.17M,0.66%
20160613,"27,420","27,920","27,920","27,240",14.51M,-98.05%
20160612,"1,406,000","1,406,000","1,406,000","1,406,000",0.01K,"4,900.00%"
20160610,"28,120","28,480","28,500","28,080",14.47M,-1.68%
20160609,"28,600","28,160","28,600","28,120",25.63M,1.71%
20160608,"28,120","28,380","28,380","27,780",17.35M,0.57%
20160607,"27,960","27,720","28,040","27,600",23.02M,-97.97%
20160606,"1,377,000","1,377,000","1,377,000","1,377,000",0.05K,"4,900.00%"
20160603,"27,540","27,400","27,580","27,280",15.55M,0.88%
20160602,"27,300","27,000","27,440","26,920",23.64M,2.40%
20160601,"26,660","25,960","26,820","25,900",23.25M,3.17%
20160531,"25,840","25,600","26,000","25,360",59.92M,0.94%
20160530,"25,600","25,940","25,940","25,480",10.23M,-98.00%
20160529,"1,282,000","1,282,000","1,282,000","1,282,000",-,"4,900.00%"
20160527,"25,640","26,000","26,020","25,460",13.10M,-1.08%
20160526,"25,920","25,980","26,060","25,900",11.59M,0.08%
20160525,"25,900","25,660","25,960","25,480",11.85M,1.89%
20160524,"25,420","25,720","25,780","25,360",9.56M,-1.17%
20160523,"25,720","25,380","25,720","25,380",8.04M,-97.97%
20160522,"1,269,000","1,269,000","1,269,000","1,269,000",-,"4,900.00%"
20160520,"25,380","25,400","25,600","25,380",7.96M,-0.08%
20160519,"25,400","25,360","25,540","25,320",9.21M,0.16%
20160518,"25,360","25,280","25,420","25,100",8.70M,0.32%
20160517,"25,280","24,980","25,300","24,980",9.09M,1.28%
20160516,"24,960","25,060","25,260","24,940",11.63M,-98.01%
20160515,"1,253,000","1,253,000","1,253,000","1,253,000",-,"4,900.00%"
20160513,"25,060","25,620","25,620","25,020",12.26M,-2.19%
20160512,"25,620","25,840","25,840","25,500",7.58M,-0.85%
20160511,"25,840","25,920","25,980","25,740",8.70M,-0.31%
20160510,"25,920","25,980","26,000","25,760",8.35M,-0.23%
20160509,"25,980","25,800","26,000","25,700",13.66M,-97.99%
20160508,"1,290,000","1,290,000","1,290,000","1,290,000",-,"4,900.00%"
20160504,"25,800","25,440","25,800","25,240",13.89M,2.30%
20160503,"25,220","25,340","25,400","25,120",7.89M,0.88%
20160502,"25,000","24,940","25,240","24,900",7.01M,-97.99%
20160501,"1,245,000","1,245,000","1,245,000","1,245,000",0.01K,"4,900.00%"
20160429,"24,900","25,200","25,340","24,840",14.63M,-1.58%
20160428,"25,300","26,000","26,000","25,220",13.94M,-2.69%
20160427,"26,000","25,880","26,000","25,720",8.24M,0.31%
20160426,"25,920","25,700","26,100","25,660",7.93M,1.17%
20160425,"25,620","25,700","25,700","25,420",4.59M,-98.00%
20160424,"1,280,000","1,280,000","1,280,000","1,280,000",0.04K,"4,900.00%"
20160422,"25,600","25,880","25,880","25,540",5.73M,-1.08%
20160421,"25,880","26,000","26,020","25,760",7.24M,-0.38%
20160420,"25,980","25,640","26,000","25,640",7.32M,0.85%
20160419,"25,760","25,880","25,920","25,660",7.21M,-0.85%
20160418,"25,980","25,900","26,100","25,840",6.42M,-98.00%
20160417,"1,300,000","1,300,000","1,300,000","1,300,000",0.08K,"4,900.00%"
20160415,"26,000","26,180","26,200","25,800",6.83M,0.00%
20160414,"26,000","26,000","26,040","25,780",16.63M,-97.96%
20160413,"1,275,000","1,275,000","1,275,000","1,275,000",-,0.00%
20160412,"1,275,000","1,270,000","1,281,000","1,266,000",134.02K,0.71%
20160411,"1,266,000","1,246,000","1,271,000","1,246,000",119.80K,1.61%
20160408,"1,246,000","1,269,000","1,269,000","1,240,000",251.49K,-1.81%
20160407,"1,269,000","1,300,000","1,300,000","1,258,000",258.65K,-1.25%
20160406,"1,285,000","1,269,000","1,291,000","1,268,000",183.89K,1.98%
20160405,"1,260,000","1,299,000","1,299,000","1,260,000",236.00K,-3.45%
20160404,"1,305,000","1,279,000","1,305,000","1,279,000",181.84K,2.03%
20160403,"1,279,000","1,279,000","1,279,000","1,279,000",-,0.00%
20160401,"1,279,000","1,299,000","1,309,000","1,271,000",263.61K,-2.52%
20160331,"1,312,000","1,306,000","1,314,000","1,298,000",298.91K,0.31%
20160330,"1,308,000","1,310,000","1,321,000","1,302,000",267.10K,1.40%
20160329,"1,290,000","1,294,000","1,300,000","1,285,000",172.35K,-0.31%
20160328,"1,294,000","1,288,000","1,300,000","1,288,000",120.63K,0.47%
20160327,"1,288,000","1,288,000","1,288,000","1,288,000",-,0.00%
20160325,"1,288,000","1,283,000","1,290,000","1,278,000",143.43K,0.47%
20160324,"1,282,000","1,279,000","1,290,000","1,266,000",218.77K,0.23%
20160323,"1,279,000","1,269,000","1,279,000","1,262,000",173.91K,0.79%
20160322,"1,269,000","1,267,000","1,279,000","1,262,000",194.79K,0.16%
20160321,"1,267,000","1,274,000","1,279,000","1,258,000",181.12K,-0.47%
20160320,"1,273,000","1,273,000","1,273,000","1,273,000",-,0.00%
20160318,"1,273,000","1,278,000","1,278,000","1,263,000",223.17K,0.79%
20160317,"1,263,000","1,265,000","1,296,000","1,257,000",246.72K,0.56%
20160316,"1,256,000","1,256,000","1,263,000","1,253,000",137.31K,0.24%
20160315,"1,253,000","1,255,000","1,264,000","1,246,000",167.69K,-0.16%
20160314,"1,255,000","1,267,000","1,273,000","1,249,000",217.13K,0.48%
20160311,"1,249,000","1,225,000","1,253,000","1,216,000",244.83K,1.96%
20160310,"1,225,000","1,208,000","1,236,000","1,201,000",282.75K,2.60%
20160309,"1,194,000","1,188,000","1,199,000","1,177,000",173.08K,0.17%
20160308,"1,192,000","1,223,000","1,224,000","1,186,000",215.56K,-2.53%
20160307,"1,223,000","1,220,000","1,231,000","1,215,000",129.64K,0.66%
20160306,"1,215,000","1,215,000","1,215,000","1,215,000",-,0.00%
20160304,"1,215,000","1,220,000","1,228,000","1,202,000",197.05K,-0.41%
20160303,"1,220,000","1,213,000","1,220,000","1,202,000",214.52K,1.92%
20160302,"1,197,000","1,200,000","1,207,000","1,196,000",236.32K,1.61%
20160229,"1,178,000","1,179,000","1,194,000","1,176,000",274.72K,0.51%
20160226,"1,172,000","1,180,000","1,187,000","1,172,000",177.29K,-0.59%
20160225,"1,179,000","1,172,000","1,187,000","1,172,000",128.50K,0.60%
20160224,"1,172,000","1,178,000","1,179,000","1,161,000",140.42K,-0.76%
20160223,"1,181,000","1,179,000","1,189,000","1,173,000",147.65K,0.51%
20160222,"1,175,000","1,190,000","1,192,000","1,166,000",174.50K,-1.26%
20160221,"1,190,000","1,190,000","1,190,000","1,190,000",0.04K,0.00%
20160219,"1,190,000","1,187,000","1,195,000","1,174,000",176.00K,0.25%
20160218,"1,187,000","1,203,000","1,203,000","1,178,000",212.32K,0.17%
20160217,"1,185,000","1,179,000","1,201,000","1,169,000",246.02K,1.46%
20160216,"1,168,000","1,158,000","1,179,000","1,157,000",179.96K,1.21%
20160215,"1,154,000","1,154,000","1,160,000","1,144,000",182.64K,2.12%
20160212,"1,130,000","1,130,000","1,151,000","1,122,000",254.58K,0.00%
20160211,"1,130,000","1,118,000","1,137,000","1,118,000",305.00K,-2.92%
20160210,"1,164,000","1,164,000","1,164,000","1,164,000",-,0.00%
20160205,"1,164,000","1,156,000","1,169,000","1,156,000",183.85K,0.69%
20160204,"1,156,000","1,150,000","1,161,000","1,148,000",236.55K,0.87%
20160203,"1,146,000","1,150,000","1,152,000","1,137,000",174.42K,-0.87%
20160202,"1,156,000","1,161,000","1,166,000","1,147,000",165.56K,-0.60%
20160201,"1,163,000","1,152,000","1,163,000","1,151,000",258.39K,1.13%
20160131,"1,150,000","1,150,000","1,150,000","1,150,000",0.02K,0.00%
20160129,"1,150,000","1,140,000","1,150,000","1,116,000",426.91K,0.44%
20160128,"1,145,000","1,164,000","1,168,000","1,139,000",315.23K,-2.55%
20160127,"1,175,000","1,126,000","1,175,000","1,126,000",273.98K,3.34%
20160126,"1,137,000","1,155,000","1,157,000","1,136,000",152.00K,-2.15%
20160125,"1,162,000","1,172,000","1,176,000","1,156,000",159.81K,-0.51%
20160124,"1,168,000","1,168,000","1,168,000","1,168,000",0.01K,0.00%
20160122,"1,168,000","1,145,000","1,168,000","1,145,000",147.35K,3.27%
20160121,"1,131,000","1,133,000","1,155,000","1,125,000",182.05K,-0.62%
20160120,"1,138,000","1,160,000","1,160,000","1,132,000",165.95K,-2.82%
20160119,"1,171,000","1,128,000","1,171,000","1,128,000",205.97K,4.00%
20160118,"1,126,000","1,088,000","1,133,000","1,088,000",320.16K,-0.53%
20160117,"1,132,000","1,132,000","1,132,000","1,132,000",0.00K,0.00%
20160115,"1,132,000","1,140,000","1,152,000","1,124,000",208.77K,-0.53%
20160114,"1,138,000","1,131,000","1,142,000","1,131,000",207.87K,-0.87%
20160113,"1,148,000","1,153,000","1,159,000","1,148,000",143.13K,0.17%
20160112,"1,146,000","1,148,000","1,166,000","1,144,000",185.02K,-0.52%
20160111,"1,152,000","1,156,000","1,166,000","1,146,000",240.13K,-1.62%
20160110,"1,171,000","1,171,000","1,171,000","1,171,000",-,0.00%
20160108,"1,171,000","1,163,000","1,186,000","1,163,000",244.55K,0.69%
20160107,"1,163,000","1,166,000","1,183,000","1,151,000",268.93K,-1.02%
20160106,"1,175,000","1,208,000","1,208,000","1,168,000",360.33K,-2.73%
20160105,"1,208,000","1,202,000","1,218,000","1,186,000",208.45K,0.25%
20160104,"1,205,000","1,260,000","1,260,000","1,205,000",305.31K,-4.37%
20160103,"1,260,000","1,260,000","1,260,000","1,260,000",-,0.00%
20151230,"1,260,000","1,260,000","1,272,000","1,254,000",203.76K,0.48%
20151229,"1,254,000","1,265,000","1,266,000","1,241,000",231.87K,-0.95%
20151228,"1,266,000","1,285,000","1,289,000","1,266,000",227.00K,-1.48%
20151227,"1,285,000","1,285,000","1,285,000","1,285,000",0.02K,0.00%
20151224,"1,285,000","1,295,000","1,300,000","1,285,000",151.44K,-0.77%
20151223,"1,295,000","1,292,000","1,299,000","1,282,000",162.26K,0.23%
20151222,"1,292,000","1,280,000","1,292,000","1,267,000",204.37K,0.94%
20151221,"1,280,000","1,278,000","1,285,000","1,261,000",158.06K,0.16%
20151220,"1,278,000","1,278,000","1,278,000","1,278,000",0.06K,0.00%
20151218,"1,278,000","1,265,000","1,288,000","1,264,000",168.29K,-0.93%
20151217,"1,290,000","1,301,000","1,308,000","1,275,000",167.42K,-0.69%
20151216,"1,299,000","1,278,000","1,310,000","1,278,000",207.76K,1.72%
20151215,"1,277,000","1,261,000","1,280,000","1,260,000",175.37K,1.27%
20151214,"1,261,000","1,273,000","1,273,000","1,255,000",222.71K,-1.79%
20151213,"1,284,000","1,284,000","1,284,000","1,284,000",-,0.00%
20151211,"1,284,000","1,283,000","1,295,000","1,272,000",204.94K,0.08%
20151210,"1,283,000","1,263,000","1,293,000","1,263,000",303.46K,1.58%
20151209,"1,263,000","1,262,000","1,275,000","1,262,000",181.78K,0.08%
20151208,"1,262,000","1,262,000","1,272,000","1,262,000",133.52K,0.00%
20151207,"1,262,000","1,269,000","1,275,000","1,262,000",195.60K,-0.55%
20151206,"1,269,000","1,269,000","1,269,000","1,269,000",-,0.00%
20151204,"1,269,000","1,275,000","1,280,000","1,267,000",189.85K,-1.63%
20151203,"1,290,000","1,295,000","1,297,000","1,286,000",166.59K,-0.77%
20151202,"1,300,000","1,321,000","1,322,000","1,294,000",226.94K,-1.59%
20151201,"1,321,000","1,294,000","1,322,000","1,288,000",234.22K,2.88%
20151130,"1,284,000","1,325,000","1,325,000","1,284,000",524.19K,-3.24%
20151129,"1,327,000","1,327,000","1,327,000","1,327,000",0.03K,0.00%
20151127,"1,327,000","1,345,000","1,349,000","1,327,000",169.77K,-0.60%
20151126,"1,335,000","1,299,000","1,340,000","1,299,000",181.70K,2.77%
20151125,"1,299,000","1,300,000","1,310,000","1,299,000",142.61K,0.00%
20151124,"1,299,000","1,282,000","1,305,000","1,282,000",153.09K,1.33%
20151123,"1,282,000","1,285,000","1,302,000","1,281,000",197.45K,-0.23%
20151122,"1,285,000","1,285,000","1,285,000","1,285,000",-,0.00%
20151120,"1,285,000","1,289,000","1,296,000","1,278,000",168.72K,-0.31%
20151119,"1,289,000","1,290,000","1,290,000","1,271,000",189.96K,0.62%
20151118,"1,281,000","1,272,000","1,290,000","1,272,000",167.41K,0.87%
20151117,"1,270,000","1,275,000","1,290,000","1,270,000",185.65K,0.55%
20151116,"1,263,000","1,291,000","1,291,000","1,263,000",183.50K,-2.85%
20151115,"1,300,000","1,300,000","1,300,000","1,300,000",0.00K,0.00%
20151113,"1,300,000","1,317,000","1,317,000","1,300,000",177.62K,-1.29%
20151112,"1,317,000","1,333,000","1,334,000","1,317,000",156.16K,-1.20%
20151111,"1,333,000","1,321,000","1,345,000","1,321,000",140.44K,0.91%
20151110,"1,321,000","1,336,000","1,341,000","1,314,000",197.47K,-1.71%
20151109,"1,344,000","1,338,000","1,344,000","1,321,000",185.42K,0.45%
20151108,"1,338,000","1,338,000","1,338,000","1,338,000",0.07K,0.00%
20151106,"1,338,000","1,343,000","1,348,000","1,330,000",157.73K,-0.30%
20151105,"1,342,000","1,330,000","1,354,000","1,330,000",172.84K,0.90%
20151104,"1,330,000","1,352,000","1,361,000","1,326,000",277.60K,-1.63%
20151103,"1,352,000","1,381,000","1,381,000","1,350,000",297.60K,-2.24%
20151102,"1,383,000","1,385,000","1,393,000","1,374,000",365.16K,0.80%
20151101,"1,372,000","1,372,000","1,372,000","1,372,000",-,0.00%
20151030,"1,372,000","1,345,000","1,390,000","1,341,000",499.22K,3.55%
20151029,"1,325,000","1,330,000","1,392,000","1,324,000",622.86K,1.30%
20151028,"1,308,000","1,294,000","1,308,000","1,291,000",257.99K,0.77%
20151027,"1,298,000","1,282,000","1,299,000","1,281,000",131.35K,0.46%
20151026,"1,292,000","1,298,000","1,298,000","1,272,000",152.07K,0.23%
20151023,"1,289,000","1,300,000","1,300,000","1,278,000",252.62K,0.70%
20151022,"1,280,000","1,280,000","1,295,000","1,269,000",229.66K,0.79%
20151021,"1,270,000","1,265,000","1,282,000","1,259,000",139.50K,0.32%
20151020,"1,266,000","1,260,000","1,273,000","1,256,000",137.87K,0.80%
20151019,"1,256,000","1,257,000","1,265,000","1,249,000",116.84K,-0.71%
20151018,"1,265,000","1,265,000","1,265,000","1,265,000",0.02K,0.00%
20151016,"1,265,000","1,265,000","1,269,000","1,259,000",142.12K,-0.32%
20151015,"1,269,000","1,244,000","1,282,000","1,243,000",243.66K,1.20%
20151014,"1,254,000","1,248,000","1,260,000","1,237,000",174.92K,0.16%
20151013,"1,252,000","1,260,000","1,272,000","1,248,000",195.35K,-0.63%
20151012,"1,260,000","1,260,000","1,263,000","1,247,000",302.19K,-0.79%
20151011,"1,270,000","1,270,000","1,270,000","1,270,000",0.19K,0.00%
20151008,"1,270,000","1,250,000","1,279,000","1,250,000",501.08K,1.52%
20151007,"1,251,000","1,198,000","1,252,000","1,186,000",796.77K,8.69%
20151006,"1,151,000","1,130,000","1,155,000","1,127,000",372.40K,3.23%
20151005,"1,115,000","1,119,000","1,131,000","1,115,000",211.52K,-0.36%
20151002,"1,119,000","1,112,000","1,133,000","1,112,000",249.06K,-1.32%
20151001,"1,134,000","1,140,000","1,145,000","1,121,000",229.67K,0.00%
20150930,"1,134,000","1,100,000","1,134,000","1,090,000",354.24K,1.98%
20150929,"1,112,000","1,112,000","1,112,000","1,112,000",0.06K,0.00%
20150925,"1,112,000","1,120,000","1,125,000","1,109,000",187.68K,-1.24%
20150924,"1,126,000","1,126,000","1,135,000","1,125,000",132.28K,-0.44%
20150923,"1,131,000","1,144,000","1,144,000","1,125,000",195.67K,-1.22%
20150922,"1,145,000","1,143,000","1,150,000","1,130,000",246.92K,-0.43%
20150921,"1,150,000","1,163,000","1,173,000","1,150,000",197.29K,-3.36%
20150920,"1,190,000","1,190,000","1,190,000","1,190,000",0.02K,0.00%
20150918,"1,190,000","1,145,000","1,192,000","1,135,000",421.31K,2.85%
20150917,"1,157,000","1,153,000","1,157,000","1,144,000",253.47K,0.43%
20150916,"1,152,000","1,121,000","1,157,000","1,121,000",338.87K,2.58%
20150915,"1,123,000","1,114,000","1,128,000","1,113,000",212.95K,-0.09%
20150914,"1,124,000","1,120,000","1,124,000","1,110,000",164.20K,0.81%
20150913,"1,115,000","1,115,000","1,115,000","1,115,000",-,0.00%
20150911,"1,115,000","1,126,000","1,133,000","1,115,000",202.74K,-1.68%
20150910,"1,134,000","1,130,000","1,139,000","1,118,000",357.11K,-1.13%
20150909,"1,147,000","1,146,000","1,147,000","1,136,000",235.76K,1.41%
20150908,"1,131,000","1,113,000","1,136,000","1,106,000",181.63K,1.71%
20150907,"1,112,000","1,129,000","1,129,000","1,105,000",191.48K,-1.51%
20150906,"1,129,000","1,129,000","1,129,000","1,129,000",0.08K,0.00%
20150904,"1,129,000","1,144,000","1,144,000","1,118,000",249.85K,0.62%
20150903,"1,122,000","1,102,000","1,123,000","1,093,000",303.77K,2.94%
20150902,"1,090,000","1,069,000","1,095,000","1,065,000",312.35K,0.46%
20150901,"1,085,000","1,089,000","1,098,000","1,081,000",237.36K,-0.37%
20150831,"1,089,000","1,071,000","1,089,000","1,052,000",407.36K,0.74%
20150830,"1,081,000","1,081,000","1,081,000","1,081,000",0.12K,0.00%
20150828,"1,081,000","1,086,000","1,086,000","1,073,000",460.24K,1.31%
20150827,"1,067,000","1,082,000","1,086,000","1,063,000",493.11K,0.00%
20150826,"1,067,000","1,068,000","1,074,000","1,050,000",553.23K,-1.11%
20150825,"1,079,000","1,079,000","1,107,000","1,067,000",390.91K,0.00%
20150824,"1,079,000","1,088,000","1,115,000","1,033,000",447.19K,-2.00%
20150823,"1,101,000","1,101,000","1,101,000","1,101,000",0.08K,0.00%
20150821,"1,101,000","1,099,000","1,128,000","1,096,000",406.15K,-3.34%
20150820,"1,139,000","1,163,000","1,171,000","1,130,000",215.68K,-1.30%
20150819,"1,154,000","1,169,000","1,176,000","1,141,000",400.27K,2.03%
20150818,"1,131,000","1,118,000","1,141,000","1,117,000",223.67K,2.45%
20150817,"1,104,000","1,140,000","1,141,000","1,104,000",226.39K,-3.16%
20150816,"1,140,000","1,140,000","1,140,000","1,140,000",0.08K,0.00%
20150813,"1,140,000","1,153,000","1,153,000","1,138,000",149.62K,-1.21%
20150812,"1,154,000","1,150,000","1,164,000","1,140,000",222.94K,-0.26%
20150811,"1,157,000","1,151,000","1,179,000","1,148,000",229.25K,1.40%
20150810,"1,141,000","1,140,000","1,142,000","1,130,000",114.28K,0.44%
20150809,"1,136,000","1,136,000","1,136,000","1,136,000",0.03K,0.00%
20150807,"1,136,000","1,120,000","1,137,000","1,115,000",255.32K,1.88%
20150806,"1,115,000","1,155,000","1,156,000","1,115,000",400.77K,-3.80%
20150805,"1,159,000","1,182,000","1,182,000","1,158,000",249.72K,-1.95%
20150804,"1,182,000","1,175,000","1,187,000","1,170,000",188.61K,0.60%
20150803,"1,175,000","1,184,000","1,184,000","1,166,000",190.50K,-0.84%
20150802,"1,185,000","1,185,000","1,185,000","1,185,000",0.03K,0.00%
20150731,"1,185,000","1,220,000","1,222,000","1,175,000",371.18K,-2.47%
20150730,"1,215,000","1,258,000","1,260,000","1,215,000",307.77K,-3.80%
20150729,"1,263,000","1,250,000","1,275,000","1,231,000",272.37K,2.68%
20150728,"1,230,000","1,224,000","1,251,000","1,219,000",252.48K,0.00%
20150727,"1,230,000","1,229,000","1,247,000","1,228,000",198.66K,0.08%
20150726,"1,229,000","1,229,000","1,229,000","1,229,000",0.05K,0.00%
20150724,"1,229,000","1,227,000","1,238,000","1,224,000",195.74K,-0.41%
20150723,"1,234,000","1,244,000","1,253,000","1,234,000",198.79K,-1.52%
20150722,"1,253,000","1,244,000","1,260,000","1,235,000",266.78K,-0.79%
20150721,"1,263,000","1,275,000","1,277,000","1,247,000",193.61K,-0.94%
20150720,"1,275,000","1,291,000","1,304,000","1,273,000",128.25K,-2.30%
20150719,"1,305,000","1,305,000","1,305,000","1,305,000",-,0.00%
20150717,"1,305,000","1,300,000","1,311,000","1,278,000",297.03K,1.79%
20150716,"1,282,000","1,223,000","1,287,000","1,223,000",219.35K,3.81%
20150715,"1,235,000","1,225,000","1,238,000","1,224,000",167.23K,0.82%
20150714,"1,225,000","1,265,000","1,270,000","1,221,000",369.13K,-3.24%
20150713,"1,266,000","1,250,000","1,272,000","1,245,000",153.34K,0.56%
20150712,"1,259,000","1,259,000","1,259,000","1,259,000",0.03K,0.00%
20150710,"1,259,000","1,257,000","1,266,000","1,248,000",174.78K,-0.47%
20150709,"1,265,000","1,230,000","1,265,000","1,226,000",274.22K,2.10%
20150708,"1,239,000","1,240,000","1,251,000","1,232,000",215.39K,-0.08%
20150707,"1,240,000","1,220,000","1,259,000","1,220,000",237.22K,0.81%
20150706,"1,230,000","1,253,000","1,260,000","1,223,000",196.76K,-3.00%
20150705,"1,268,000","1,268,000","1,268,000","1,268,000",0.06K,0.00%
20150703,"1,268,000","1,287,000","1,294,000","1,267,000",139.35K,-2.39%
20150702,"1,299,000","1,286,000","1,304,000","1,285,000",151.44K,0.31%
20150701,"1,295,000","1,268,000","1,302,000","1,259,000",161.75K,2.13%
20150630,"1,268,000","1,276,000","1,285,000","1,266,000",197.26K,-1.01%
20150629,"1,281,000","1,269,000","1,285,000","1,256,000",229.47K,0.23%
20150628,"1,278,000","1,278,000","1,278,000","1,278,000",0.02K,0.00%
20150626,"1,278,000","1,252,000","1,290,000","1,252,000",206.76K,0.71%
20150625,"1,269,000","1,290,000","1,303,000","1,269,000",202.41K,-2.53%
20150624,"1,302,000","1,300,000","1,311,000","1,291,000",195.47K,-1.44%
20150623,"1,321,000","1,309,000","1,328,000","1,291,000",201.88K,3.12%
20150622,"1,281,000","1,291,000","1,296,000","1,276,000",124.61K,1.18%
20150619,"1,266,000","1,266,000","1,278,000","1,260,000",140.65K,0.08%
20150618,"1,265,000","1,259,000","1,279,000","1,251,000",153.22K,0.88%
20150617,"1,254,000","1,250,000","1,266,000","1,240,000",188.91K,-0.08%
20150616,"1,255,000","1,270,000","1,274,000","1,245,000",255.21K,-1.18%
20150615,"1,270,000","1,255,000","1,274,000","1,255,000",124.29K,-0.55%
20150614,"1,277,000","1,277,000","1,277,000","1,277,000",0.01K,0.00%
20150612,"1,277,000","1,278,000","1,287,000","1,264,000",214.65K,1.59%
20150611,"1,257,000","1,263,000","1,274,000","1,253,000",305.13K,-0.40%
20150610,"1,262,000","1,282,000","1,294,000","1,262,000",249.47K,-1.56%
20150609,"1,282,000","1,300,000","1,310,000","1,268,000",272.13K,-2.44%
20150608,"1,314,000","1,345,000","1,347,000","1,313,000",197.28K,-2.01%
20150607,"1,341,000","1,341,000","1,341,000","1,341,000",0.08K,0.00%
20150605,"1,341,000","1,325,000","1,355,000","1,320,000",191.42K,0.30%
20150604,"1,337,000","1,315,000","1,341,000","1,305,000",387.56K,5.03%
20150603,"1,273,000","1,303,000","1,316,000","1,265,000",233.35K,-2.30%
20150602,"1,303,000","1,300,000","1,303,000","1,288,000",174.54K,0.93%
20150601,"1,291,000","1,300,000","1,301,000","1,288,000",198.52K,-1.22%
20150529,"1,307,000","1,320,000","1,321,000","1,297,000",340.16K,-0.15%
20150528,"1,309,000","1,317,000","1,321,000","1,301,000",294.50K,-0.38%
20150527,"1,314,000","1,360,000","1,366,000","1,313,000",341.53K,-3.52%
20150526,"1,362,000","1,366,000","1,369,000","1,336,000",193.58K,0.89%
20150525,"1,350,000","1,350,000","1,350,000","1,350,000",0.04K,0.00%
20150522,"1,350,000","1,353,000","1,353,000","1,335,000",163.83K,-0.15%
20150521,"1,352,000","1,371,000","1,372,000","1,344,000",144.04K,-1.02%
20150520,"1,366,000","1,349,000","1,370,000","1,341,000",205.35K,2.09%
20150519,"1,338,000","1,321,000","1,355,000","1,307,000",173.56K,1.36%
20150518,"1,320,000","1,335,000","1,335,000","1,309,000",181.39K,-0.45%
20150517,"1,326,000","1,326,000","1,326,000","1,326,000",0.01K,0.00%
20150515,"1,326,000","1,355,000","1,356,000","1,321,000",178.29K,-1.04%
20150514,"1,340,000","1,341,000","1,343,000","1,328,000",169.26K,0.53%
20150513,"1,333,000","1,349,000","1,349,000","1,326,000",197.22K,0.15%
20150512,"1,331,000","1,345,000","1,353,000","1,324,000",212.22K,-0.37%
20150511,"1,336,000","1,360,000","1,360,000","1,336,000",192.56K,-0.15%
20150510,"1,338,000","1,338,000","1,338,000","1,338,000",-,0.00%
20150508,"1,338,000","1,366,000","1,370,000","1,338,000",189.23K,-2.34%
20150507,"1,370,000","1,362,000","1,375,000","1,354,000",192.17K,0.59%
20150506,"1,362,000","1,390,000","1,391,000","1,356,000",264.93K,-2.71%
20150505,"1,400,000","1,400,000","1,400,000","1,400,000",0.01K,0.00%
20150504,"1,400,000","1,407,000","1,423,000","1,397,000",161.38K,-0.71%
20150503,"1,410,000","1,410,000","1,410,000","1,410,000",0.04K,0.00%
20150430,"1,410,000","1,385,000","1,418,000","1,379,000",353.94K,1.81%
20150429,"1,385,000","1,367,000","1,394,000","1,364,000",217.33K,1.39%
20150428,"1,366,000","1,390,000","1,400,000","1,359,000",313.53K,-2.08%
20150427,"1,395,000","1,410,000","1,411,000","1,375,000",330.09K,-1.06%
20150424,"1,410,000","1,449,000","1,455,000","1,400,000",380.85K,-2.83%
20150423,"1,451,000","1,470,000","1,470,000","1,440,000",184.72K,-0.68%
20150422,"1,461,000","1,444,000","1,473,000","1,436,000",252.75K,1.18%
20150421,"1,444,000","1,421,000","1,445,000","1,420,000",236.29K,0.98%
20150420,"1,430,000","1,446,000","1,448,000","1,423,000",245.62K,-1.38%
20150419,"1,450,000","1,450,000","1,450,000","1,450,000",0.01K,0.00%
20150417,"1,450,000","1,477,000","1,478,000","1,447,000",199.85K,-1.83%
20150416,"1,477,000","1,462,000","1,477,000","1,447,000",209.98K,2.14%
20150415,"1,446,000","1,460,000","1,470,000","1,427,000",270.86K,-1.90%
20150414,"1,474,000","1,485,000","1,485,000","1,465,000",188.50K,-0.34%
20150413,"1,479,000","1,479,000","1,491,000","1,468,000",203.74K,-0.74%
20150412,"1,490,000","1,490,000","1,490,000","1,490,000",0.08K,0.00%
20150410,"1,490,000","1,480,000","1,494,000","1,478,000",188.64K,0.47%
20150409,"1,483,000","1,470,000","1,489,000","1,470,000",169.62K,0.27%
20150408,"1,479,000","1,470,000","1,485,000","1,460,000",153.76K,1.16%
20150407,"1,462,000","1,478,000","1,485,000","1,462,000",186.32K,-0.54%
20150406,"1,470,000","1,443,000","1,490,000","1,435,000",209.99K,2.51%
20150405,"1,434,000","1,434,000","1,434,000","1,434,000",0.06K,0.00%
20150403,"1,434,000","1,434,000","1,440,000","1,420,000",122.24K,0.00%
20150402,"1,434,000","1,434,000","1,440,000","1,423,000",134.48K,0.77%
20150401,"1,423,000","1,437,000","1,437,000","1,420,000",144.24K,-1.25%
20150331,"1,441,000","1,449,000","1,452,000","1,430,000",196.20K,0.91%
20150330,"1,428,000","1,425,000","1,434,000","1,412,000",146.06K,0.49%
20150327,"1,421,000","1,415,000","1,448,000","1,415,000",310.93K,0.00%
20150326,"1,421,000","1,450,000","1,456,000","1,421,000",411.78K,-4.31%
20150325,"1,485,000","1,487,000","1,488,000","1,472,000",180.31K,0.61%
20150324,"1,476,000","1,455,000","1,478,000","1,455,000",171.29K,0.61%
20150323,"1,467,000","1,462,000","1,474,000","1,458,000",154.98K,0.20%
20150322,"1,464,000","1,464,000","1,464,000","1,464,000",-,0.00%
20150320,"1,464,000","1,475,000","1,480,000","1,460,000",242.85K,-0.41%
20150319,"1,470,000","1,510,000","1,510,000","1,470,000",248.25K,-2.20%
20150318,"1,503,000","1,496,000","1,506,000","1,486,000",243.94K,0.40%
20150317,"1,497,000","1,470,000","1,500,000","1,460,000",272.16K,1.84%
20150316,"1,470,000","1,458,000","1,487,000","1,455,000",179.39K,0.89%
20150315,"1,457,000","1,457,000","1,457,000","1,457,000",0.05K,0.00%
20150313,"1,457,000","1,461,000","1,479,000","1,455,000",181.90K,0.69%
20150312,"1,447,000","1,460,000","1,473,000","1,447,000",366.05K,-1.83%
20150311,"1,474,000","1,419,000","1,479,000","1,418,000",407.47K,3.73%
20150310,"1,421,000","1,434,000","1,443,000","1,420,000",174.95K,0.07%
20150309,"1,420,000","1,440,000","1,440,000","1,420,000",141.99K,-1.53%
20150308,"1,442,000","1,442,000","1,442,000","1,442,000",0.03K,0.00%
20150306,"1,442,000","1,414,000","1,449,000","1,406,000",234.49K,1.41%
20150305,"1,422,000","1,439,000","1,443,000","1,417,000",192.13K,-1.04%
20150304,"1,437,000","1,411,000","1,440,000","1,410,000",231.21K,1.34%
20150303,"1,418,000","1,435,000","1,437,000","1,406,000",251.32K,-0.35%
20150302,"1,423,000","1,375,000","1,423,000","1,367,000",425.60K,4.86%
20150227,"1,357,000","1,375,000","1,376,000","1,357,000",252.42K,-1.31%
20150226,"1,375,000","1,379,000","1,380,000","1,368,000",146.07K,-0.29%
20150225,"1,379,000","1,380,000","1,385,000","1,373,000",161.48K,0.88%
20150224,"1,367,000","1,385,000","1,389,000","1,364,000",190.77K,0.00%
20150223,"1,367,000","1,378,000","1,390,000","1,366,000",303.16K,-0.73%
20150222,"1,377,000","1,377,000","1,377,000","1,377,000",0.01K,0.00%
20150217,"1,377,000","1,374,000","1,377,000","1,364,000",109.61K,0.22%
20150216,"1,374,000","1,368,000","1,374,000","1,361,000",122.47K,0.96%
20150215,"1,361,000","1,361,000","1,361,000","1,361,000",0.01K,0.00%
20150213,"1,361,000","1,360,000","1,361,000","1,345,000",130.03K,1.26%
This diff could not be displayed because it is too large.
No preview for this file type