diff --git a/BERT Sentiment Analysis for SE/Readme.md b/BERT Sentiment Analysis for SE/Readme.md new file mode 100644 index 000000000..18f2aad10 --- /dev/null +++ b/BERT Sentiment Analysis for SE/Readme.md @@ -0,0 +1,86 @@ +# BERT Sentiment Analysis model for Software Engineering Comments + +We have sentiment analysis model to analyze user reviews , chats , messages , comments , as well product reviews too . Generally the domain of analysis speaks about analysis of the sentiments of movies , people review or any product or service . Right now we dont have as such production models to speak about technical language sentiment analysis .Here in this problem statement , I created a BERT model to do sentiment analysis on the software engineering comments , which can help coders , developers as well site admins to look on the sentiment of the asked questions and here in ground truth lying behind . + +## What is BERT : + +BERT (Bidirectional Encoder Representations from Transformers) is a recent paper published by researchers at Google AI Language. It has caused a stir in the Machine Learning community by presenting state-of-the-art results in a wide variety of NLP tasks, including Question Answering (SQuAD v1.1), Natural Language Inference (MNLI), and others. +BERT’s key technical innovation is applying the bidirectional training of Transformer, a popular attention model, to language modelling. This is in contrast to previous efforts which looked at a text sequence either from left to right or combined left-to-right and right-to-left training. The paper’s results show that a language model which is bidirectionally trained can have a deeper sense of language context and flow than single-direction language models. In the paper, the researchers detail a novel technique named Masked LM (MLM) which allows bidirectional training in models in which it was previously impossible. + +## Dataset : + i collected data from Stack over flow , Git hub , JIRA . I used resources from Kaggle and github to collect the CSV files an the raw text datas . Next i mereged the entire data in a proper structured categorical data format and saved inside the ./data folder . The data is dived into two formats ./data/Train.csv & ./data/Test.csv. The data is having comments from developers and its accompanied by the underneath sentiment. + + ## Special Features of the model : + + The special features of this project which speaks about the sake of doing it includes : + ``` + a.) It is difficult to analyze the technical keywords and pass it into AI models for sentiment analysis + b.) If sites like Github , JIRA , Stack overflow have this power of sentiment nalaysis from this type of advanced model called BERT , then they can easily eleimante out spams , + plagarism as well can detect which type of content is going quality . Also it will halp a lot in evaluating technlogies and tech stack based on the responses. + ``` + + ## How this model will work : + + For training the BERT Model I am using [K train Library](https://pypi.org/project/ktrain/) which is a a fastai-like interface to Keras, that helps build and train Keras models with less time and coding. ktrain is open-source and available on GitHub [here](https://github.com/amaiya/ktrain/tree/master/ktrain). + + To install ktrain, simply type the following: + ``` + pip install ktrain + ``` + To begin, let’s import the ktrain and ktrain.text modules: + ``` + import ktrain +from ktrain import text +``` +Load the Data in the BERT model : +``` +train_path="/content/Train.csv" +test_path="/content/Test.csv" +tr_path= pathlib.Path(train_path) +te_path=pathlib.Path(test_path) +if tr_path.exists (): + print("Train data path set.") +else: + raise SystemExit("Train data path does not exist.") + +if te_path.exists (): + print("Test data path set.") +else: + raise SystemExit("Test data path does not exist.") + +(x_train, y_train), (x_test, y_test), preproc = text.texts_from_array(train_df[:,2], train_df[:,1], x_test=test_df[:,2], y_test=test_df[:,1],maxlen=500, preprocess_mode='bert') +``` +Load BERT and wrap it in a Learner object +The first argument to get_learner uses the ktraintext_classifier function to load the pre-trained BERT model with a randomly initialized final Dense layer. The second and third arguments are the training and validation data, respectively. The last argument get_learner is the batch size. We use a small batch size of 6. +``` +model = text.text_classifier('bert', (x_train, y_train) , preproc=preproc) +learner = ktrain.get_learner(model, + train_data=(x_train, y_train), + val_data=(x_test, y_test), + batch_size=6) +``` +Train the model +To train the model, we use the fit_onecycle method of ktrain which employs a 1cycle learning rate policy that linearly increases the learning rate for the first half of training and then decreases the learning rate for the latter half: +``` +learner.autofit(2e-5, early_stopping=5) +``` +Plot the learning rate +``` +learner.lr_plot() +``` +Storing the model +``` +model.save("model.h5") +predictor = ktrain.get_predictor(learner.model, preproc) +``` + +## How to Run the script : +The steps involved to run the script are as follows : (Specify all your data paths before run) +``` +pip install -r requirements.txt +python model.py +``` + +## Final Conclusion : + +The model is performing with near about to 86.7 % accuracy on the testing satge on the test data. diff --git a/BERT Sentiment Analysis for SE/data/Test.csv b/BERT Sentiment Analysis for SE/data/Test.csv new file mode 100644 index 000000000..6585ae97b Binary files /dev/null and b/BERT Sentiment Analysis for SE/data/Test.csv differ diff --git a/BERT Sentiment Analysis for SE/data/Train.csv b/BERT Sentiment Analysis for SE/data/Train.csv new file mode 100644 index 000000000..34c749f38 Binary files /dev/null and b/BERT Sentiment Analysis for SE/data/Train.csv differ diff --git a/BERT Sentiment Analysis for SE/model.py b/BERT Sentiment Analysis for SE/model.py new file mode 100644 index 000000000..376866a24 --- /dev/null +++ b/BERT Sentiment Analysis for SE/model.py @@ -0,0 +1,83 @@ +#Installing Essential Requirements +!pip install -r /content/requirements.txt +!pip install ktrain +#importing Packages +import os +import pathlib +import pandas as pd +from sklearn.metrics import classification_report +os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"; +os.environ["CUDA_VISIBLE_DEVICES"]="0"; +#Importing K Train +import ktrain +from ktrain import text +# Data Loader +train_path="/content/Train.csv" +test_path="/content/Test.csv" +tr_path= pathlib.Path(train_path) +te_path=pathlib.Path(test_path) +if tr_path.exists (): + print("Train data path set.") +else: + raise SystemExit("Train data path does not exist.") + +if te_path.exists (): + print("Test data path set.") +else: + raise SystemExit("Test data path does not exist.") + +train_df=pd.read_csv(train_path, encoding='utf-16', sep=';', header=None).values +#train_df.head() +test_df=pd.read_csv(test_path, encoding='utf-16', sep=';', header=None).values +#test_df.head() +(x_train, y_train), (x_test, y_test), preproc = text.texts_from_array(train_df[:,2], train_df[:,1], x_test=test_df[:,2], y_test=test_df[:,1],maxlen=500, preprocess_mode='bert') +#Model Training +model = text.text_classifier('bert', (x_train, y_train) , preproc=preproc) +learner = ktrain.get_learner(model, + train_data=(x_train, y_train), + val_data=(x_test, y_test), + batch_size=6) +learner.lr_plot() +learner.autofit(2e-5, early_stopping=5) +#model Evaluation +model.save("model.h5") +predictor = ktrain.get_predictor(learner.model, preproc) +data=test_df[:,2].tolist() +label=test_df[:,1].tolist() + + +i=0 +correct=0 +wrong=0 +total=len(data) +true_lab=[] +pred_lab=[] +text=[] +for dt in data: + result=predictor.predict(dt) + if not result== label[i]: + text.append(dt) + pred_lab.append(result) + true_lab.append(label[i]) + wrong+=1 + else: + correct+=1 + + i+=1 + +name_dict = { + 'Name': text, + 'Gold Label' : true_lab, + 'Predicted Label': pred_lab + } + +wrong_data= pd.DataFrame(name_dict) + +wrong_data.to_csv("wrong_results.csv", sep=';') + +names = ['negative', 'neutral', 'positive'] +y_pred = predictor.predict(data) +y_true= test_df[1] +print(classification_report(y_true, y_pred, target_names=names)) + +print("Correct: ", correct,"/",total,"\nWrong: ", wrong,"/",total) diff --git a/BERT Sentiment Analysis for SE/notebook/model.ipynb b/BERT Sentiment Analysis for SE/notebook/model.ipynb new file mode 100644 index 000000000..b666f12af --- /dev/null +++ b/BERT Sentiment Analysis for SE/notebook/model.ipynb @@ -0,0 +1,8848 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import pathlib\n", + "import pandas as pd\n", + "from sklearn.metrics import classification_report\n", + "os.environ[\"CUDA_DEVICE_ORDER\"]=\"PCI_BUS_ID\";\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"]=\"0\"; " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting ktrain\r\n", + " Downloading ktrain-0.14.7.tar.gz (25.2 MB)\r\n", + "\u001b[K |████████████████████████████████| 25.2 MB 5.0 MB/s \r\n", + "\u001b[?25hRequirement already satisfied: tensorflow==2.1.0 in /opt/conda/lib/python3.7/site-packages (from ktrain) (2.1.0)\r\n", + "Requirement already satisfied: scikit-learn>=0.21.3 in /opt/conda/lib/python3.7/site-packages (from ktrain) (0.22.2.post1)\r\n", + "Requirement already satisfied: matplotlib>=3.0.0 in /opt/conda/lib/python3.7/site-packages (from ktrain) (3.1.3)\r\n", + "Requirement already satisfied: pandas>=1.0.1 in /opt/conda/lib/python3.7/site-packages (from ktrain) (1.0.1)\r\n", + "Requirement already satisfied: fastprogress>=0.1.21 in /opt/conda/lib/python3.7/site-packages (from ktrain) (0.2.3)\r\n", + "Collecting keras_bert>=0.81.0\r\n", + " Downloading keras-bert-0.81.0.tar.gz (29 kB)\r\n", + "Requirement already satisfied: requests in /opt/conda/lib/python3.7/site-packages (from ktrain) (2.23.0)\r\n", + "Requirement already satisfied: joblib in /opt/conda/lib/python3.7/site-packages (from ktrain) (0.14.1)\r\n", + "Collecting langdetect\r\n", + " Downloading langdetect-1.0.8.tar.gz (981 kB)\r\n", + "\u001b[K |████████████████████████████████| 981 kB 44.5 MB/s \r\n", + "\u001b[?25hRequirement already satisfied: jieba in /opt/conda/lib/python3.7/site-packages (from ktrain) (0.42.1)\r\n", + "Collecting cchardet==2.1.5\r\n", + " Downloading cchardet-2.1.5-cp37-cp37m-manylinux1_x86_64.whl (241 kB)\r\n", + "\u001b[K |████████████████████████████████| 241 kB 46.9 MB/s \r\n", + "\u001b[?25hRequirement already satisfied: networkx>=2.3 in /opt/conda/lib/python3.7/site-packages (from ktrain) (2.4)\r\n", + "Requirement already satisfied: bokeh in /opt/conda/lib/python3.7/site-packages (from ktrain) (2.0.1)\r\n", + "Collecting seqeval\r\n", + " Downloading seqeval-0.0.12.tar.gz (21 kB)\r\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.7/site-packages (from ktrain) (20.1)\r\n", + "Collecting tensorflow_datasets\r\n", + " Downloading tensorflow_datasets-3.1.0-py3-none-any.whl (3.3 MB)\r\n", + "\u001b[K |████████████████████████████████| 3.3 MB 38.1 MB/s \r\n", + "\u001b[?25hRequirement already satisfied: transformers>=2.7.0 in /opt/conda/lib/python3.7/site-packages (from ktrain) (2.8.0)\r\n", + "Requirement already satisfied: ipython in /opt/conda/lib/python3.7/site-packages (from ktrain) (7.12.0)\r\n", + "Collecting syntok\r\n", + " Downloading syntok-1.3.1.tar.gz (23 kB)\r\n", + "Collecting whoosh\r\n", + " Downloading Whoosh-2.7.4-py2.py3-none-any.whl (468 kB)\r\n", + "\u001b[K |████████████████████████████████| 468 kB 47.2 MB/s \r\n", + "\u001b[?25hRequirement already satisfied: google-pasta>=0.1.6 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (0.2.0)\r\n", + "Requirement already satisfied: scipy==1.4.1; python_version >= \"3\" in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (1.4.1)\r\n", + "Requirement already satisfied: numpy<2.0,>=1.16.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (1.18.1)\r\n", + "Requirement already satisfied: termcolor>=1.1.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (1.1.0)\r\n", + "Requirement already satisfied: wrapt>=1.11.1 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (1.11.2)\r\n", + "Requirement already satisfied: six>=1.12.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (1.14.0)\r\n", + "Requirement already satisfied: keras-applications>=1.0.8 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (1.0.8)\r\n", + "Requirement already satisfied: astor>=0.6.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (0.8.1)\r\n", + "Requirement already satisfied: tensorboard<2.2.0,>=2.1.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (2.1.1)\r\n", + "Requirement already satisfied: grpcio>=1.8.6 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (1.28.1)\r\n", + "Requirement already satisfied: wheel>=0.26; python_version >= \"3\" in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (0.34.2)\r\n", + "Requirement already satisfied: protobuf>=3.8.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (3.11.3)\r\n", + "Requirement already satisfied: keras-preprocessing>=1.1.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (1.1.0)\r\n", + "Requirement already satisfied: opt-einsum>=2.3.2 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (3.2.1)\r\n", + "Requirement already satisfied: gast==0.2.2 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (0.2.2)\r\n", + "Requirement already satisfied: absl-py>=0.7.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (0.9.0)\r\n", + "Requirement already satisfied: tensorflow-estimator<2.2.0,>=2.1.0rc0 in /opt/conda/lib/python3.7/site-packages (from tensorflow==2.1.0->ktrain) (2.1.0)\r\n", + "Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.7/site-packages (from matplotlib>=3.0.0->ktrain) (2.8.1)\r\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /opt/conda/lib/python3.7/site-packages (from matplotlib>=3.0.0->ktrain) (2.4.6)\r\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.7/site-packages (from matplotlib>=3.0.0->ktrain) (1.1.0)\r\n", + "Requirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.7/site-packages (from matplotlib>=3.0.0->ktrain) (0.10.0)\r\n", + "Requirement already satisfied: pytz>=2017.2 in /opt/conda/lib/python3.7/site-packages (from pandas>=1.0.1->ktrain) (2019.3)\r\n", + "Requirement already satisfied: Keras in /opt/conda/lib/python3.7/site-packages (from keras_bert>=0.81.0->ktrain) (2.3.1)\r\n", + "Collecting keras-transformer>=0.30.0\r\n", + " Downloading keras-transformer-0.33.0.tar.gz (11 kB)\r\n", + "Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.7/site-packages (from requests->ktrain) (2020.4.5.1)\r\n", + "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.7/site-packages (from requests->ktrain) (1.25.7)\r\n", + "Requirement already satisfied: chardet<4,>=3.0.2 in /opt/conda/lib/python3.7/site-packages (from requests->ktrain) (3.0.4)\r\n", + "Requirement already satisfied: idna<3,>=2.5 in /opt/conda/lib/python3.7/site-packages (from requests->ktrain) (2.9)\r\n", + "Requirement already satisfied: decorator>=4.3.0 in /opt/conda/lib/python3.7/site-packages (from networkx>=2.3->ktrain) (4.4.1)\r\n", + "Requirement already satisfied: PyYAML>=3.10 in /opt/conda/lib/python3.7/site-packages (from bokeh->ktrain) (5.3)\r\n", + "Requirement already satisfied: typing-extensions>=3.7.4 in /opt/conda/lib/python3.7/site-packages (from bokeh->ktrain) (3.7.4.2)\r\n", + "Requirement already satisfied: pillow>=4.0 in /opt/conda/lib/python3.7/site-packages (from bokeh->ktrain) (5.4.1)\r\n", + "Requirement already satisfied: tornado>=5 in /opt/conda/lib/python3.7/site-packages (from bokeh->ktrain) (5.0.2)\r\n", + "Requirement already satisfied: Jinja2>=2.7 in /opt/conda/lib/python3.7/site-packages (from bokeh->ktrain) (2.11.1)\r\n", + "Requirement already satisfied: attrs>=18.1.0 in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets->ktrain) (19.3.0)\r\n", + "Requirement already satisfied: tqdm in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets->ktrain) (4.43.0)\r\n", + "Requirement already satisfied: future in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets->ktrain) (0.18.2)\r\n", + "Collecting tensorflow-metadata\r\n", + " Downloading tensorflow_metadata-0.21.2-py2.py3-none-any.whl (31 kB)\r\n", + "Requirement already satisfied: dill in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets->ktrain) (0.3.1.1)\r\n", + "Requirement already satisfied: promise in /opt/conda/lib/python3.7/site-packages (from tensorflow_datasets->ktrain) (2.3)\r\n", + "Requirement already satisfied: boto3 in /opt/conda/lib/python3.7/site-packages (from transformers>=2.7.0->ktrain) (1.12.41)\r\n", + "Requirement already satisfied: sentencepiece in /opt/conda/lib/python3.7/site-packages (from transformers>=2.7.0->ktrain) (0.1.85)\r\n", + "Requirement already satisfied: sacremoses in /opt/conda/lib/python3.7/site-packages (from transformers>=2.7.0->ktrain) (0.0.41)\r\n", + "Requirement already satisfied: tokenizers==0.5.2 in /opt/conda/lib/python3.7/site-packages (from transformers>=2.7.0->ktrain) (0.5.2)\r\n", + "Requirement already satisfied: regex!=2019.12.17 in /opt/conda/lib/python3.7/site-packages (from transformers>=2.7.0->ktrain) (2020.4.4)\r\n", + "Requirement already satisfied: filelock in /opt/conda/lib/python3.7/site-packages (from transformers>=2.7.0->ktrain) (3.0.10)\r\n", + "Requirement already satisfied: backcall in /opt/conda/lib/python3.7/site-packages (from ipython->ktrain) (0.1.0)\r\n", + "Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.7/site-packages (from ipython->ktrain) (45.2.0.post20200209)\r\n", + "Requirement already satisfied: pygments in /opt/conda/lib/python3.7/site-packages (from ipython->ktrain) (2.5.2)\r\n", + "Requirement already satisfied: pickleshare in /opt/conda/lib/python3.7/site-packages (from ipython->ktrain) (0.7.5)\r\n", + "Requirement already satisfied: pexpect; sys_platform != \"win32\" in /opt/conda/lib/python3.7/site-packages (from ipython->ktrain) (4.8.0)\r\n", + "Requirement already satisfied: jedi>=0.10 in /opt/conda/lib/python3.7/site-packages (from ipython->ktrain) (0.14.1)\r\n", + "Requirement already satisfied: traitlets>=4.2 in /opt/conda/lib/python3.7/site-packages (from ipython->ktrain) (4.3.3)\r\n", + "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.7/site-packages (from ipython->ktrain) (2.0.10)\r\n", + "Requirement already satisfied: h5py in /opt/conda/lib/python3.7/site-packages (from keras-applications>=1.0.8->tensorflow==2.1.0->ktrain) (2.10.0)\r\n", + "Requirement already satisfied: markdown>=2.6.8 in /opt/conda/lib/python3.7/site-packages (from tensorboard<2.2.0,>=2.1.0->tensorflow==2.1.0->ktrain) (3.2.1)\r\n", + "Requirement already satisfied: google-auth<2,>=1.6.3 in /opt/conda/lib/python3.7/site-packages (from tensorboard<2.2.0,>=2.1.0->tensorflow==2.1.0->ktrain) (1.11.2)\r\n", + "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /opt/conda/lib/python3.7/site-packages (from tensorboard<2.2.0,>=2.1.0->tensorflow==2.1.0->ktrain) (0.4.1)\r\n", + "Requirement already satisfied: werkzeug>=0.11.15 in /opt/conda/lib/python3.7/site-packages (from tensorboard<2.2.0,>=2.1.0->tensorflow==2.1.0->ktrain) (1.0.0)\r\n", + "Collecting keras-pos-embd>=0.10.0\r\n", + " Downloading keras-pos-embd-0.11.0.tar.gz (5.9 kB)\r\n", + "Collecting keras-multi-head>=0.22.0\r\n", + " Downloading keras-multi-head-0.22.0.tar.gz (12 kB)\r\n", + "Collecting keras-layer-normalization>=0.12.0\r\n", + " Downloading keras-layer-normalization-0.14.0.tar.gz (4.3 kB)\r\n", + "Collecting keras-position-wise-feed-forward>=0.5.0\r\n", + " Downloading keras-position-wise-feed-forward-0.6.0.tar.gz (4.4 kB)\r\n", + "Collecting keras-embed-sim>=0.7.0\r\n", + " Downloading keras-embed-sim-0.7.0.tar.gz (4.1 kB)\r\n", + "Requirement already satisfied: MarkupSafe>=0.23 in /opt/conda/lib/python3.7/site-packages (from Jinja2>=2.7->bokeh->ktrain) (1.1.1)\r\n", + "Requirement already satisfied: googleapis-common-protos in /opt/conda/lib/python3.7/site-packages (from tensorflow-metadata->tensorflow_datasets->ktrain) (1.51.0)\r\n", + "Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in /opt/conda/lib/python3.7/site-packages (from boto3->transformers>=2.7.0->ktrain) (0.9.5)\r\n", + "Requirement already satisfied: s3transfer<0.4.0,>=0.3.0 in /opt/conda/lib/python3.7/site-packages (from boto3->transformers>=2.7.0->ktrain) (0.3.3)\r\n", + "Requirement already satisfied: botocore<1.16.0,>=1.15.41 in /opt/conda/lib/python3.7/site-packages (from boto3->transformers>=2.7.0->ktrain) (1.15.41)\r\n", + "Requirement already satisfied: click in /opt/conda/lib/python3.7/site-packages (from sacremoses->transformers>=2.7.0->ktrain) (7.0)\r\n", + "Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.7/site-packages (from pexpect; sys_platform != \"win32\"->ipython->ktrain) (0.6.0)\r\n", + "Requirement already satisfied: parso>=0.5.0 in /opt/conda/lib/python3.7/site-packages (from jedi>=0.10->ipython->ktrain) (0.6.1)\r\n", + "Requirement already satisfied: ipython-genutils in /opt/conda/lib/python3.7/site-packages (from traitlets>=4.2->ipython->ktrain) (0.2.0)\r\n", + "Requirement already satisfied: wcwidth in /opt/conda/lib/python3.7/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython->ktrain) (0.1.8)\r\n", + "Requirement already satisfied: pyasn1-modules>=0.2.1 in /opt/conda/lib/python3.7/site-packages (from google-auth<2,>=1.6.3->tensorboard<2.2.0,>=2.1.0->tensorflow==2.1.0->ktrain) (0.2.7)\r\n", + "Requirement already satisfied: rsa<4.1,>=3.1.4 in /opt/conda/lib/python3.7/site-packages (from google-auth<2,>=1.6.3->tensorboard<2.2.0,>=2.1.0->tensorflow==2.1.0->ktrain) (4.0)\r\n", + "Requirement already satisfied: cachetools<5.0,>=2.0.0 in /opt/conda/lib/python3.7/site-packages (from google-auth<2,>=1.6.3->tensorboard<2.2.0,>=2.1.0->tensorflow==2.1.0->ktrain) (3.1.1)\r\n", + "Requirement already satisfied: requests-oauthlib>=0.7.0 in /opt/conda/lib/python3.7/site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.2.0,>=2.1.0->tensorflow==2.1.0->ktrain) (1.2.0)\r\n", + "Collecting keras-self-attention==0.41.0\r\n", + " Downloading keras-self-attention-0.41.0.tar.gz (9.3 kB)\r\n", + "Requirement already satisfied: docutils<0.16,>=0.10 in /opt/conda/lib/python3.7/site-packages (from botocore<1.16.0,>=1.15.41->boto3->transformers>=2.7.0->ktrain) (0.15.2)\r\n", + "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /opt/conda/lib/python3.7/site-packages (from pyasn1-modules>=0.2.1->google-auth<2,>=1.6.3->tensorboard<2.2.0,>=2.1.0->tensorflow==2.1.0->ktrain) (0.4.8)\r\n", + "Requirement already satisfied: oauthlib>=3.0.0 in /opt/conda/lib/python3.7/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.2.0,>=2.1.0->tensorflow==2.1.0->ktrain) (3.0.1)\r\n", + "Building wheels for collected packages: ktrain, keras-bert, langdetect, seqeval, syntok, keras-transformer, keras-pos-embd, keras-multi-head, keras-layer-normalization, keras-position-wise-feed-forward, keras-embed-sim, keras-self-attention\r\n", + " Building wheel for ktrain (setup.py) ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \bdone\r\n", + "\u001b[?25h Created wheel for ktrain: filename=ktrain-0.14.7-py3-none-any.whl size=25240972 sha256=f8dbe678fed9583ab80ef777e773475b2c426341e83afe41680732cf971c9c6e\r\n", + " Stored in directory: /root/.cache/pip/wheels/d5/f8/64/c482e2e11303d04d85af01b9b94ecfbeff8620be8f6e543e5f\r\n", + " Building wheel for keras-bert (setup.py) ... \u001b[?25l-\b \b\\\b \bdone\r\n", + "\u001b[?25h Created wheel for keras-bert: filename=keras_bert-0.81.0-py3-none-any.whl size=37912 sha256=8b1b84aa583874f1598c4b7fe5910a29bd253b4b8218c8604fc94315b968f4c0\r\n", + " Stored in directory: /root/.cache/pip/wheels/fc/f6/94/9c54242cde921a3cdc7d049bae3f137d21fa28d3b8ccefd8a0\r\n", + " Building wheel for langdetect (setup.py) ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \bdone\r\n", + "\u001b[?25h Created wheel for langdetect: filename=langdetect-1.0.8-py3-none-any.whl size=993191 sha256=3d7276487f7df018a7499449eb2522f804bd6a7754fdf6f5dcda6de6bce4a425\r\n", + " Stored in directory: /root/.cache/pip/wheels/59/f6/9d/85068904dba861c0b9af74e286265a08da438748ee5ae56067\r\n", + " Building wheel for seqeval (setup.py) ... \u001b[?25l-\b \bdone\r\n", + "\u001b[?25h Created wheel for seqeval: filename=seqeval-0.0.12-py3-none-any.whl size=7423 sha256=f9eb2c7ab49c781064f5d5c1abb38a34ef29a709243ff561cbb569cc25e4465c\r\n", + " Stored in directory: /root/.cache/pip/wheels/dc/cc/62/a3b81f92d35a80e39eb9b2a9d8b31abac54c02b21b2d466edc\r\n", + " Building wheel for syntok (setup.py) ... \u001b[?25l-\b \b\\\b \bdone\r\n", + "\u001b[?25h Created wheel for syntok: filename=syntok-1.3.1-py3-none-any.whl size=20916 sha256=b4155e00098fc110e4344f64c71bc3c361f37d9759c20e946689a19f2d85f738\r\n", + " Stored in directory: /root/.cache/pip/wheels/5e/c2/33/e5d7d8f2f8b0c391d76bf82b844c3151bf23a84d75d02b185f\r\n", + " Building wheel for keras-transformer (setup.py) ... \u001b[?25l-\b \b\\\b \bdone\r\n", + "\u001b[?25h Created wheel for keras-transformer: filename=keras_transformer-0.33.0-py3-none-any.whl size=13259 sha256=5601c994b2647009355dc03eb8afdb2d2688e36da07e547e40b58a38dd4cd7af\r\n", + " Stored in directory: /root/.cache/pip/wheels/6a/d8/48/ad5dd5d184d38695ceb230091a11c954cb41f8be79169f5f25\r\n", + " Building wheel for keras-pos-embd (setup.py) ... \u001b[?25l-\b \b\\\b \bdone\r\n", + "\u001b[?25h Created wheel for keras-pos-embd: filename=keras_pos_embd-0.11.0-py3-none-any.whl size=7553 sha256=f0733de51d6a8ff5d9d611240dd52bc2d7ad7710654be190d2bbe161f08bb58d\r\n", + " Stored in directory: /root/.cache/pip/wheels/65/66/e9/c7eafddc29b81a98786f12b48a2aee7e3c633f6bf4a62cbc20\r\n", + " Building wheel for keras-multi-head (setup.py) ... \u001b[?25l-\b \b\\\b \bdone\r\n", + "\u001b[?25h Created wheel for keras-multi-head: filename=keras_multi_head-0.22.0-py3-none-any.whl size=15373 sha256=9ba0631691390d03c89bbdef85fe468dcba556ce63df45de2032df60a028ea81\r\n", + " Stored in directory: /root/.cache/pip/wheels/84/9a/24/906be267948ccf66cd40d415d710a263d5debd94e47b12d301\r\n", + " Building wheel for keras-layer-normalization (setup.py) ... \u001b[?25l-\b \b\\\b \bdone\r\n", + "\u001b[?25h Created wheel for keras-layer-normalization: filename=keras_layer_normalization-0.14.0-py3-none-any.whl size=5267 sha256=a2a5a2e40e981ea3fc65ca4a80d0f476aa48b09862ead5210b6cb584b9fed773\r\n", + " Stored in directory: /root/.cache/pip/wheels/58/14/24/76b0d99b7d9cc17e110956e0fae825a5da3e70a60273220502\r\n", + " Building wheel for keras-position-wise-feed-forward (setup.py) ... \u001b[?25l-\b \b\\\b \bdone\r\n", + "\u001b[?25h Created wheel for keras-position-wise-feed-forward: filename=keras_position_wise_feed_forward-0.6.0-py3-none-any.whl size=5623 sha256=1a097fb15a1b5a765f9c636bfa6e00897ea2dd4a651a50197fb5b1a57b7b5421\r\n", + " Stored in directory: /root/.cache/pip/wheels/9e/53/a2/651c985b605e6a6c48688c779808eb1956fabb910b0557d871\r\n", + " Building wheel for keras-embed-sim (setup.py) ... \u001b[?25l-\b \b\\\b \bdone\r\n", + "\u001b[?25h Created wheel for keras-embed-sim: filename=keras_embed_sim-0.7.0-py3-none-any.whl size=4674 sha256=7fdff4dc252d0c715ddfc4bbbdc46eb460a80621cab2934b6ae1dee24bcecd89\r\n", + " Stored in directory: /root/.cache/pip/wheels/15/b0/a6/485a2a1484a5bb9d4593bd96e4e78ead78fa5ee51e6bd4ef3f\r\n", + " Building wheel for keras-self-attention (setup.py) ... \u001b[?25l-\b \b\\\b \bdone\r\n", + "\u001b[?25h Created wheel for keras-self-attention: filename=keras_self_attention-0.41.0-py3-none-any.whl size=17288 sha256=a8974b16ef4ab5edb90ce768c74dba1023c600eddae0ff5a768a09511e7919ac\r\n", + " Stored in directory: /root/.cache/pip/wheels/ff/90/b9/1f0da40d3e5796aeccb453dccd05035c1f34db3f0732d9b1a8\r\n", + "Successfully built ktrain keras-bert langdetect seqeval syntok keras-transformer keras-pos-embd keras-multi-head keras-layer-normalization keras-position-wise-feed-forward keras-embed-sim keras-self-attention\r\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, langdetect, cchardet, seqeval, tensorflow-metadata, tensorflow-datasets, syntok, whoosh, ktrain\r\n", + "Successfully installed cchardet-2.1.5 keras-bert-0.81.0 keras-embed-sim-0.7.0 keras-layer-normalization-0.14.0 keras-multi-head-0.22.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 ktrain-0.14.7 langdetect-1.0.8 seqeval-0.0.12 syntok-1.3.1 tensorflow-datasets-3.1.0 tensorflow-metadata-0.21.2 whoosh-2.7.4\r\n" + ] + } + ], + "source": [ + "!pip install ktrain\n", + "import ktrain\n", + "from ktrain import text" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train data path set.\n", + "Test data path set.\n" + ] + } + ], + "source": [ + "#check if the paths for the input data is valid.\n", + "train_path=\"../Train.csv\"\n", + "test_path=\"../Test.csv\"\n", + "tr_path= pathlib.Path(train_path)\n", + "te_path=pathlib.Path(test_path)\n", + "if tr_path.exists ():\n", + " print(\"Train data path set.\")\n", + "else: \n", + " raise SystemExit(\"Train data path does not exist.\")\n", + " \n", + "if te_path.exists ():\n", + " print(\"Test data path set.\")\n", + "else: \n", + " raise SystemExit(\"Test data path does not exist.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
012
0t1negativeVineet, what you are trying to do is a terribl...
1t2positive'Course I do, corrected.
2t3positiveExcellent, happy to help! If you don't mind, c...
3t6negative@talnicolas I'm using it a few dozen times in ...
4t7neutralI didn't select an answer because even though ...
\n", + "
" + ], + "text/plain": [ + " 0 1 2\n", + "0 t1 negative Vineet, what you are trying to do is a terribl...\n", + "1 t2 positive 'Course I do, corrected.\n", + "2 t3 positive Excellent, happy to help! If you don't mind, c...\n", + "3 t6 negative @talnicolas I'm using it a few dozen times in ...\n", + "4 t7 neutral I didn't select an answer because even though ..." + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#showing the first 5 lines of the train data\n", + "train_df=pd.read_csv(train_path, encoding='utf-16', sep=';', header=None).values\n", + "#train_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
012
0t4positive@DrabJay: excellent suggestion! Code changed. :-)
1t5neutralAny decent browser should protect against mali...
2t8negativeI swear - I don't put pseudo code I get told o...
3t9neutralI have attached below
4t13negativeWhen I refactor the following line: using Resh...
\n", + "
" + ], + "text/plain": [ + " 0 1 2\n", + "0 t4 positive @DrabJay: excellent suggestion! Code changed. :-)\n", + "1 t5 neutral Any decent browser should protect against mali...\n", + "2 t8 negative I swear - I don't put pseudo code I get told o...\n", + "3 t9 neutral I have attached below\n", + "4 t13 negative When I refactor the following line: using Resh..." + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#showing the first 5 lines of the test data\n", + "test_df=pd.read_csv(test_path, encoding='utf-16', sep=';', header=None).values\n", + "#test_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "task: text regression (supply class_names argument if this is supposed to be classification task)\n", + "downloading pretrained BERT model (uncased_L-12_H-768_A-12.zip)...\n", + "[██████████████████████████████████████████████████]\n", + "extracting pretrained BERT model...\n", + "done.\n", + "\n", + "cleanup downloaded zip...\n", + "done.\n", + "\n", + "preprocessing train...\n", + "language: en\n" + ] + }, + { + "data": { + "text/html": [ + "done." + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "preprocessing test...\n", + "language: en\n" + ] + }, + { + "data": { + "text/html": [ + "done." + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "(x_train, y_train), (x_test, y_test), preproc = text.texts_from_array(train_df[:,2], train_df[:,1], x_test=test_df[:,2], y_test=test_df[:,1], \n", + " maxlen=500, preprocess_mode='bert')\n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Is Multi-Label? False\n", + "maxlen is 500\n", + "done.\n" + ] + } + ], + "source": [ + "model = text.text_classifier('bert', (x_train, y_train) , preproc=preproc)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "learner = ktrain.get_learner(model, \n", + " train_data=(x_train, y_train), \n", + " val_data=(x_test, y_test), \n", + " batch_size=6)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "simulating training for different learning rates... this may take a few moments...\n", + "Train on 3097 samples\n", + "Epoch 1/1024\n", + "3097/3097 [==============================] - 432s 139ms/sample - loss: 1.0226 - accuracy: 0.5283\n", + "Epoch 2/1024\n", + "3097/3097 [==============================] - 410s 132ms/sample - loss: 0.8086 - accuracy: 0.6261\n", + "Epoch 3/1024\n", + " 174/3097 [>.............................] - ETA: 6:32 - loss: 1.9264 - accuracy: 0.4195\n", + "\n", + "done.\n", + "Please invoke the Learner.lr_plot() method to visually inspect the loss plot to help identify the maximal learning rate associated with falling loss.\n" + ] + } + ], + "source": [ + "learner.lr_find()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "learner.lr_plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "reduce_on_plateau automatically enabled at patience=2\n", + "\n", + "\n", + "begin training using triangular learning rate policy with max lr of 2e-05...\n", + "Train on 3097 samples, validate on 1326 samples\n", + "Epoch 1/1024\n", + "3097/3097 [==============================] - 448s 145ms/sample - loss: 0.5546 - accuracy: 0.7704 - val_loss: 0.3151 - val_accuracy: 0.8801\n", + "Epoch 2/1024\n", + "3097/3097 [==============================] - 444s 143ms/sample - loss: 0.2507 - accuracy: 0.9102 - val_loss: 0.3081 - val_accuracy: 0.8861\n", + "Epoch 3/1024\n", + "3097/3097 [==============================] - 443s 143ms/sample - loss: 0.1348 - accuracy: 0.9558 - val_loss: 0.3447 - val_accuracy: 0.8884\n", + "Epoch 4/1024\n", + "3096/3097 [============================>.] - ETA: 0s - loss: 0.0792 - accuracy: 0.9748\n", + "Epoch 00004: Reducing Max LR on Plateau: new max lr will be 1e-05 (if not early_stopping).\n", + "3097/3097 [==============================] - 446s 144ms/sample - loss: 0.0791 - accuracy: 0.9748 - val_loss: 0.4069 - val_accuracy: 0.8831\n", + "Epoch 5/1024\n", + "3097/3097 [==============================] - 445s 144ms/sample - loss: 0.0340 - accuracy: 0.9923 - val_loss: 0.4608 - val_accuracy: 0.8824\n", + "Epoch 6/1024\n", + "3096/3097 [============================>.] - ETA: 0s - loss: 0.0189 - accuracy: 0.9952\n", + "Epoch 00006: Reducing Max LR on Plateau: new max lr will be 5e-06 (if not early_stopping).\n", + "3097/3097 [==============================] - 447s 144ms/sample - loss: 0.0189 - accuracy: 0.9952 - val_loss: 0.5096 - val_accuracy: 0.8808\n", + "Epoch 7/1024\n", + "3096/3097 [============================>.] - ETA: 0s - loss: 0.0098 - accuracy: 0.9974Restoring model weights from the end of the best epoch.\n", + "3097/3097 [==============================] - 449s 145ms/sample - loss: 0.0098 - accuracy: 0.9974 - val_loss: 0.5414 - val_accuracy: 0.8839\n", + "Epoch 00007: early stopping\n", + "Weights from best epoch have been loaded into model.\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# 2e-5 is one of the LRs recommended by Google and is consistent with the plot above.\n", + "learner.autofit(2e-5, early_stopping=5)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "model.save(\"model.h5\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's make some predictions on new data." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "predictor = ktrain.get_predictor(learner.model, preproc)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "data=test_df[:,2].tolist()\n", + "label=test_df[:,1].tolist()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + " \n", + " 0.00% [0/1 00:00<00:00]\n", + "
\n", + " \n", + "\n", + "\n", + "
\n", + " \n", + " \n", + " 0.00% [0/1 00:00<00:00]\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "i=0\n", + "correct=0\n", + "wrong=0\n", + "total=len(data)\n", + "true_lab=[]\n", + "pred_lab=[]\n", + "text=[]\n", + "for dt in data:\n", + " result=predictor.predict(dt)\n", + " if not result== label[i]:\n", + " text.append(dt)\n", + " pred_lab.append(result)\n", + " true_lab.append(label[i])\n", + " wrong+=1\n", + " else:\n", + " correct+=1\n", + " \n", + " i+=1\n", + "\n", + "name_dict = {\n", + " 'Name': text,\n", + " 'Gold Label' : true_lab,\n", + " 'Predicted Label': pred_lab\n", + " }\n", + "\n", + "wrong_data= pd.DataFrame(name_dict)\n", + "\n", + "wrong_data.to_csv(\"wrong_results.csv\", sep=';')\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " negative 0.86 0.86 0.86 360\n", + " neutral 0.86 0.85 0.86 508\n", + " positive 0.93 0.94 0.94 458\n", + "\n", + " accuracy 0.89 1326\n", + " macro avg 0.88 0.89 0.88 1326\n", + "weighted avg 0.89 0.89 0.89 1326\n", + "\n" + ] + } + ], + "source": [ + "names = ['negative', 'neutral', 'positive']\n", + "y_pred = predictor.predict(data)\n", + "y_true= test_df[1]\n", + "print(classification_report(y_true, y_pred, target_names=names))" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Correct: 1175 / 1326 \n", + "Wrong: 151 / 1326\n" + ] + } + ], + "source": [ + "print(\"Correct: \", correct,\"/\",total,\"\\nWrong: \", wrong,\"/\",total)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/BERT Sentiment Analysis for SE/requirements.txt b/BERT Sentiment Analysis for SE/requirements.txt new file mode 100644 index 000000000..6ba7509b7 --- /dev/null +++ b/BERT Sentiment Analysis for SE/requirements.txt @@ -0,0 +1,712 @@ +absl-py==0.9.0 +adal==1.2.2 +affine==2.3.0 +aiohttp==3.6.2 +alabaster==0.7.12 +albumentations==0.4.5 +alembic==1.4.2 +allennlp==0.9.0 +altair==4.1.0 +anaconda-client==1.7.2 +anaconda-project==0.8.3 +annoy==1.16.3 +ansiwrap==0.8.4 +appdirs==1.4.3 +argh==0.26.2 +arrow==0.15.5 +arviz==0.7.0 +asn1crypto==1.3.0 +astor==0.8.1 +astroid==2.3.3 +astropy==4.0 +async-timeout==3.0.1 +atomicwrites==1.3.0 +attrs==19.3.0 +audioread==2.1.8 +autopep8==1.5 +Babel==2.8.0 +backcall==0.1.0 +backports.os==0.1.1 +backports.shutil-get-terminal-size==1.0.0 +backports.tempfile==1.0 +backports.weakref==1.0.post1 +Baker==1.3 +basemap==1.2.1 +bayesian-optimization==1.1.0 +bayespy==0.5.19 +bcolz==1.2.1 +beautifulsoup4==4.8.2 +binaryornot==0.4.4 +biopython==1.76 +bitarray==1.2.1 +bkcharts==0.2 +bleach==3.1.1 +blinker==1.4 +blis==0.4.1 +bokeh==2.0.1 +Boruta==0.3 +boto==2.49.0 +boto3==1.12.41 +botocore==1.15.41 +Bottleneck==1.3.2 +-e git+https://github.com/SohierDane/BigQuery_Helper@8615a7f6c1663e7f2d48aa2b32c2dbcb600a440f#egg=bq_helper +bqplot==0.12.6 +branca==0.4.0 +brewer2mpl==1.4.1 +cachetools==3.1.1 +cairocffi==1.1.0 +CairoSVG==2.4.2 +Cartopy==0.17.0 +catalogue==1.0.0 +catalyst==20.4.1 +catboost==0.22 +category-encoders==2.1.0 +certifi==2020.4.5.1 +cesium==0.9.12 +cffi==1.13.2 +cftime==1.1.2 +chainer==7.2.0 +chainer-chemistry==0.7.0 +chainercv==0.13.1 +chardet==3.0.4 +cleverhans==3.0.1 +Click==7.0 +click-plugins==1.1.1 +cliff==3.1.0 +cligj==0.5.0 +cloudpickle==1.3.0 +clyent==1.2.2 +cmaes==0.4.0 +cmd2==0.8.9 +cmdstanpy==0.4.0 +cmudict==0.4.4 +colorama==0.4.3 +colorcet==2.0.2 +colorlog==4.1.0 +colorlover==0.3.0 +conda==4.8.3 +conda-package-handling==1.6.0 +ConfigArgParse==1.2.1 +configparser==4.0.2 +confuse==1.0.0 +conllu==1.3.1 +contextily==1.0.0 +contextlib2==0.6.0.post1 +convertdate==2.2.0 +conx==3.7.10 +cookiecutter==1.7.0 +coverage==5.1 +crc32c==2.0 +cryptography==2.8 +cssselect2==0.3.0 +cufflinks==0.17.3 +cupy-cuda101==7.3.0 +CVXcanon==0.1.1 +cvxpy==1.0.31 +cycler==0.10.0 +cymem==2.0.3 +cysignals==1.10.2 +Cython==0.29.16 +cytoolz==0.10.1 +dask==2.14.0 +dask-glm==0.2.0 +dask-ml==1.3.0 +dask-xgboost==0.1.10 +datalab==1.1.5 +datashader==0.10.0 +datashape==0.5.2 +deap==1.3.1 +decorator==4.4.1 +deepdish==0.3.6 +defusedxml==0.6.0 +Delorean==1.0.0 +Deprecated==1.2.9 +deprecation==2.1.0 +descartes==1.1.0 +diff-match-patch==20181111 +dill==0.3.1.1 +dipy==1.1.1 +distributed==2.10.0 +dlib==19.19.0 +docker==4.2.0 +docker-pycreds==0.4.0 +docopt==0.6.2 +docutils==0.15.2 +earthengine-api==0.1.218 +ecos==2.0.7.post1 +editdistance==0.5.3 +eli5==0.10.1 +emoji==0.5.4 +en-core-web-lg==2.2.5 +en-core-web-sm==2.2.5 +entrypoints==0.3 +ephem==3.7.7.1 +essentia==2.1b6.dev184 +et-xmlfile==1.0.1 +fancyimpute==0.5.4 +fastai==1.0.60 +fastcache==1.1.0 +fastprogress==0.2.3 +fastrlock==0.4 +fasttext==0.9.1 +fbpca==1.0 +fbprophet==0.6 +feather-format==0.4.0 +featuretools==0.13.4 +filelock==3.0.10 +Fiona==1.8.13.post1 +fitter==1.2.1 +flake8==3.7.9 +flaky==3.6.1 +flashtext==2.7 +Flask==1.1.1 +Flask-Cors==3.0.8 +folium==0.10.1 +fsspec==0.6.2 +ftfy==5.7 +funcy==1.14 +fury==0.5.1 +future==0.18.2 +fuzzywuzzy==0.18.0 +gast==0.2.2 +gatspy==0.3 +gcsfs==0.6.0 +gensim==3.8.2 +geographiclib==1.50 +Geohash==1.0 +geojson==2.5.0 +geopandas==0.6.3 +geoplot==0.4.0 +geopy==1.21.0 +geoviews==1.6.1 +gevent==1.4.0 +ggplot==0.11.5 +gitdb2==3.0.2 +GitPython==3.0.8 +glob2==0.7 +gluoncv==0.6.0 +gluonnlp==0.9.1 +gmpy2==2.1.0b1 +google==2.0.3 +google-api-core==1.16.0 +google-api-python-client==1.7.11 +google-auth==1.11.2 +google-auth-httplib2==0.0.3 +google-auth-oauthlib==0.4.1 +google-cloud-automl==0.10.0 +google-cloud-bigquery==1.12.1 +google-cloud-bigtable==1.2.1 +google-cloud-core==1.3.0 +google-cloud-dataproc==0.6.1 +google-cloud-datastore==1.10.0 +google-cloud-firestore==1.6.2 +google-cloud-kms==1.3.0 +google-cloud-language==1.3.0 +google-cloud-logging==1.14.0 +google-cloud-monitoring==0.31.1 +google-cloud-pubsub==1.3.0 +google-cloud-scheduler==1.2.1 +google-cloud-spanner==1.14.0 +google-cloud-speech==1.3.2 +google-cloud-storage==1.26.0 +google-cloud-tasks==1.4.0 +google-cloud-translate==2.0.1 +google-cloud-videointelligence==1.13.0 +google-cloud-vision==0.42.0 +google-pasta==0.2.0 +google-resumable-media==0.5.0 +googleapis-common-protos==1.51.0 +gplearn==0.4.1 +gpxpy==1.4.0 +gql==0.2.0 +graphql-core==1.1 +graphviz==0.8.4 +greenlet==0.4.15 +grpc-google-iam-v1==0.12.3 +grpcio==1.28.1 +grpcio-gcp==0.2.2 +gym==0.17.1 +h2o==3.30.0.1 +h5py==2.10.0 +haversine==2.2.0 +heamy==0.0.7 +HeapDict==1.0.1 +hep-ml==0.6.1 +hmmlearn==0.2.3 +holidays==0.9.12 +holoviews==1.13.2 +hpsklearn==0.1.0 +html5lib==1.0.1 +htmlmin==0.1.12 +httplib2==0.17.0 +httplib2shim==0.0.3 +humanize==2.3.0 +hunspell==0.5.5 +husl==4.0.3 +hyperopt==0.2.3 +hypertools==0.6.2 +hypothesis==5.5.4 +ibis-framework==1.3.0 +idna==2.9 +imagecodecs==2020.2.18 +ImageHash==4.0 +imageio==2.8.0 +imagesize==1.2.0 +imbalanced-learn==0.6.2 +imgaug==0.2.6 +implicit==0.4.2 +importlib-metadata==1.5.0 +intervaltree==3.0.2 +ipykernel==5.1.1 +ipython==7.12.0 +ipython-genutils==0.2.0 +ipython-sql==0.3.9 +ipywidgets==7.5.1 +iso3166==1.0.1 +isort==4.3.21 +isoweek==1.3.3 +itsdangerous==1.1.0 +Janome==0.3.10 +jax==0.1.62 +jaxlib==0.1.41 +jdcal==1.4.1 +jedi==0.14.1 +jeepney==0.4.2 +jieba==0.42.1 +Jinja2==2.11.1 +jinja2-time==0.2.0 +jmespath==0.9.5 +joblib==0.14.1 +json5==0.9.0 +jsonnet==0.15.0 +jsonpickle==1.4 +jsonschema==3.2.0 +jupyter==1.0.0 +jupyter-aihub-deploy-extension==0.1 +jupyter-client==5.3.4 +jupyter-console==6.0.0 +jupyter-core==4.6.3 +jupyter-http-over-ws==0.0.7 +jupyterlab==1.2.6 +jupyterlab-git==0.9.0 +jupyterlab-server==1.0.6 +kaggle-environments==0.2.1 +Keras==2.3.1 +Keras-Applications==1.0.8 +Keras-Preprocessing==1.1.0 +keyring==21.1.0 +kiwisolver==1.1.0 +kmapper==1.2.0 +kmeans-smote==0.1.2 +kmodes==0.10.2 +knnimpute==0.1.0 +kubernetes==10.0.1 +langid==1.1.6 +Lasagne==0.2.dev1 +lazy-object-proxy==1.4.3 +learntools==0.3.4 +leven==1.0.4 +libarchive-c==2.9 +librosa==0.7.2 +lief==0.9.0 +lightfm==1.15 +lightgbm==2.3.1 +lime==0.2.0.0 +line-profiler==3.0.2 +llvmlite==0.31.0 +lml==0.0.9 +locket==0.2.0 +LunarCalendar==0.0.9 +lxml==4.5.0 +Mako==1.1.2 +mapclassify==2.2.0 +marisa-trie==0.7.5 +Markdown==3.2.1 +markovify==0.8.0 +MarkupSafe==1.1.1 +matplotlib==3.1.3 +matplotlib-venn==0.11.5 +mccabe==0.6.1 +memory-profiler==0.57.0 +mercantile==1.1.3 +missingno==0.4.2 +mistune==0.8.4 +mizani==0.6.0 +mkl-fft==1.1.0 +mkl-random==1.1.0 +mkl-service==2.3.0 +ml-metrics==0.1.4 +mlcrate==0.2.0 +mlens==0.2.3 +mlxtend==0.17.2 +mmh3==2.5.1 +mne==0.20.0 +mnist==0.2.2 +mock==3.0.5 +more-itertools==8.2.0 +mpld3==0.3 +mplleaflet==0.0.5 +mpmath==1.1.0 +msgpack==1.0.0 +msgpack-numpy==0.4.5 +multidict==4.7.5 +multipledispatch==0.6.0 +multiprocess==0.70.9 +munch==2.5.0 +murmurhash==1.0.2 +mxnet-cu101==1.6.0 +nb-conda==2.2.1 +nb-conda-kernels==2.2.2 +nbconvert==5.6.1 +nbdime==1.1.0 +nbformat==5.0.4 +nbpresent==3.0.2 +nervananeon==2.6.0 +netCDF4==1.5.3 +networkx==2.4 +nibabel==3.1.0 +nilearn==0.6.2 +nltk==3.2.4 +nnabla==1.7.0 +nnabla-ext-cuda101==1.7.0 +nolearn==0.6.1 +nose==1.3.7 +notebook==5.5.0 +notebook-executor==0.2 +numba==0.48.0 +numexpr==2.7.1 +numpy==1.18.1 +numpydoc==0.9.2 +nvidia-ml-py3==7.352.0 +oauth2client==4.1.3 +oauthlib==3.0.1 +odfpy==1.4.1 +olefile==0.46 +onnx==1.6.0 +opencv-python==4.2.0.34 +openpyxl==3.0.3 +openslide-python==1.1.1 +opt-einsum==3.2.1 +optuna==1.3.0 +orderedmultidict==1.0.1 +ortools==7.5.7466 +osmnx==0.10 +osqp==0.6.1 +overrides==2.8.0 +OWSLib==0.19.2 +packaging==20.1 +palettable==3.3.0 +pandas==1.0.1 +pandas-datareader==0.8.1 +pandas-profiling==2.4.0 +pandas-summary==0.0.7 +pandasql==0.7.3 +pandoc==1.0.2 +pandocfilters==1.4.2 +panel==0.9.5 +papermill==1.2.1 +param==1.9.3 +parsimonious==0.8.1 +parso==0.6.1 +partd==1.1.0 +path==13.1.0 +path.py==12.4.0 +pathlib2==2.3.5 +pathos==0.2.5 +pathtools==0.1.2 +patsy==0.5.1 +pbr==5.4.5 +pdf2image==1.12.1 +PDPbox==0.2.0+13.g73c6966 +pep8==1.7.1 +pexpect==4.8.0 +phik==0.9.8 +pickleshare==0.7.5 +Pillow==5.4.1 +pkginfo==1.5.0.1 +plac==0.9.6 +plotly==4.5.1 +plotly-express==0.4.1 +plotnine==0.4.0 +pluggy==0.13.0 +ply==3.11 +polyglot==16.7.4 +portalocker==1.7.0 +posix-ipc==1.0.4 +pox==0.2.7 +poyo==0.5.0 +ppca==0.0.4 +ppft==1.6.6.1 +preprocessing==0.1.13 +preshed==3.0.2 +prettytable==0.7.2 +prometheus-client==0.7.1 +promise==2.3 +prompt-toolkit==2.0.10 +pronouncing==0.2.0 +protobuf==3.11.3 +psutil==5.7.0 +ptyprocess==0.6.0 +pudb==2019.2 +py==1.8.1 +py-cpuinfo==5.0.0 +py-lz4framed==0.14.0 +py-spy==0.3.3 +py-stringmatching==0.4.1 +py-stringsimjoin==0.3.1 +pyahocorasick==1.4.0 +pyaml==20.4.0 +PyArabic==0.6.7 +pyarrow==0.16.0 +pyasn1==0.4.8 +pyasn1-modules==0.2.7 +PyAstronomy==0.14.0 +pybind11==2.5.0 +PyBrain==0.3 +pycairo==1.19.1 +pycodestyle==2.5.0 +pycosat==0.6.3 +pycountry==19.8.18 +pycparser==2.19 +pycrypto==2.6.1 +pyct==0.4.6 +pycuda==2019.1.2 +pycurl==7.43.0.5 +pydash==4.7.6 +pydicom==1.4.2 +pydocstyle==5.0.2 +pydot==1.4.1 +pyemd==0.5.1 +pyepsg==0.4.0 +pyexcel-io==0.5.20 +pyexcel-ods==0.5.6 +pyfasttext==0.4.6 +pyflakes==2.1.1 +pyglet==1.5.0 +Pygments==2.5.2 +PyJWT==1.7.1 +pykalman==0.9.5 +pykdtree==1.3.1 +pyLDAvis==2.1.2 +pylint==2.4.4 +pymc3==3.8 +PyMeeus==0.3.7 +pymongo==3.10.1 +Pympler==0.8 +pynvrtc==9.2 +pyocr==0.7.2 +pyodbc==4.0.28 +pyOpenSSL==19.1.0 +pypandoc==1.5 +pyparsing==2.4.6 +pyPdf==1.13 +pyperclip==1.8.0 +PyPrind==2.11.2 +pyproj==2.6.0 +PyQt5==5.12.3 +PyQt5-sip==4.19.18 +PyQtWebEngine==5.12.1 +pyrsistent==0.15.7 +PySAL==1.14.4.post1 +pyshp==2.1.0 +PySocks==1.7.1 +pystan==2.19.1.1 +pytagcloud==0.3.5 +pytesseract==0.3.4 +pytest==5.3.5 +pytest-arraydiff==0.3 +pytest-astropy==0.7.0 +pytest-astropy-header==0.1.2 +pytest-cov==2.8.1 +pytest-doctestplus==0.4.0 +pytest-mock==3.1.0 +pytest-openfiles==0.4.0 +pytest-pylint==0.14.1 +pytest-remotedata==0.3.1 +pytest-runner==5.2 +pytext-nlp==0.1.2 +python-dateutil==2.8.1 +python-editor==1.0.4 +python-igraph==0.8.0 +python-jsonrpc-server==0.3.4 +python-language-server==0.31.7 +python-Levenshtein==0.12.0 +python-louvain==0.14 +pytools==2020.1 +pytorch-ignite==0.3.0 +pytorch-pretrained-bert==0.6.2 +pytorch-transformers==1.1.0 +pytz==2019.3 +PyUpSet==0.1.1.post7 +pyviz-comms==0.7.4 +PyWavelets==1.1.1 +pyxdg==0.26 +PyYAML==5.3 +pyzmq==18.1.1 +QDarkStyle==2.8 +qgrid==1.3.1 +QtAwesome==0.7.0 +qtconsole==4.6.0 +QtPy==1.9.0 +randomgen==1.16.6 +rasterio==1.1.3 +ray==0.8.4 +redis==3.4.1 +regex==2020.4.4 +requests==2.23.0 +requests-oauthlib==1.2.0 +resampy==0.2.2 +responses==0.10.14 +retrying==1.3.3 +rgf-python==3.8.0 +rope==0.16.0 +rsa==4.0 +Rtree==0.8.3 +ruamel-yaml==0.15.80 +s2sphere==0.2.5 +s3fs==0.4.2 +s3transfer==0.3.3 +sacred==0.8.1 +sacremoses==0.0.41 +scattertext==0.0.2.63 +scikit-image==0.16.2 +scikit-learn==0.22.2.post1 +scikit-multilearn==0.2.0 +scikit-optimize==0.7.4 +scikit-plot==0.3.7 +scikit-surprise==1.1.0 +scipy==1.4.1 +scs==2.1.2 +seaborn==0.10.0 +SecretStorage==3.1.2 +Send2Trash==1.5.0 +sentencepiece==0.1.85 +sentry-sdk==0.14.3 +setuptools-git==1.2 +shap==0.35.0 +Shapely==1.7.0 +shortuuid==1.0.1 +simplegeneric==0.8.1 +SimpleITK==1.2.4 +simplejson==3.17.0 +singledispatch==3.4.0.3 +sip==4.19.20 +six==1.14.0 +sklearn==0.0 +sklearn-contrib-py-earth==0.1.0+1.gdde5f89 +sklearn-pandas==1.8.0 +smart-open==1.11.1 +smhasher==0.150.1 +smmap2==2.0.5 +snowballstemmer==2.0.0 +snuggs==1.4.7 +sortedcollections==1.1.2 +sortedcontainers==2.1.0 +SoundFile==0.10.3.post1 +soupsieve==1.9.4 +spacy==2.2.3 +spectral==0.20 +Sphinx==2.4.3 +sphinx-rtd-theme==0.2.4 +sphinxcontrib-applehelp==1.0.1 +sphinxcontrib-devhelp==1.0.1 +sphinxcontrib-htmlhelp==1.0.3 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.2 +sphinxcontrib-serializinghtml==1.1.3 +sphinxcontrib-websupport==1.1.2 +spyder==4.0.0 +spyder-kernels==1.8.1 +SQLAlchemy==1.3.13 +sqlparse==0.3.0 +squarify==0.4.3 +srsly==1.0.2 +statsmodels==0.11.1 +stemming==1.0.1 +stevedore==1.32.0 +stop-words==2018.7.23 +stopit==1.1.2 +subprocess32==3.5.4 +svgwrite==1.4 +sympy==1.5.1 +tables==3.6.1 +tabulate==0.8.7 +tblib==1.6.0 +tenacity==6.0.0 +tensorboard==2.1.1 +tensorboardX==2.0 +tensorflow==2.1.0 +tensorflow-estimator==2.1.0 +tensorflow-hub==0.8.0 +tensorflow-probability==0.9.0 +Tensorforce==0.5.4 +tensorpack==0.10 +termcolor==1.1.0 +terminado==0.8.3 +terminalplot==0.3.0 +testpath==0.4.4 +textblob==0.15.3 +texttable==1.6.2 +textwrap3==0.9.2 +Theano==1.0.4 +thinc==7.3.1 +tifffile==2020.2.16 +tinycss2==1.0.2 +tokenizers==0.5.2 +toolz==0.10.0 +torch==1.4.0 +torchaudio==0.4.0a0+719bcc7 +torchtext==0.5.0 +torchvision==0.5.0 +tornado==5.0.2 +TPOT==0.11.1 +tqdm==4.43.0 +traitlets==4.3.3 +traittypes==0.2.1 +transformers==2.8.0 +trueskill==0.4.5 +tsfresh==0.15.1 +typed-ast==1.4.1 +typing==3.6.4 +typing-extensions==3.7.4.2 +tzlocal==2.0.0 +ujson==1.35 +umap-learn==0.3.10 +unicodecsv==0.14.1 +Unidecode==1.1.1 +update-checker==0.16 +uritemplate==3.0.1 +urllib3==1.25.7 +urwid==2.1.0 +vecstack==0.4.0 +vowpalwabbit==8.8.1 +vtk==8.1.2 +Wand==0.5.3 +wandb==0.8.32 +wasabi==0.6.0 +watchdog==0.10.2 +wavio==0.0.4 +wcwidth==0.1.8 +webencodings==0.5.1 +websocket-client==0.57.0 +Werkzeug==1.0.0 +wfdb==2.2.1 +whichcraft==0.6.1 +widgetsnbextension==3.5.1 +word2number==1.1 +Wordbatch==1.4.5 +wordcloud==1.6.0 +wordsegment==1.3.1 +wrapt==1.11.2 +wurlitzer==2.0.0 +xarray==0.15.1 +xgboost==1.0.2 +xlrd==1.2.0 +XlsxWriter==1.2.8 +xlwt==1.3.0 +xvfbwrapper==0.2.9 +yapf==0.28.0 +yarl==1.4.2 +yellowbrick==1.1 +zict==1.0.0 +zipp==3.0.0 diff --git a/BERT Sentiment Analysis for SE/wrong_results.csv b/BERT Sentiment Analysis for SE/wrong_results.csv new file mode 100644 index 000000000..321d129d6 --- /dev/null +++ b/BERT Sentiment Analysis for SE/wrong_results.csv @@ -0,0 +1,152 @@ +;Name;Gold Label;Predicted Label +0;Is it possible (or desirable?!) to set up to behave more like ? For example, instead of writing why can't I just write Similarly, instead of why not just;negative;neutral +1;Didn't notice the horrid inline jQuery, remove it! Then open the browser console (F12) and check for errors.;negative;neutral +2;@augustss: with `ImpredicativeTypes` you can make monadic binds polymorphic as well (though it requires a heck lot of extremely ugly type annotations).;negative;neutral +3;OK, so what do you want me to do about that? Hint: how about *telling us* what your problem is?;negative;neutral +4;I'm curious, shouldn't the other question be marked as a duplicate of this one? This question is two years older and has a higher rated answer.;negative;neutral +5;Did it work? If it did you can also accept the answer by clicking the check mark beside it. It is a nice step to take =P;neutral;positive +6;That's right, I have no plans to replace the existing system, sidecar is an excellent analogy.;neutral;positive +7;This is a slightly tricky question. I am using NSDateFormatter on the iPhone but I wanted to only show a standard date without the years component. But retain the users locale formatting for their date. I could easily override the formatting using But now the date is in my in en-nz format eg 12:01PM Wednesday July 7. So I have totally killed the locale for any other users around the world. I would like to say. Give me the correct localized date for this users region but omit the years component. Since the date is being displayed as string, I am tempted to just fromat the date and then remove the year component by just cutting this out of the string.;neutral;negative +8;No buddy, You can't simply upgrade ZF1 to ZF2. In case you need you move to ZF2 be sure that ZF2 is not just an upper version of ZF1 but the whole Architecture is also changed.So, If you really need to move then 1. Firstly you will need to remove ZF1 library completely.2. Install ZF2 package.3. Now make changes in your code to work accordingly with ZF2 as most of the things will stop working once to move to ZF2.However, I would suggest don't migrate to ZF2 just for the sake of upgrading, migrate only if you dont have any other choice. As this is a very painful task.have a good luck.;neutral;negative +9;Why all the down votes?;negative;neutral +10;If you are on 11g you are in Luck :-) you can Use SELECT FOR UPDATE SKIP LOCKED in the Cursor - then you are guaranteed that two threads will never get the same row on a fetch!The RIGHT WAY to do this in Oracle would be Advanced Queueing - since this will solve ALL YOUR PROBLEMS, provides synchronization und parallel execution and other benefits...Before Oracle 11 and without Advanced Queuing (if you really want to code it yourself...) You can do it like this:(The bits marked with autonomous transaction have to be called in a separate method as an autonomous transaction. If the Update returns 0 Rows it can either be because the table is empty, or because two threads accessed the same row. - So we need a separate ending condition counting available rows.;positive;neutral +11;In my mental model of authentication, a user should be distinct from the way they log in. So for example, a User could have an associated EmailLogin (with an email/password), or they could have many (or none). Similarly they could have 0..* associated OpenIDLogin credentials. Are there any existing authentication libraries for Rails which use this method? Alternatively, is this a really terrible idea?;neutral;negative +12;Then you should be more specified in asking the question. You confused me..;negative;neutral +13;A simple Google search would suffice for this question. All are excellent resources (and the top three Google links!). Essentially, there's a new API which allows JS to request fullscreen access. That's about it.;neutral;positive +14;I had a memory crash on UIGraphicsGetImageFromCurrentImageContext() ... if you're creating and releasing a lot of them, you should wrap them in a fresh AutoReleasePool for each iteration. Even allowing the NSRunLoop to tick WAS NOT ENOUGH for Apple/iOS to do housekeeping on garbage lying around from this. e.g.;negative;neutral +15;"I was too pithy. I should have said, ""The Loudness Wars Killed Music.""";neutral;negative +16;The answer was devastatingly simple in this case. For some reason windows uses localhost as opposed to 0.0.0.0. So although it says standing watch at 0.0.0.0:4567 it is actually standing watch at localhost:4567 . You should be able to navigate to this page and see your middleman build.;neutral;negative +17;yeah: hopeless!;neutral;negative +18;Come on, you are worrying about efficiency while your first line of code is incorrect!;negative;neutral +19;EDIT: Also you should avoid using it can make debugging extremely frustrating.;negative;neutral +20;You must redraw your background with each change in your line (that��s the canvas way) Don��t worry, canvas is very fast at redrawing! Here is code and a Fiddle:;positive;neutral +21;Your variables are pointing at the same object. I'd be worried if they weren't equal!;neutral;negative +22;I think that's absolutely terrible practice. First of all you do not need to make the trip to the server to hide and show controls, unless you need new data. Second, any decent javascript framework will allow you to hide show controls based on the control's id, class name, or whatever css selector. Moreover using a javascript post/get to a generic handler will give you the data that you need without the postback. I'd suggest using JQuery, or some other alternative.;neutral;negative +23;Typically you would handle that as a POST (not a GET), and read the xml from the request-stream (or there are helpers to let you do this). Otherwise URL encoding and length restrictions are going to make this extremely painful.;neutral;negative +24;How about any ugly abuse of the builtin command ?;negative;neutral +25;I built an xml-rpc server in Python using SimpleXMLRPCServer, according to the example in the Python documentation. I'm calling it from a Python client on the same machine. The body of the server function executes very fast on its own. But I find that xmlrpc client performance is excruciatingly slow, taking one second per call. (Using xmlrpclib.) A speed-up technique I found on the web () didn't help. My connect URI is: I'm running Python 2.7 x64 on Windows 7, but it works the same for 32-bit Python 2.7.;negative;neutral +26;Tested/cross-browser: If there is no submit button, the form will degrade miserably if javascript is not available!;negative;neutral +27;This worked for me.;positive;neutral +28;Maybe this will be of some help -;positive;neutral +29;While we're at it, there is no such thing as Unicode. Well, there is, but it does not concern itself with earthly matters like files. There are numerous encodings which bridge that gap, but you don't appear to be aware of that or the difference this makes. See also: [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)](http://www.joelonsoftware.com/articles/Unicode.html));negative;neutral +30;Look into these links. They may help.;positive;neutral +31;"I had the problem that white was the ""Overscroll"" color, not actually the fading edge. try this (assuming you want a fading edge, but not the horrid white glare when you hit the ends! (otherwise set requires fading edge to none)):";negative;neutral +32;Take a look at and be extremely paranoid about user inputs.;positive;neutral +33;I wouldn't worry about that in pure Flash. I don't believe that is the mental model the Flash Engineers used (Flex, absolutely, worry).;negative;neutral +34;I have recently found out that anything Swing(NetBeans, IDEA) is excruciatingly slow to paint the UI over Remote Desktop(RDP). Can you guys give me any suggestion for something that will work properly over RDP?;negative;neutral +35;How come this is considered programming related?;negative;neutral +36;"I am using Hibernate for my persistence layer. And if I send a web request which asks for some database data to be displayed on the webpage For the first one or two times, the server responds rightly and data are retrieved and displayed. However, when the same request is sent repeatedly ( Just by refreshing the browser by hand to resend the request), Hibernate will not respond anything. And it is choked there! Also the log message stays at the ""opening hibernate session"" line(shown by SessionFactoryUtils class in Spring) Any solution??";neutral;negative +37;In Bash, you use parameter expansion: In your case, say . No need to go overboard and cry for regexes at the slightest provocation -- Bash has plenty of power!;negative;neutral +38;There are really excellent tools for handling this sort of task in .NET without having to resort to the regex hammer. This will also be more reliable than a regular expression based solution. I'd suggest that you take a look at .;neutral;positive +39;In addition to firebug (which should be your first port of call), the will also tell you where a given style is sourced from, just in case IE - shock, horror - should be different.;negative;neutral +40;"Note that the given answers ""only"" handles making multiple variables of the same type. If, for some bizarre reason, you would need to do multiple types, this is valid (though awful):";neutral;negative +41;Nope, I don't think such a magic function exists. One workaround for this would be to put your functions into a static class, and add a magic method to that class (> PHP 5.3 only, I'm afraid): For PHP < 5.3, you could do the same thing, but you would have to instantiate an object and use the magic method.;neutral;negative +42;So I came up with what is undoubtedly an extremely ugly solution: I took the Response JS data attributes out of the body tag, and used the Response.create method instead. Then someone suggested I make the plugin calls a function, then call the function after creating the Response data attributes. I have no idea why it works, but it does.;neutral;negative +43;I want a text file containing links to the Wikipedia articles listed , one link per line. I could do it manually but that would be very painful. How can I automate this task?;neutral;negative +44;For those, who use ShinobiCharts.framework: creating a category on Shinobi classes causes such error. As a workaround, you can replace categories with inheritance (this may be very painful).;neutral;negative +45;I have updated to Genymotion 2.0 and downloaded/deployed the new 4.3 images (Galaxy Nexus and 10.1 Tablet) upon installing the appropriate GApps package get a devastating error upon launching a development app with the following stack trace making the device restart.;neutral;negative +46;This just saved me a lot of grief!;positive;negative +47;I am really terrible at RegEx, In the code below I only want the actual numbers between and How can I achieve this?;neutral;negative +48;I am not sure how to fix this:;neutral;negative +49;I try and but it doesn't work.;neutral;negative +50;i would reccomend you rewrite the bad code. Even if its really painful.;neutral;negative +51;Based mostly on , but also , and my own experience, I don't think it's possible without a lot of ugliness, pain or without converting your LINQ to SQL code generation over to (not appealing, IMO).;negative;neutral +52;mechanize ended up giving me the most functionality...thx;positive;neutral +53;Is this visual studio specific or all c++ projects behave this way? Why??;negative;neutral +54;fails horribly for, e.g., `domain = 'http://www.google.co.uk/'`;negative;neutral +55;Here is an answer to a similar question: It's a complex workaround, but looks working pretty fine!;positive;neutral +56;David: +1. For a second I thought they may have been passing a `Furious Neanderthal`, or something, to Word!;positive;negative +57;I think the first approach is OK, but you have to be sure to always have branch B updated with the new changes introduced in branch A. Otherwise if you don't keep them synchronized, these branches will diverge and merging them back on trunk will be a really pain. SVN merge's are ok if you do them early and often.;neutral;negative +58;There's no such thing. Any such log would have to be programmed into the database, so no worries, you don't have to disable it since it doesn't exist by default!;positive;neutral +59;"I don't think you want this - if I'm typing a document into Word and I hit K, I'm going to be very angry when your application pops up instead of a ""k"" appearing in my document. Windows allows you to assign shortcut keys to an icon on the desktop, but it limits them to the function keys or to combinations containing both Alt and Ctrl. Right-click on a desktop icon and go to Properties, and look for the field marked ""Shortcut key"".";neutral;negative +60;This isn't really pythonic so much as tortured, but here's a short version (with meaningless 1-character variable names, no less!);negative;neutral +61;+1 for this question - I have the same issue.;positive;neutral +62;Okay, so given the overwhelmingly negative response, does anybody think db image storage is _ever_ justified?;negative;neutral +63;I agree, I would use two functions. Basically, you have two different use cases, so it makes sense to have two different implementations. I find that the more C++ code I write, the fewer parameter defaults I have - I wouldn't really shed any tears if the feature was deprecated, though I would have to re-write a shed load of old code!;negative;neutral +64;I have a that has three views per cell, with three cell displaying on the view at one time (for a total of nine views). Think of it as a bookshelf. Sometimes I can have as many as 500 books. I've added shadow to the with code that is this: When I add the shadow code, as seen above, scrolling performance is just totally killed and becomes choppy. Each image has a different so the shadow has to be created for each item as it scrolls. Anyone have any tips on how to add shadows to my images on a without having this issue?;negative;neutral +65;Beaaaaaaautiful!;positive;negative +66;...Sometimes this piece of code [..] returns the same number (and sometimes it works fine)... So it works randomly??? :) :) :) Ok, ok, downvote me now!!;neutral;positive +67;Hopefully this will provide some ideas as to how to adapt a timer based approach for your needs: If your needs are more sophisticated then a TThread based approach may be more appropriate. But whatever you do, do NOT resort to Application.ProcessMessages it will only cause you grief !;positive;negative +68;@Johannes: Don't bother, he's much too stupid and heinous to be worth helping (see his comments on my answer, it's a model of how to get help).;negative;neutral +69;"I've heard that unit testing is ""totally awesome"", ""really cool"" and ""all manner of good things"" but 70% or more of my files involve database access (some read and some write) and I'm not sure how to write a unit test for these files. I'm using PHP and Python but I think it's a question that applies to most/all languages that use database access.";neutral;positive +70;You didn't mention the language, but for Java we've loved . For C/C++, getopt.;positive;neutral +71;Tom - I did the Java thing from 1996 until 2002. My official reason for leaving Actuate? Microsoft understood the need for basic things like enumerated types (since added to Java but it took way too long) and excellent Windows UI support and Actuate had no interest in building .NET products.;positive;neutral +72;I can't seem to find the answer to this anywhere... I have a function that needs to set the bg color of two tables. Only the first table in the function is being affected. Is only one for loop allowed in a function? ...or is the 1st for loop maybe never exiting? I can pretty much work around this by creating multiple functions but I really want to understand why this behaves the way it does! Thanks! Here is my simplified code:;neutral;positive +73;Events firing are delegate invocations, which are a But dealing with interfaces for subscriber/publisher/observer/observable scenario is more painful that using events.;neutral;negative +74;I'm not sure why this is marked down. AutoHotkey is an excellent solution when you need to do something that you just can't do using an existing API. It has many safeguards that can be used to ensure that the correct program is targeted. There are many possibilities. The answer that is marked as an answer, isn't an answer. It just an obvious statement which is the reason the question was asked in the first place. I would suggest anyone marking down this answer should first look into AutoHotkey and learn what it can do. It should be built into windows.;neutral;positive +75;I have found Html Helpers extremely useful to simplify view pages code. Apart from the ones included in the latest release of Asp.Net Mvc which one do you use? How much you can reuse them in different projects and are they linked only to html generation or did you put some custom logic inside?;positive;neutral +76;Well, keep in mind that (in theory) you have the original code to help, as well as the text of the log messages. The only thing that should be obfuscated would be the class and member names. In addition, many tools (Dotfuscator is one) create a map file to tell you what obfuscated construct name maps back to which original name - this can make it a pain to figure out exactly where the log messages come from, but nowhere near impossible.;neutral;negative +77;Got a spite downvote, it's still a valid question.;negative;neutral +78;@NoBugs a NullPointerException can be thrown for 1000 reasons. Are you sure you load the .wav correctly? Are you sure it is in the right path? IIRC, the .wav file should be inside the compiled jar. Although I might be terribly wrong.;negative;neutral +79;I'm working with an Access database and I need to concatenate different related rows into 1 row. I found a solution and used it with great success. However I need to add extra conditions to it, it should only be done if certain other columns are equal too. For example: 1 X Alpha 2 Y Beta 1 X Gamma 1 Z Delta should become 1 X Alpha,Gamma 1 Z Delta 2 Y Beta Does anyone know to do this, especially for a newbie like me?;neutral;positive +80;I have a need to explore VOIP integration into a .Net application. It would be incredibly helpful if the toolset was usable via ASP.Net (version 2.0 or higher), and provided the developer the option to allow interaction on the client either embedded within the web browser or external to the client web browser. It should be compatible at a minimum with Internet Explorer, but would be better if browser independence were an option.;neutral;positive +81;If you want to explore the full (terrifying) extent of lambda style functions in PHP, see:;neutral;negative +82;"Assuming I have only the class name of a generic as a string in the form of ""MyCustomGenericCollection(of MyCustomObjectClass)"" and don't know the assembly it comes from, what is the easiest way to create an instance of that object? If it helps, I know that the class implements IMyCustomInterface and is from an assembly loaded into the current AppDomain. Markus Olsson gave an excellent example , but I don't see how to apply it to generics.";neutral;positive +83;What tools are free tools are available for testing WebServices that are behind NTLM2 authentication. SoapUI Is Excellent tool with all functionality that I need, however, it doesn't support NTLMv2. If someone has a way of making that work, please provide solution.;neutral;positive +84;I'm looking for a reliable, implementation-independent way to clone an entire Document. The Javadocs specifically say that calling cloneNode on a Document is implementation-specific. I've tried passing the Document through a no-op Transformer, but the resulting Node has no owner Document. I could create a new Document and import the nodes from the old one, but I'm afraid there might be bits of Document metadata that get lost. Same thing with writing the Document to a string and parsing it back in. Any ideas? By the way, I'm stuck at Java 1.4.2, for reasons beyond my control.;neutral;negative +85;Side note: some people hate that menu. Just take a look at all the Greasemonkey scripts that get rid of it.;neutral;negative +86;Here, I see `BAADF00D` (bad food), `BEEFCACE` (beef cake), `BAADCAB1E` (bad cable), `BADCAFE` (bad cafe), and `DEADDEAD` (dead dead). Is this intentional?;neutral;negative +87;+1 for actually *answering* the question.;neutral;positive +88;This whole DB is almost entirely read only so I'm not too worried about it changing.;positive;neutral +89;Perhaps pipe the users through Google's Web Transcoder - http://google.com/gwt/n then you don't have to worry about the WML conversion, as google will translate your page into WML.;positive;neutral +90;I understand its not a desirable circumstance, however if I NEEDED to have some kind of HTML within JSON tags, e.g.: is this possible to do in Python without requiring to to be escaped beforehand? It will be a string initially so I was thinking about writing a regular expression to attempt to match and escape these prior to processing, but I just want to make sure there isn't an easier way.;negative;neutral +91;By the way, as a side note, you should be using `using(Stream s = ...)` statement instead of manually writing a try {} finally {} block which might be error prone and also a pain to write.;negative;neutral +92;"This isn't worthy of an ""answer"", but I thought I'd mention: many of the interfaces I've really enjoyed have been minimalistic -- there's almost nothing for me to see. Like QuickSilver for OS X.";negative;neutral +93;I see that over on this question there is a request to say how to do something using LINQ to see if a property matches in a collection. However, is this the fastest reasonable process by which to do this? I will be deploying something that requires a certain amount of resource management, and I want the application to be as responsive as can be, without making the code terribly hard to decipher when someone else, or myself come back to it later.;negative;neutral +94;I think the question is valid. I agree with the other responses, but it doesn't mean it's a terrible question. I've only ever had to use a Safari CSS hack once as a temporary solution and later got rid of it. I agree that you shouldn't have to target just Safari, but no harm in knowing how to do it. FYI, this hack only targets Safari 3, and also targets Opera 9.;positive;neutral +95;But they fixed it, and you don't have to worry about it as long as you set the correct doctype, to make IE not be in quirks mode.;positive;neutral +96;@Dutchie432: you described exactly what I was looking for... I'm also using the Pulsate effect. I had a `.stop()` in place but it didn't work. Now it works as expected. What a comment can do? It's also an answer... :D The search outsourcing was hilarious :o);positive;negative +97;The named scopes already proposed are pretty fine. The clasic way to do it would be:;positive;neutral +98;Perhaps I am missing something, but I am just learning javascript. My understanding of Single Origin Policy is that Google Analytics should not be able to send data back to Google. How is it able to transmit send data to Google without violating the policy?;negative;neutral +99;None of the above is exactly what I was looking for, so I wrote one. super simple to use %B in the printf!;positive;neutral +100;You can easily define a comparator for a one-level , so that lookup becomes way less cumbersome. There is no reason of being afraid of that. The comparator defines an ordering of the _Key template argument of the map. It can then also be used for the multimap and set collections. An example:;positive;neutral +101;"""malicious users"" don't just exist ""out there"" on the internet - most of them have jobs in corporations and you are probably working with a couple of them right now - there is a reason that all user accounts and physical access are the first things you cut off when you fire someone";negative;neutral +102;I'm trying to delete several working copy directories, but I get an Access Denied on all the SVN files, running as admin or normal user. I've killed the Tortoise cache process, and cannot figure what is wrong. Any suggestions?;negative;neutral +103;How do I stop a browser refresh from happening when a flash object has focus inside a pop up window? Yes, I abhor pop up windows too. Yet we have a flash questionnaire that is being wrecked from users who use refresh. I also already have js in place that effectively blocks refresh, UNTIL the flash gets focus and the user presses refresh. I have access to the Flash through our Flash developer, but he is uncertain of how to do this. The closest we could come up with was to use the fscommand trapallkeys, yet it does not appear to be working.;negative;neutral +104;Since I am completely useless at regex and this has been bugging me for the past half an hour, I think I'll post this up here as it's probably quite simple. In PHP I need to extract what's between the tags example:;negative;neutral +105;I have been abusing the Dictionary class in .NET 2.0 as a set:;neutral;negative +106;"such a strong argument without any ""reference"", is completely useless because just opinionated.";negative;neutral +107;I found a number of people asking the same question starting around 2005, but here is the first google result - also discusses silverlight. As far as I can tell, however, the only thing you would need to worry about would be setting up the mime types and providing access to the files.;negative;neutral +108;So for my text parsing in C# , I got directed at YAML. I'm hitting a wall with this library I was recommended, so this is a quickie. And so on. Is that valid?;negative;neutral +109;While this could work when I'm developing and debugging the solution, I'm afraid it wouldn't work once the solution is deployed and a user needs to change the settings.;neutral;negative +110;Also, make sure the mouse is using VMware drivers. Sometimes it reverts to general PS/2 drivers, which can cause very irritating lag.;neutral;negative +111;"-1 This is due to omitting ""var"" before ""a"" making it global and is unrelated to the question.";negative;neutral +112;If the files were never committed and they're no longer on the hard drive, then I'm afraid they're probably gone, unless your user has manual backups, or some other recovery/undeletion strategy works out.;neutral;negative +113;I hope none of my bugs end up in wikipedia!;neutral;positive +114;I too am using ideas from Rob's pattern and for now am updating like Pure.Krome. But i think concurrency is too vital to ignore and should be a habit of any enterprise application developer. I'm ignoring it for now, but it will go in my later iterations. I would really love to see how your approach turns out David.;neutral;positive +115;In vc++6.0 MFC Application Project , I will not get the compile Error , but when i run the project i will get the error Debug Assertion Failed! program:project.exe File:winocc.cpp Line:345 For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts. (Press Retry to debug the application) what Error it is and why this type of error occurs, how to debug this error, plz help any body,;negative;neutral +116;I want to be able to grab content from web pages, especially the tags and the content within them. I have tried XQuery and XPath but they don't seem to work for malformed XHTML and REGEX is just a pain. Is there a better solution. Ideally I would like to be able to ask for all the links and get back an array of URLs, or ask for the text of the links and get back an array of Strings with the text of the links, or ask for all the bold text etc.;neutral;negative +117;"You hate the price. Fair enough. ;)";neutral;positive +118;Galileo came out the other day, and even though plugins under Eclipse are, IMO, just a little bit easier to deal with than , it would still be really awesome if there was a simple way for me to upgrade to the new version (and take my plugins with me). Any tips?;neutral;positive +119;You really should look at an NIO framework like or . I've used MINA with great success in an enterprise chat server. It is also used in the chat server. Grizzly is used in Sun's JavaEE implementation.;neutral;positive +120;"This is recognized around our office as the ""Ah, crap! I forgot about that."" burndown:";neutral;negative +121;I'm new to Flash but want to create a nice video for a product. It takes a long time to make a nice looking presentation , and I'm hoping for a jump start. Are there any good templates which are free on the internet where I can quickly change the text in ,for example, to make my video? I've tried looking in google, and there are too many websites, many of which look gimmicky. Any recommendations? (A video like this one - - would be amazing!);neutral;positive +122;"@MrChrister : The actualOrderNumber is relied on by multiple legacy app. Changing it would be extremely problematic. The end-user-visible order number is also used in several apps; adding a new field is do-able but hard. An obscuring ""format"" outside the persistence layer is TSTTCPW (I think).";neutral;negative +123;"+1 for ""don't believe into the myths that there are a lot of issues with MS Access""";positive;neutral +124;I have a basic app written with ATL, using the wizard with VS2008. I have a treeview in the left side of the app. I see how to (painfully) add tree items. Question is how do I show a menu when the mouse is right clicked? How do I trap any click events on each item that could be selected?;negative;neutral +125;Why the down-votes and sniping? It's not a particularly well-asked question but it's certainly valid and by definition programming related. (it's pretty hard to do anything with Django without programming as it's a web programming framework!);negative;neutral +126;ctypes is in the python standard library, swig and boost are not. Swig and boost rely on extension modules and are therefore tied to python minor versions which indepentent shared objects are not. building a swig or boost wrappers can be a pain, ctypes makes no build requirements.;neutral;negative +127;Could you add some details about the error you get? Nothing is jumping out at me as horribly wrong.;neutral;negative +128;"Seems like a duplicate question. Please see excellent answer for ""[Should Usings be inside or outside the namespace][1]"" [1]: http://stackoverflow.com/questions/125319/should-usings-be-inside-or-outside-the-namespace";neutral;positive +129;This fails miserably when min is INT_MIN and max is INT_MAX. Then max - min + 1 equals 0, resulting in division by zero.;negative;neutral +130;And it fits with MVVM. +1;positive;neutral +131;StyleCop has rules that seem to differ from MS's prior style guides. For example, StyleCop hates m_ and _ for prefixs to private members. Also, the VS default code generation violates StyleCop by putting using statements outside the namespace. *sigh*;negative;neutral +132;"Obligatory I Am Not A Lawyer. Are you violating the legal clauses of the GPL? Probably not. ATI and nVidia do this sort of thing with their graphics drivers for Linux. However, it's important to note that Linux is GPLv2; this may have changed with GPLv3. Are you violating the spirit of the GPL? Yes, and judging from the way your question was written, you already knew this.";negative;neutral +133;files starting with a dot can be a pain to windows based tools...;neutral;negative +134;For an excellent event manager class, check Danny Miller's: http://k2xl.com/wordpress/2008/07/02/as3-eventmanager-class-removealllisteners/;positive;neutral +135;goooooooooooooood!;positive;negative +136;You also might want to check out Uche Ogbuji's excellent XML Data Binding Library, Amara: (Documentation here: ) The cool thing about Amara is that it turns an XML document in to a Python object, so you can just do stuff like: (which creates a Record element that contains Name and Value elements (which in turn contain the values of the name and value variables)).;neutral;positive +137;"I'm working on a package which includes rescaling of images in PHP. For image rescaling, PHP has the GD and ImageMagick libraries. Are those likely to be part of a given client's PHP install already? Is there a ""default"" install of PHP, for that matter? By default, are either GD or ImageMagick included? If neither is installed, should I have some sort of horrible fallback position of reading, rescaling, and saving GIFs, JPGs, and PNGs, or is it simple to add GD or ImageMagick to an existing install?";neutral;negative +138;My experience - If you know the requirements of a project well and if they can be easily achieved with standard ssis components with a minimum of scripting, then SSIS might be the way to go. Otherwise, its a pain.;neutral;negative +139;"I agree, your exemple is terrible ;)";positive;negative +140;"is excellent for scripts; is standard for classes. As Ben says, think of it as ""Object"" -- but it is much cooler in that it does not constrain you to the Object methods. This has neat implications with respect to imports. e.g. In this snippet I have to import FileChannel e.g. But here I can just 'wing it' as long as everything is on the classpath";neutral;positive +141;How awesome would it be if the Delphi IDE would put code in 2 formats on the clipboard, so that code that is copied and pasted in e-mails or word-documents has proper highlighting instead of plain text?!;negative;positive +142;"Basically, the doctype determines how crazy IE is going to be. If you don't set it to XHTML, or ""strict"" you'll be living in a world of hurt when it comes to IE (even if you set it, you'll still be hating on IE, but it does make it a lot better).";negative;neutral +143;@Pax, from my personal experience, somehow I always get faster and more reliable results when I'm using tables. But every time I did that, I feel guilty.;neutral;negative +144;"I agree. 1 ""interface"" to worry about and flexible to add others if necessary.";positive;neutral +145;Curious that none of them considered Stopwatch yet? Precise and bigger than , not involving OS horrific perf counters, WMI or native calls, and well really simple:;neutral;positive +146;This reply is incomplete: we currently have an app that is leaking permgen memory and the number of loaded classes is absolutely constant. Both facts can be seen by using JConsole. We suffer from the same problem as the original poster in that we have no way to analyze the permgen in detail.;negative;neutral +147;The other issue the number of variations in everyone's SIP implementation. Solving all of the integration issues would quickly eat up all your time. At $699 for OCS that just doesn't make much sense.;negative;neutral +148;No worries, just a tip for future reference.;neutral;positive +149;i've got the following code which runs a bat file. the bat file then runs some .exe .. which does some stuff. The stuff takes aroun 5-10 seconds. What i'm trying to do is leave the command window open, even after the process terminates. Is there any way to do this? Otherwise, can i get all the output of that window going to my debugger instead, so i don't need to worry about this window remaining? cheers.;neutral;positive +150;@yaauie - sure, I could have put a `raise 'oh no' if methods.include?(:after_initialize)` before the monkeypatch, but that would make the example harder to understand... It's so easy to get caught up in detailing all the edge cases that the actual lesson here (just patch a base method in) would get lost in the noise.;neutral;negative