diff --git a/.gitignore b/.gitignore index 72364f9..9fca621 100644 --- a/.gitignore +++ b/.gitignore @@ -87,3 +87,5 @@ ENV/ # Rope project settings .ropeproject + +data/ diff --git a/README.md b/README.md index e290157..804830b 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,28 @@ # KaggleQuoraQuestionSimilarity Github repo for kaggle quora question similarity problem + +# Data +The data size for this compoetition is too large to host in GitHub directly. +All notebooks in this repo expect the following data to be available on your machine, in the following directories: + +data/ + * sample_submission.csv - from the [competition website](https://www.kaggle.com/c/quora-question-pairs/data) + * test.csv - from the [competition website](https://www.kaggle.com/c/quora-question-pairs/data) + * train.csv - from the [competition website](https://www.kaggle.com/c/quora-question-pairs/data) + * wikitext-103/ - from the [wikitext dataset](https://metamind.io/research/the-wikitext-long-term-dependency-language-modeling-dataset/) + * wiki.test.tokens + * wiki.valid.tokens + * wiki.train.tokens + * wikitext-2/ - from the [wikitext dataset](https://metamind.io/research/the-wikitext-long-term-dependency-language-modeling-dataset/) + * wiki.test.tokens + * wiki.train.tokens + * wiki.valid.tokens + * wikitext-103-raw/ - from the [wikitext dataset](https://metamind.io/research/the-wikitext-long-term-dependency-language-modeling-dataset/) + * wiki.test.raw + * wiki.valid.raw + * wiki.train.raw + * wikitext-2-raw/ - from the [wikitext dataset](https://metamind.io/research/the-wikitext-long-term-dependency-language-modeling-dataset/) + * wiki.test.raw + * wiki.train.raw + * wiki.valid.raw + diff --git a/notebooks/Initial Analysis.ipynb b/notebooks/Initial Analysis.ipynb new file mode 100644 index 0000000..c319da3 --- /dev/null +++ b/notebooks/Initial Analysis.ipynb @@ -0,0 +1,677 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Quora Question Similarity Challenge Initial Analysis\n", + "\n", + "The goal of this question is to predict duplicate question-answer pairs. \n", + "\n", + "The input to the model are two free-text fields, presumably representing two questions.\n", + "The ouptut from the model is a binary label, which is 1 if the questions are the same, 0 otherwise. \n", + "\n", + "The objective of this notebook is to import the training data and get a feel for the dataset. We'll try to use statistics to gain an intuitive feel for this dataset, and identify the challenges that our model will need to overcome.\n", + "\n", + "First, we'll import the necessary libraries and look at the first few rows in the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "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", + "
idqid1qid2question1question2is_duplicate
0012What is the step by step guide to invest in sh...What is the step by step guide to invest in sh...0
1134What is the story of Kohinoor (Koh-i-Noor) Dia...What would happen if the Indian government sto...0
\n", + "
" + ], + "text/plain": [ + " id qid1 qid2 question1 \\\n", + "0 0 1 2 What is the step by step guide to invest in sh... \n", + "1 1 3 4 What is the story of Kohinoor (Koh-i-Noor) Dia... \n", + "\n", + " question2 is_duplicate \n", + "0 What is the step by step guide to invest in sh... 0 \n", + "1 What would happen if the Indian government sto... 0 " + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%matplotlib inline\n", + "import numpy as np\n", + "import pandas as pd\n", + "from matplotlib import pyplot as plt\n", + "\n", + "dataset = pd.read_csv('../data/train.csv')\n", + "dataset.head(2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, we will take a look at the size of data, and the distribution of the labels." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total number of question pairs: 404290.\n", + "Number of non-duplicate question pairs: 255027.\n", + "Number of duplicate question pairs: 149263.\n" + ] + } + ], + "source": [ + "label_count = dataset['is_duplicate'].value_counts()\n", + "print('Total number of question pairs: {0}.'.format(len(dataset['is_duplicate'])))\n", + "print('Number of non-duplicate question pairs: {0}.'.format(label_count[0]))\n", + "print('Number of duplicate question pairs: {0}.'.format(label_count[1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So, we have roughly 400k question pairs, and about 37% of them are duplicates. \n", + "Although the are 400k question pairs, the questions themselves might not be distinct. Fortunately, the dataset gives us QuestionId, so we can count how many distinct questions there are. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of distinct questions: 347345\n" + ] + } + ], + "source": [ + "distinct_question_ids = set(list(dataset['qid1'] + list(dataset['qid2'])))\n", + "print('Number of distinct questions: {0}'.format(len(distinct_question_ids)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So, some questions are repeated. Let's see which ones appear the most often:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "question_mention_count = {}\n", + "actual_questions = {}\n", + "for index, row in dataset.iterrows():\n", + " if row['qid1'] not in question_mention_count:\n", + " question_mention_count[row['qid1']] = 0\n", + " actual_questions[row['qid1']] = row['question1']\n", + " if row['qid2'] not in question_mention_count:\n", + " question_mention_count[row['qid2']] = 0\n", + " actual_questions[row['qid2']] = row['question2']\n", + " question_mention_count[row['qid1']] += 1\n", + " question_mention_count[row['qid2']] += 1\n", + " \n", + "sorted_question_mention_counts = sorted([(k, question_mention_count[k]) for k in question_mention_count],\\\n", + " reverse=True,\\\n", + " key=lambda r: r[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Top 20 mentioned questions:\n", + "1: What are the best ways to lose weight? (157 mentions)\n", + "2: How can you look at someone's private Instagram account without following them? (120 mentions)\n", + "3: How can I lose weight quickly? (111 mentions)\n", + "4: What's the easiest way to make money online? (88 mentions)\n", + "5: Can you see who views your Instagram? (79 mentions)\n", + "6: What are some things new employees should know going into their first day at AT&T? (77 mentions)\n", + "7: What do you think of the decision by the Indian Government to demonetize 500 and 1000 rupee notes? (68 mentions)\n", + "8: Which is the best digital marketing course? (66 mentions)\n", + "9: How can you increase your height? (63 mentions)\n", + "10: How do l see who viewed my videos on Instagram? (61 mentions)\n", + "11: How should I start my preparation for the IAS exam? (58 mentions)\n", + "12: How would demonetizing 500 and 1000 rupee notes and introducing new 2000 rupee notes help curb black money and corruption? (57 mentions)\n", + "13: How should I lose weight? (56 mentions)\n", + "14: How do i lose weight? (55 mentions)\n", + "15: Why do people ask questions on Quora that can easily be answered by Google? (55 mentions)\n", + "16: What are the best ways to reduce and eliminate belly, abdominal, and thigh fat? (55 mentions)\n", + "17: Why do some people ask questions on Quora that could easily be answered by using a search engine? (55 mentions)\n", + "18: Why do people ask Quora questions which can be answered easily by Google? (54 mentions)\n", + "19: How do I reset my Gmail password when I don't remember my recovery information? (54 mentions)\n", + "20: How do I lose weight? (54 mentions)\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKkAAAJcCAYAAAAyzPcuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XvYbWVZL/7vzUHFAwhoayOoUGLm2SQ1t9tQCyiPm9Qo\nLFSSSkt22QHLRCVK23nIUgsPiVoqWhqeMkSXHQwFPCbqhhBCRFQWcjKJhffvjzlenby+hwm8c43F\nb34+1zWvd4xnzDHGPed8/ljrez3PM6q7AwAAAABj2mHsAgAAAABASAUAAADA6IRUAAAAAIxOSAUA\nAADA6IRUAAAAAIxOSAUAAADA6IRUAABJqmpTVf1TVV1RVS8eu57VVNVnq+rAbXi/w6vqH7fV/Va4\n//+qqi9s0LX2raquqp024noAwMaq7h67BgBgjqrqvCSbklw71XzX7v7yOBVtn6rq95PcL8lP93by\nD6Sqen2SL3X3c8au5YaoqucluUt3P2nsWpJJSJXki0l27u6t67z3wCRv6u595lzTNrkPANwUGEkF\nAIvh0d1966nX9wRURpfkzknO2l4CqkVQE/49CgAkEVIBwMKamvp0ZFX9Z5IPDu0PqqqPVNU3qupT\n01PLqmq/qvrwMCXulKr686p603DswKr60rJ7nFdVPz5s71BVx1TVf1TVJVV1UlXtsayWI6rqP6vq\n61X1e1PX2bGqfnc494qqOrOq7lhVr1g+Na+qTq6qX1/lMz+4qk6vqsuGvw8e2l+f5Igkv11VVy7V\nvOzcPYdrX15VH6uq46rqX5bVv9PU+zdX1S9O7T+1qj5XVZdW1fur6s5De1XVS6vqq8O1P1NV96yq\no5IcPlXTu1b4Tm9eVS+rqi8Pr5dV1c2nf4+qetZw7Yuq6ilT9fxUVZ01fJ8XVtVvrvKdPXnpcw77\nXVW/XFVnD33kFVVVK5x3SJLfTfIzQ/2fmvpejq+qf03yzSTfX1VPGb6bK6rq3Kr6panrXKdfDZ//\nN6vq08Pv+NaqusUqte9YVX8y9Kdzkzxy2fEV71tVt0ryviR3GGq/sqruUFUPqKp/Gz73RTXp/zdb\n63ec+p3+ZOjbF1fVX1TVLqvdZ6XPAgCLQEgFAPxYkh9KcnBV7Z3kPUn+IMkeSX4zyd9W1e2H9/5N\nkjOT3C7JcZkEO7P6tSSPG+53hySXJnnFsvc8JMkPJnlEkudW1Q8N7b+R5GeT/FSSXZM8NZOA48Qk\nP1vDaJyqul2SHx/qvI6aBGLvSfLyJHsmeUmS91TVnt395CR/neSPh5FmH1ih/lck+VaSvYb7P3XW\nD15Vj80ksDk0ye2T/HOSNw+HD0ry0CR3TbJbkicmuaS7T1hW06NXuPTvJXlQkvsmuU+SBySZnhr4\nP4Zr7p3kyCSvqKrdh2OvTfJL3X2bJPfMEFLO6FFJfiTJvYd6D17+hu7+hyR/mOStQ/33mTr880mO\nSnKbJOcn+epwzV2TPCXJS6vqh9e4/xOTHJJkv6GGJ6/yvqcN171fkgOSPH7Z8RXv291XJfnJJF9e\nNvrw2iS/nkn//9FM+unTh2ut+DsOx144tN83yV0y+T2eu8Z9AGAhCakAYDG8cxj98Y2qeueyY8/r\n7qu6+7+SPCnJe7v7vd397e4+JckZSX6qqu6USTDx+919dXf/U5J3XY8afjnJ73X3l7r76iTPS/L4\nuu40w+d3939196eSfCqT4CVJfjHJc7r7Cz3xqe6+pLs/luSyTMKCJDksyebuvniF+z8yydnd/cbu\n3trdb07y+SQrhT/XUVU7JvnpDMFCd/97JgHZ9fnsf9TdnxvWQvrDJPcdRlNdk0lYc7dM1gv9XHdf\nNON1D0/ygu7+and/LcnzMwmAllwzHL+mu9+b5MpMQsClY3evql27+9Lu/vj1+Dwv7O5vdPd/JvlQ\nJuHL9fH67v7s8Dtc093v6e7/GH7bDyf5xyT/a43zX97dX+7uLZn0wdXu/8QkL+vuC4b3/tH0wet7\n3+4+s7tPG+o+L8lfZhK6Jqv8jsMos6OS/Hp3b+nuKzL5/Q9b8xsCgAUkpAKAxfC47r7t8HrcsmMX\nTG3fOckTpgKtb2QyummvDKOfhtEfS86/HjXcOck7pq77uUxGpmyaes9Xpra/meTWw/Ydk/zHKtc9\nMZNwLcPfN67yvjusUO/5mYxqWc/tk+yU635X1/ez/+nUZ9+SpJLs3d0fTPLnmYzU+mpVnVBVu854\n3eWf6fyhbcklyxYIn/5OfzqTkWnn12QK549ej8+z2u80q+nvMVX1k1V1WlVtGb6fn8pktNKNvf8d\nssZvdn3vW1V3rap3V9VXquryTMKm2yXJGr/j7ZPcMsmZU7//PwztAMAUIRUAML1Q+AVJ3jgVaN22\nu2/V3S9MclGS3Yd1dJbcaWr7qkz+M57kO6OPpv8jfkGSn1x27Vt094Uz1HhBkh9Y5dibkjy2qu6T\nybTF5SPFlnw5k7Bo2p2SzHL/ryXZmklYNn3ukqXg7pZTbf9javuCTKbWTX/2Xbr7I0nS3S/v7vsn\nuXsm08J+azhvvUXcl3+mOw1t6+ru07v7sUm+L5Pv7KRZzrueVqv/O+01WUPrb5P8SZJN3X3bJO/N\nJMS7sS7KKr/ZDPddqfZXZTL6bv/u3jWTKZzfqXOV3/HrSf4ryT2mfvvdunspWLNQPwAMhFQAwLQ3\nJXl0VR08LDp9i2Hh6n26+/xMpv49v6puVlUPyXWnyv2/JLeoqkdW1c6ZrI1086njf5Hk+PruguG3\nH9ZqmsVrkhxXVfsPC1Tfu6r2TJLu/lKS0zMZQfW3w7TFlbw3yV2r6ueqaqeq+plMwoR3r3fz7r42\nyd8leV5V3bKq7p6p9biGqXYXJnnS8L09NdcN1f4iybOr6h7DZ9+tqp4wbP9IVT1w+M6uymTdq28P\n512c5PvXKO3NSZ4zfJe3S/LcTH7DNQ2/3+FVtVt3X5Pk8ql7bqSLk+xbaz/B72aZ9JOvJdlaVT+Z\nyfpOG+GkJM+sqn2GtbiOuR73vTjJnlW121TbbTL5rq6sqrsl+ZWlA6v9jt397SSvzmS9q+8b3rt3\nVR28xn0AYCEJqQCA7+juC5IsLfL9tUxGAP1Wvvtvhp9L8sBMpqsdm+QNU+delski0q/JJLC5Ksn0\n0/7+NMnJSf6xqq5IctpwrVm8JJPA4R8zCQlem2SXqeMnJrlXVp/ql+6+JJNFsp+VyYLWv53kUd39\n9Rlr+NVMppV9Jcnrk/zVsuNPy+S7uiTJPZJ8ZOre70jyoiRvGaaJ/XsmC2Ynk0W7X53JQvLnD+f/\n3+HYazNZN2qltcSSyQL3ZyT5dJLPJPn40DaLn09y3lDPL2eyvtVGe9vw95KqWnHNq2GNpmdm8vte\nmkkfO3mD7v/qJO/PZH2zj2cSNM503+7+fCYh4LnD93+HTB4k8HNJrhiu/dape631O/5OknOSnDZ8\n3x/IsDbYKvcBgIVU3UYYAwA3TFU9L8lduvtJ6713znU8NJMRRHfubfSPm6p6cpJf7O6HbIv7AQD8\n/52RVADATdowveroJK/ZVgEVAAAbT0gFANxkVdUPJflGJk8ffNnI5QAAcCOY7gcAAADA6IykAgAA\nAGB0O41dwPbidre7Xe+7775jl3G9XHXVVbnVrW41dhmMTD8g0Q+Y0A9I9AMm9AMS/YAJ/YBk3H5w\n5plnfr27bz/Le4VUg3333TdnnHHG2GVcL5s3b86BBx44dhmMTD8g0Q+Y0A9I9AMm9AMS/YAJ/YBk\n3H5QVefP+l7T/QAAAAAYnZAKAAAAgNEJqQAAAAAYnZAKAAAAgNEJqQAAAAAYnZAKAAAAgNEJqQAA\nAAAYnZAKAAAAgNEJqQAAAAAYnZAKAAAAgNEJqQAAAAAYnZAKAAAAgNEJqQAAAAAYnZAKAAAAgNEJ\nqQAAAAAYnZAKAAAAgNEJqQAAAAAYnZAKAAAAgNEJqQAAAAAYnZAKAAAAgNEJqQAAAAAYnZAKAAAA\ngNEJqQAAAAAYnZAKAAAAgNHtNHYBbLx9j3nPhl7vvBc+ckOvBwAAALCckVQAAAAAjE5IBQAAAMDo\nhFQAAAAAjE5IBQAAAMDohFQAAAAAjE5IBQAAAMDohFQAAAAAjE5IBQAAAMDohFQAAAAAjE5IBQAA\nAMDohFQAAAAAjE5IBQAAAMDohFQAAAAAjE5IBQAAAMDohFQAAAAAjE5IBQAAAMDohFQAAAAAjG6u\nIVVVnVdVn6mqT1bVGUPbHlV1SlWdPfzdfer9z66qc6rqC1V18FT7/YfrnFNVL6+qGtpvXlVvHdo/\nWlX7Tp1zxHCPs6vqiHl+TgAAAABunG0xkuph3X3f7j5g2D8myandvX+SU4f9VNXdkxyW5B5JDkny\nyqracTjnVUmelmT/4XXI0H5kkku7+y5JXprkRcO19khybJIHJnlAkmOnwzAAAAAAti9jTPd7bJIT\nh+0Tkzxuqv0t3X11d38xyTlJHlBVeyXZtbtP6+5O8oZl5yxd6+1JHjGMsjo4ySndvaW7L01ySr4b\nbAEAAACwndlpztfvJB+oqmuT/GV3n5BkU3dfNBz/SpJNw/beSU6bOvdLQ9s1w/by9qVzLkiS7t5a\nVZcl2XO6fYVzvqOqjkpyVJJs2rQpmzdvvmGfciRXXnnlijU/615bN/Q+N7XvZdGs1g9YLPoBiX7A\nhH5Aoh8woR+Q6AdM3FT6wbxDqod094VV9X1JTqmqz08f7O6uqp5zDasaQrMTkuSAAw7oAw88cKxS\nbpDNmzdnpZqffMx7NvQ+5x3+vfdg+7FaP2Cx6Ack+gET+gGJfsCEfkCiHzBxU+kHc53u190XDn+/\nmuQdmawPdfEwhS/D368Ob78wyR2nTt9naLtw2F7efp1zqmqnJLsluWSNawEAAACwHZpbSFVVt6qq\n2yxtJzkoyb8nOTnJ0tP2jkjy98P2yUkOG57Yt18mC6R/bJgaeHlVPWhYb+oXlp2zdK3HJ/ngsG7V\n+5McVFW7DwumHzS0AQAAALAdmud0v01J3jHJlbJTkr/p7n+oqtOTnFRVRyY5P8kTk6S7P1tVJyU5\nK8nWJM/o7muHaz09yeuT7JLkfcMrSV6b5I1VdU6SLZk8HTDdvaWqjkty+vC+F3T3ljl+VgAAAABu\nhLmFVN19bpL7rNB+SZJHrHLO8UmOX6H9jCT3XKH9W0mesMq1XpfkddevagAAAADGMNc1qQAAAABg\nFkIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIA\nAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYn\npAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAA\nAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIq\nAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABg\ndEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIA\nAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYn\npAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAA\nAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIq\nAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABg\ndEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIA\nAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdEIqAAAAAEYnpAIAAABgdHMPqapqx6r6\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Make a separate cell for display, as the above computation can take some time.\n", + "num_questions_to_examine = 20\n", + "print('Top {0} mentioned questions:'.format(num_questions_to_examine))\n", + "for i in range(0, num_questions_to_examine, 1):\n", + " print('{0}: {1} ({2} mentions)'.format(i+1,\\\n", + " actual_questions[sorted_question_mention_counts[i][0]],\\\n", + " sorted_question_mention_counts[i][1]))\n", + " \n", + "fig = plt.figure(figsize=(20, 10))\n", + "data_points = list(map(lambda v: v[1], sorted_question_mention_counts))\n", + "n, bins, patches = plt.hist(data_points, 50)\n", + "plt.xlabel('Number of occurances of question id')\n", + "plt.ylabel('Number of question ids with given occurance')\n", + "plt.title('Frequency of questions in train dataset')\n", + "plt.grid('on')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Some observations:\n", + "\n", + "* The dataset appears to be very long-tailed. There are a few questions that are mentioned a bunch of times. \n", + "* The dataset doesn't appear to be sanitized for case. Notice how number 13 and 20 on the list are the same question, differing only in case. But, they have different question IDs. \n", + "\n", + "Let's see what the labels look like for the questions that are mentioned often." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nzvHHH0/Xrl3zqqEQKisrWbhwIV/84heLXco2sceSmq2rr76aNm3aMHz48GKXIkmSJElqZF27ds0r\nVIJMsLRw4cIGrmj7VFZW8thjjxW7jG1msKRm6fbbb+fRRx/lrrvuqhkT2q1bN+bPn1+zz4IFC+jW\nrVuxSpQkSZIkZV199dUccMABHHXUUcyePbtm/cCBA6moqABg6dKllJaWApl/85188skMHDiQ/fff\nnyuvvHKzY86bN6/mRU8ff/wxY8eOpaysjN69ezN+/HgArrrqKg477DDKysoYM2YMKSUeeOABKioq\nGD58OH379mXNmjXMnDmTo48+mkMPPZQTTjiBd955Z7P2Fi1axJAhQ+jTpw99+vThb3/7GwA/+9nP\nKCsro6ysjBtvvHGz2gBuuOEGrrjiippz/t73vkf//v054IADmDp1Kh999BGXX345EydOpG/fvkyc\nOHE7r3jjMVhSs/PEE09w/fXX88gjj7DLLrvUrD/ppJO49957+fDDD5k7dy5vvvkm/fv3L2KlkiRJ\nkqSZM2dy77331vTIeeGFF3L63YwZM3jwwQd5+eWXuf/++2sCqC2ZMGEC8+bNo7KykpdffrlmZMt5\n553HCy+8wKuvvsqaNWt49NFHOfXUUykvL+euu+6isrKSNm3a8J//+Z888MADzJw5k1GjRvGDH/xg\nszbOP/98jj76aGbNmsWLL75Ir169mDlzJrfddhvPP/8806dP5ze/+Q0vvfRSvedWXV3NjBkzuPHG\nG7nyyivZaaeduOqqqxg2bBiVlZU1U740B86xpCbt9NNP5y9/+QtLly6lpKSEK6+8kmuvvZYPP/yQ\nQYMGAZkJvH/961/Tq1cvTjvtNHr27EmbNm246aabaN26dZHPQJIkSZJ2bFOnTmXIkCE1HQNOOumk\nnH43aNAg9txzTwCGDh3KtGnTKC8v3+K+Tz31FOecc07Ni542vARqypQpXH/99axevZply5bRq1cv\nvvzlL2/029mzZ/Pqq6/W/Bvz448/Zt99992sjWeeeYY777wTgNatW9OpUyemTZvGkCFD2HXXXWvq\nnDp1ar3nOHToUAAOPfRQ5s2bl8vlaLIMltSk3XPPPZutO/PMM+vc/wc/+MEWk2VJkiRJUtPTpk0b\n1q9fD8DatWs32rZh2pO6luuzdu1avv3tb1NRUcEnP/lJrrjiis3aAEgp0atXL5577rltrL5utc9r\nQy21tWvXDsgEVNXV1Q3WbjE4FK4FGjVqFF26dNloPOf9999Pr169aNWq1UbdB9etW8cZZ5zBwQcf\nzEEHHcS1115bjJIlSZIkSS3UgAEDePjhh1mzZg0rV67kj3/8Y8220tJSZs6cCbDZRNx//vOfWbZs\nGWvWrOHhhx/m85//fJ1tDBo0iFtuuaUmpFm2bFlNmLPXXnuxatWqjY7fsWNHVq5cCcCBBx7IkiVL\naoKldevW8dprr23WxrHHHsvNN98MZHo1rVixgi984Qs8/PDDrF69mqqqKiZNmsQXvvAF9t57bxYv\nXsx7773Hhx9+yKOPPlrvdapdU3Nij6UWaMSIEZx33nl885vfrFlXVlbGQw89xNlnn73Rvvfffz8f\nfvghr7zyCqtXr6Znz56cfvrpNROmSZIkSZJalvSj1KjtHXLIIQwbNow+ffrQpUsXDjvssJptY8eO\n5bTTTmPChAl86Utf2uh3/fv355RTTmHBggV84xvfqHMYHMDo0aN544036N27N23btuWss87ivPPO\n46yzzqKsrIx99tlno3ZHjBjBOeecw84778xzzz3HAw88wPnnn8+KFSuorq7mu9/9Lr169dqojV/8\n4heMGTOG3/3ud7Ru3Zqbb76ZI488khEjRtTM7zt69Gj69esHwOWXX07//v3p1q0bPXr0qPc6HXPM\nMYwbN46+ffty6aWXNpt5liKlxn2gGlJ5eXna2uRdO7J58+Zx4okn8uqrr260fuDAgdxwww01/4G8\n5557uPvuu5k0aRIrVqzgyCOPZPr06TXjUSVJkiRJzdvf//53DjrooGKXsU1uv/12Kioq+OUvf1ns\nUlq8LT0fETEzpVR3kleLQ+F2cKeeeiq77ror++67L/vttx9jx441VJIkSZIkSTlxKNwObsaMGbRu\n3ZqFCxfy/vvv84UvfIHjjjuOT3/608UuTZIkSZK0gxoxYgQjRowodhnKgT2WdnB33303gwcPpm3b\ntnTp0oXPf/7zOLxQkiRJkiTlwmBpB7fffvvxzDPPAFBVVcX06dNzmlRMkiRJkiSpYMFSRNwaEYsj\n4tVa6/4rIv4RES9HxKSI2L3Wtksj4p8RMTsiTihUXTuC008/nSOPPJLZs2dTUlLC7373OyZNmkRJ\nSQnPPfccX/rSlzjhhMwlPvfcc1m1ahW9evXisMMOY+TIkfTu3bvIZyBJkiRJkpqDgr0VLiIGAKuA\nO1NKZdl1xwPPpJSqI+I6gJTS9yKiJ3AP0B/oCjwFHJBS+nhrbfhWOEmSJEmStq45vhVOjafJvhUu\npfQssGyTdU+mlKqzi9OBkuz3k4F7U0ofppTmAv8kEzJJkiRJkqSGFNGwnyZi3rx5lJWV5f37ESNG\n8MADDwAwevRoXn/99W0+RmVlJY899ljeNRTKNddcU7BjF3OOpVHA49nv3YD5tbYtyK7bTESMiYiK\niKhYsmRJgUtU0bWw/6KTJEmSJDV9v/3tb+nZs+c2/85gqZFExA+AauCubf1tSmlCSqk8pVTeuXPn\nhi9OkiRJkiQ1mHnz5nHQQQdx1lln0atXL44//njWrFkDZIKYI444gt69ezNkyBDef/99AAYOHMj3\nvvc9+vfvzwEHHMDUqVO3eOyZM2fSp08f+vTpw0033VSz/vbbb+e8886rWT7xxBP5y1/+AkCHDh24\n4IIL6NWrF8ceeyxb6rQycODAmjemP/HEExxyyCH06dOHY489FoAZM2Zw5JFH0q9fPz73uc8xe/Zs\nPvroIy6//HImTpxI3759mThxIlVVVYwaNYr+/fvTr18/Jk+evMXzuO666zj44IPp06cPl1xySb3X\nZkNtS5cupbS0tOachw4dyuDBg9l///25+OKLAbjkkktYs2YNffv2Zfjw4fXcrW3X6MFSRIwATgSG\np/+b4Olt4JO1divJrpMkSZIkSc3cm2++ybnnnstrr73G7rvvzoMPPgjAN7/5Ta677jpefvllDj74\nYK688sqa31RXVzNjxgxuvPHGjdbXNnLkSMaPH8+sWbNyrqWqqory8nJee+01jj766DqPDbBkyRLO\nOussHnzwQWbNmsX9998PQI8ePZg6dSovvfQSV111Fd///vfZaaeduOqqqxg2bBiVlZUMGzaMq6++\nmn/7t39jxowZTJkyhYsuuoiqqqqN2nj88ceZPHkyzz//PLNmzaoJhLZ2bepSWVnJxIkTeeWVV5g4\ncSLz589n3Lhx7LzzzlRWVnLXXdvcv6dejRosRcRg4GLgpJTS6lqbHgG+FhHtIqI7sD8wozFrkyRJ\nkiRJhdG9e3f69u0LwKGHHsq8efNYsWIFy5cv5+ijjwbgjDPO4Nlnn635zdChQzfaf1PLly9n+fLl\nDBgwAID/+I//yKmWVq1aMWzYMAC+8Y1vMG3atDr3nT59OgMGDKB79+4AfOITnwBgxYoVfPWrX6Ws\nrIwLLriA1157bYu/f/LJJxk3bhx9+/Zl4MCBrF27ln/9618b7fPUU08xcuRIdtlll5o26rs2dTn2\n2GPp1KkT7du3p2fPnrz11lv1/mZ7tSnUgSPiHmAgsFdELAB+BFwKtAP+HJl5b6anlM5JKb0WEfcB\nr5MZIndufW+EkyRJkiRJzUO7du1qvrdu3bpmKFwuv2ndujXV1Zn3gI0cOZKXXnqJrl27cvfdd9f5\n2zZt2rB+/fqa5bVr19a5b+QxL+9ll13GMcccw6RJk5g3bx4DBw7c4n4pJR588EEOPPDAbW6jLrXP\nbdPz2vQ6b7huhVTIt8KdnlLaN6XUNqVUklL6XUrpsymlT6aU+mY/59Ta/+qU0mdSSgemlB7f2rEl\nSZIkSVLz1qlTJ/bYY4+a+ZN+//vf1/TQqcttt91WM0H27rvvzu67717T46j2MK/S0lIqKytZv349\n8+fPZ8aM/xsUtX79+pq3v919990cddRRdbZ3xBFH8OyzzzJ37lwAli1bBmR6LHXrlnnn2O23316z\nf8eOHVm5cmXN8gknnMD48ePZMBPQSy+9tFkbgwYN4rbbbmP16tU1bWzt2pSWljJz5kyAmvOoT9u2\nbVm3bl1O+26rYr4VTpIkSZIkNbaUGvazHe644w4uuugievfuTWVlJZdffvk2/f62227j3HPPpW/f\nvqRatXz+85+ne/fu9OzZk/PPP59DDjmkZtuuu+7KjBkzKCsr45lnntlqm507d2bChAkMHTqUPn36\n1Ayhu/jii7n00kvp16/fRr2CjjnmGF5//fWaybsvu+wy1q1bR+/evenVqxeXXXbZZm0MHjyYk046\nifLycvr27csNN9yw1WszduxYbr75Zvr168fSpUtzuk5jxoyhd+/eBZm8O9J2PgTFVF5enjbMhK4W\nKo8uiVvUjJ9zSZIkSdoef//73znooIOKXUaT0aFDB1atWlXsMpqMLT0fETEzpVSey+/tsSRJkiRJ\nkqS8FGzybhWJPXwkSZIkSaqTvZUalj2WJEmSJElq4ZrzNDgqnIZ4LgyWJEmSJElqwdq3b897771n\nuKSNpJR47733aN++/XYdx6FwkiRJkiS1YCUlJSxYsIAlS5YUuxQ1Me3bt6ekpGS7jmGwJEmSJElS\nC9a2bVu6d+9e7DLUQjkUTpIkSZIkSXkxWJIkSZIkSVJeDJYkSZIkSZKUF4MlSZIkSZIk5cVgSZIk\n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\ns88+y7e+9S3mzJlDZWUl++67LxdeeGGxy8xJaWkpBx98MH379qW8vHyjbT/96U+JCJYuXVqk6tSS\n+Kw1Xd6bxpdLj6Uban2vBt5KKS0oUD2SJEmSGtGWJiMfMGBAzfazzjqLE088sVjlbbMtzRc1f/58\nnnzySfbbb78iVaWWyGet6fLeNK56eywB/wKeTyn9NaX0/4D3IqK0oFVJkiRJKriqqipWrlxZ8/3J\nJ5+krKyMd955p2afSZMmUVZWVqwSG8QFF1zA9ddf77xXKjiftabLe1M4uQRL9wPray1/nF0nSZIk\nqRlbtGgRRx11FH369KF///586UtfYvDgwVx88cUcfPDB9O7dmylTpvDzn/+82KXmZMN8UYceeigT\nJkwAYPLkyXTr1o0+ffoUuTq1JD5rTZf3pvHlMhSuTUrpow0LKaWPImKnAtYkSZIkqRHUNRn573//\n+yJUs/2mTZtGt27dWLx4MYMGDaJHjx5cc801PPnkk8UuTS2Mz1rT5b1pfLkES0si4qSU0iMAEXEy\n4ExXkiRJyllpaSkdO3akdevWtGnThoqKCi677DImT55Mq1at6NKlC7fffjtdu3YtdqmbiSsbZthE\n+lFqkOOobpvOF/XXv/6VuXPn1vRSWLBgAYcccggzZsxgn332KWapauZ81pou703jy2Uo3DnA9yPi\nXxHxL+B7wNmFLUuSJEktzZQpU6isrKSiogKAiy66iJdffpnKykpOPPFErrrqqiJXqOZsS/NFHXbY\nYSxevJh58+Yxb948SkpKePHFF/3HpLaLz1rT5b0pjnp7LKWU/hc4IiI6ZJdXFbwqSZIktXi77bZb\nzfeqqionVNV2WbRoEUOGDAGgurqar3/96wwePLjIVakl8llrurw3xREpbb1LbkRcA1yfUlqeXd4D\nuDCl9MNGqG+rysvL04b/x0tZDfU/yOp5LhpNSzqflnQuLU1Luzct7XwktQjdu3enU6dOtG7dmrPP\nPpsxY8YA8IMf/IA777yTTp06MWXKFDp37lzkSjfnUDhJ0o4mImamlMpz2TeXoXD/viFUAkgpvQ98\nMd/iJEmStOOZNm0alZWVPP7449x00008++yzAFx99dXMnz+f4cOH88tf/rLIVUqSpG2Vy+TdrSOi\nXUrpQ4CI2BloV9iyJEmS1JJsOpnqjBkzGDBgQM324cOH88UvfpErr7yyWCXuMOyBJUlqSLn0WLoL\n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\nYUmSJEmSJEl5sbAkSZIkSZKkvFhYkiRJkiRJUl4sLEmSJEmSJCkvFpYkSZIkSZKUFwtLkiRJkiRJ\nyouFJUmSJEmSJOXFwpIkSZIkSZLyYmFJkiRJkiRJebGwJEmSJEmSpLxYWJIkSZIkSVJeLCxJkiRJ\nkiQpLxaWJEmSJEmSlBcLS5IkSZIkScqLhSVJkiRJkiTlxcKSJEmSJEmS8mJhSZIkSZIkSXmxsCRJ\nkiRJkqS8WFiSJEmSJElSXiwsSZIkSZIkKS8WliRJkiRJkpQXC0uSJEmSJEnKi4UlSZIkSZIk5cXC\nkvQubN++nQsuuICPfvSjDBs2jPnz5x/e9q1vfYva2lqGDRvGl7/85QxTSpIkSZJUHH2yDiCVkz59\n+jBv3jxGjRrF3r17GT16NA0NDezcuZPGxkY2b95Mv3792LVrV9ZRJUmSJEkqOAtL0rtQXV1NdXU1\nAMcffzxDhw5lx44d/P3f/z2zZs2iX79+AFRVVWUZU5IkSZKkovBQOClPTU1NPPPMM4wZM4atW7fy\n2GOPMWbMGM4//3w2bNiQdTxJkiRJkgrOGUtSHl555RWuvPJKvvnNb3LCCSdw4MAB9uzZwxNPPMGG\nDRu46qqreOGFF4iIrKNKkiRJklQwzliS3qX9+/dz5ZVXcs011zB58mQAampqmDx5MhHBueeeS69e\nvXjppZcyTipJkiRJUmFZWJLehZQSN9xwA0OHDuXWW2893H7FFVfwyCOPALB161beeOMNBgwYkFVM\nSZIkSZKKwkPhpHdh/fr1/OAHP2DEiBGMHDkSgDvuuINp06Yxbdo0hg8fTt++fVm0aJGHwUmSJEmS\nKp6FJeldOO+880gpdbht8eLFRU4jSZIkSVK2PBROkiRJkiRJebGwJEmSJEmSpLxYWJIkSZIkSVJe\nXGNJOoq4rXsW4e54ZSZJkiRJksqXM5YkSZIkSZKUFwtLkiRJkiRJyouFJUmSJEmSJOXFwpIkSZIk\nSZLyYmFJkiRJkiRJebGwJEnSu7B9+3YuuOACPvrRjzJs2DDmz58PwJe+9CVqa2s544wzmDRpEi+/\n/HLGSVXO7GeSJKlcWFiSJOld6NOnD/PmzeP555/niSee4O677+b555+noaGB5557jl/84hecfvrp\nzJ49O+uoKmP2M0mSVC4sLEmS9C5UV1czatQoAI4//niGDh3Kjh07+OQnP0mfPn0A+NjHPkZzc3OW\n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\nkzwAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "question_ids_of_interest = list(map(lambda v: v[0], sorted_question_mention_counts[:num_questions_to_examine]))\n", + "not_duplicate_counts = []\n", + "duplicate_counts = []\n", + "\n", + "for i in range(0, len(question_ids_of_interest), 1):\n", + " with_repeated_id = dataset[(dataset['qid1'] == question_ids_of_interest[i])\\\n", + " | (dataset['qid2'] == question_ids_of_interest[i])]\n", + " repeated_label_counts = with_repeated_id['is_duplicate'].value_counts()\n", + " if 1 in repeated_label_counts.index:\n", + " duplicate_counts.append(repeated_label_counts[1])\n", + " else:\n", + " duplicate_counts.append(0)\n", + " if 0 in repeated_label_counts.index:\n", + " not_duplicate_counts.append(repeated_label_counts[0])\n", + " else:\n", + " not_duplicate_counts.append(0)\n", + " \n", + "bar_width = 0.35\n", + "idx = list(range(0, num_questions_to_examine, 1))\n", + "idx2 = list(map(lambda v: v + bar_width, idx))\n", + "\n", + "fig, ax = plt.subplots(figsize=(20, 10))\n", + "r1 = ax.bar(idx, duplicate_counts, bar_width, color='g')\n", + "r2 = ax.bar(idx2, not_duplicate_counts, bar_width, color='r')\n", + "\n", + "ax.set_ylabel('Number of occurances with given label')\n", + "ax.set_xlabel('Question Id')\n", + "ax.legend( (r1, r2) , ('duplicate count', 'non-duplicate count') )\n", + "ax.set_title('Top 10 question ID label distribution')\n", + "\n", + "def label(rects):\n", + " for rect in rects:\n", + " height = rect.get_height()\n", + " ax.text(rect.get_x() + rect.get_width() / 2., 1.02 * height, '{0}'.format(int(height)), ha='center', va='bottom')#\n", + "\n", + "label(r1)\n", + "label(r2)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Wow. There are some questions that exist as only duplicates! Let's look at one of those in particular, the 12th most commmon question." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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", + "
idqid1qid2question1question2is_duplicate
14696146962813228133What are some ways to lose weight fast?How should I lose weight?1
26691266911920028133How can I slowly lose weight?How should I lose weight?1
3633136331359628133How do I suck it up and lose weight?How should I lose weight?1
39190391901469628133How can I lose 25 kg?How should I lose weight?1
4043740437535828133What's the best plan to lose weight?How should I lose weight?1
50494504941919928133How can I lose weight loss?How should I lose weight?1
54584545842813310563How should I lose weight?How should one change their diet to lose weight?1
7265172651701628133How can I lose weight safely?How should I lose weight?1
81038810381710028133I am ugly and fat, how to lose weight?How should I lose weight?1
85924859248652228133How do I get rid of excessive weight?How should I lose weight?1
\n", + "
" + ], + "text/plain": [ + " id qid1 qid2 question1 \\\n", + "14696 14696 28132 28133 What are some ways to lose weight fast? \n", + "26691 26691 19200 28133 How can I slowly lose weight? \n", + "36331 36331 3596 28133 How do I suck it up and lose weight? \n", + "39190 39190 14696 28133 How can I lose 25 kg? \n", + "40437 40437 5358 28133 What's the best plan to lose weight? \n", + "50494 50494 19199 28133 How can I lose weight loss? \n", + "54584 54584 28133 10563 How should I lose weight? \n", + "72651 72651 7016 28133 How can I lose weight safely? \n", + "81038 81038 17100 28133 I am ugly and fat, how to lose weight? \n", + "85924 85924 86522 28133 How do I get rid of excessive weight? \n", + "\n", + " question2 is_duplicate \n", + "14696 How should I lose weight? 1 \n", + "26691 How should I lose weight? 1 \n", + "36331 How should I lose weight? 1 \n", + "39190 How should I lose weight? 1 \n", + "40437 How should I lose weight? 1 \n", + "50494 How should I lose weight? 1 \n", + "54584 How should one change their diet to lose weight? 1 \n", + "72651 How should I lose weight? 1 \n", + "81038 How should I lose weight? 1 \n", + "85924 How should I lose weight? 1 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "interesting_id = question_ids_of_interest[12]\n", + "df = dataset[(dataset['qid1'] == interesting_id)\\\n", + " | (dataset['qid2'] == interesting_id)]\n", + "\n", + "df.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Yup, all of the question pairs where one of the questions is 'How should I lose weight?' are duplicates. Let's extend this to all questions that are mentioned more than N times ('pivot' in the code below):" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "image/png": "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\n69fa9/4kYKt4vWyNK759s8nr1mybrJXPn+aKON8Cpja57SrgqhbmkcYVVvaN19XtuCLIefHz+CFZ\nRUpab98eRQvbYr5s57qs/yXfuvsnhrV2nrX2fmvtMmttDa6yuVeTye6w1r5tXZfQnwOHGmNKge8D\nj1prH7XWNlhr/4Gr5O+fw6IPBX5lrZ1vrZ0BXNnKtKuAjYwxg621S6y1L7Ux75nW2qustXXW2uUt\nTHNJvOxPcHu8D88hc6vidXIY8BNrbY21NoPrcTE5a7KPrbU3WmvrgdtwHwzD4vsagC2NMRXW2lnW\n2ndyXPQRwC3W2testbW4avcuxpgga5qL4+fb3Po4GHjEWvts/Pifx1lysSOuIXihtXaldceh3ohb\nD9D+165RFfCBtfaO+HX8I/AecGDWNLdaa9+Pn9O9wMSsZQ7CfYjXW2tftdYubrqAOGtN/Lg9gceA\nmcaYTXHbwHPW2lzXA8CV1tqZ1tr5uIbJxBamOxT4nbX2U2vtAlwjuak/WGvfsdbW4Roa++OKHkut\ntV/gigmHxc/jQ2vtP6y1tdbaObiGXdNtOFsu2+3q5VtrV+W+CrjAWrvcWvsmbm/vNnHGV621L8Xz\ny+C+sJtmrLbWLoy3yadoef21phL3xZttMe4LvCXTrbW3xtvkPbgfKhfG6/Nx3J68jYwxBrd374x4\nW6oBfs2a9zq4996F1tpV1tpHcQ3uCTlmPyJ+7Bfx63gBa392tDbvVcDmxph+1toF1trXclymiCSA\n2mpqq6G2Wne31bIdgCtu3Bo/z9dxhdJDsp5Lc9/Bq3DvnbHxd/dz1rqqQI5a/N631j5trf1vvE2/\nhTvkqelnQrNtsnaqxPVaytZWu+o5a+1jcRv2PtyOqeq4PfknIDDG9DfGDKOV9m2stW2xRR63c2kn\nFXE6yBjT2xjz+3gA0MW4vfj94zd/oxlZ1z/GVVIH4473PcQYs7DxghvIbYMcFj2imfm25FhcFf89\nY8zLxpgD2pj3jDbubzrNx3Ge9TUYt26yn8vHuL1gjWY3XrHWLouvVsaNru/iemnMMsZE8RdULhr3\nTDTOdwluL1v2cltbJ2u9FnGWeTkueywwosl74Kes+RBs72uXnanpe6LFdYnbO1EZX78D9yX/J2PM\nTGPM/xljerSwnGdwezP2jK8/jfsS3Cv+vz1aytNU0/d+c69N9m1jce+rWVnr+Pe4PRYYY4YZY/5k\n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\nAAAN+H9F7RX/s9rg7gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pivot = 10\n", + "high_repeated_count = set(map(lambda v: v[0], filter(lambda v: v[1] > pivot, sorted_question_mention_counts)))\n", + "df_with_high_repeated_count = dataset[dataset['qid1'].isin(high_repeated_count) | dataset['qid2'].isin(high_repeated_count)]\n", + "df_with_high_repeated_count_labels = df_with_high_repeated_count['is_duplicate'].value_counts()\n", + "high_data = [df_with_high_repeated_count_labels[0], df_with_high_repeated_count_labels[1]]\n", + "\n", + "low_repeated_count = set(map(lambda v: v[0], filter(lambda v: v[1] <= pivot, sorted_question_mention_counts)))\n", + "df_with_low_repeated_count = dataset[dataset['qid1'].isin(low_repeated_count) | dataset['qid2'].isin(low_repeated_count)]\n", + "df_with_low_repeated_count_labels = df_with_low_repeated_count['is_duplicate'].value_counts()\n", + "low_data = [df_with_low_repeated_count_labels[0], df_with_low_repeated_count_labels[1]]\n", + "\n", + "\n", + "def make_autopct(values):\n", + " def inner_autopct(pct):\n", + " total = sum(values)\n", + " val = int(round(pct*total/100.0))\n", + " return '{p:.2f}% ({v:d})'.format(p=pct,v=val)\n", + " return inner_autopct\n", + "\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(20, 10))\n", + "labels = ['not_duplicate', 'duplicate']\n", + "ax1.pie(high_data, labels=labels, autopct=make_autopct(high_data))\n", + "ax2.pie(low_data, labels=labels, autopct=make_autopct(low_data))\n", + "ax1.set_title('Label distributions for questions with greater than {0} mentions.'.format(pivot))\n", + "ax2.set_title('Label distributions for questions with less than {0} mentions.'.format(pivot))\n", + "print() # to avoid garbage vomited by matplotlib" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It seems like questions that are mentioned often are more likely to be a part of a duplicate pair than not. This makes sense when you consider the workflow for these question-answering sites. Usually, the workflow is as follows:\n", + "\n", + "* User asks a question\n", + "* Community develops a comprehensive, well-thought out response\n", + "* Future asks of that question are linked to the duplicate question\n", + "\n", + "This suggests some sort of iterative algorithm to identify duplicate questions in the set - first find these well-linked 'centers', then attempt to expand outward.\n", + "\n", + "Moving on to the text itself, let's take a look at the questions themselves. First, let's get an idea of the lengths of the questions we are working with." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "question_id_mapping = {}\n", + "question_lengths = {}\n", + "for index, row in dataset.iterrows():\n", + " if row['qid1'] not in question_id_mapping:\n", + " if (pd.isnull(row['question1'])):\n", + " question_id_mapping[row['qid1']] = ''\n", + " question_lengths[row['qid1']] = 0\n", + " else:\n", + " question_id_mapping[row['qid1']] = row['question1']\n", + " question_lengths[row['qid1']] = len(row['question1'].split())\n", + " if row['qid2'] not in question_id_mapping:\n", + " if (pd.isnull(row['question2'])):\n", + " question_id_mapping[row['qid2']] = ''\n", + " question_lengths[row['qid2']] = 0\n", + " else:\n", + " question_id_mapping[row['qid2']] = row['question2']\n", + " question_lengths[row['qid2']] = len(row['question2'].split())" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKkAAAJcCAYAAAAyzPcuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X20bWddH/rvj5wAEUggwZ6GJHKiRDt4USrHNOId9tRY\nkooQSiFGeQk0l3gLFbwXtcFqsWIq3IoU7IDeVDAhUCBGlGhAwNDtewIBsRheJJJgEsNrAuGAxJzw\nu3+suXVle15WkrX2c5r9+Yyxxp7rmfN55m/ufeYYZ3zHfJ5Z3R0AAAAAGOleowsAAAAAACEVAAAA\nAMMJqQAAAAAYTkgFAAAAwHBCKgAAAACGE1IBAAAAMJyQCgDY8qrqaVX1rhWMu6uqrl/2uAue+2eq\n6g134vjvqqqPV9XuqnrSKmsDANgbIRUAMExVPauqPlRVX6mqT1XVq6vqiBWfc0dVdVVtW2/r7jd2\n9+NWed5VWlIY9rNJ/mt337+7f2MZdQEA3BlCKgBgiKp6YZKXJfnxJEckOSnJjiTvqqpDB5a2VT00\nyVV721Ez/t8IAKyU/2wAAJuuqg5P8h+T/Eh3/3Z339bd1yY5Pck3Jvmh6bjzq+rn5vrd4YmhqnpI\nVf1aVX22qq6pqufP7Tuxqq6sqluq6tNV9YvTrt+bfn5hmtr2ndMTXX8w1/exVfW+qvri9POxc/vW\nquolVfWHVfWlqnpXVT14weveX70/U1UXVdXrp3Gvqqqdc/u/var+ZNr3q1X1lqr6uaq6X5J3JHnI\ndD27q+ohU7d772u8DXX9xfR7/82p/32m6zy3qv4wyVeSfGNVHVFVr62qG6vqhun8h0xjHFJVv1BV\nn6uqT1TV8+afWKuqa6vqezdc7xvmvp9UVX9UVV+oqj+tql2L/s6r6v+Y63vd9Pf8junvfsjccU+u\nqj9d5G8FAGw+IRUAMMJjk9w3yVvnG7t7d5K3Jzng1LvpyZ7fTPKnSY5JcnKSH62qU6ZDXpnkld19\neJJvSnLR1P7d088HTlPb/njDuEcmuTTJq5IcleQXk1xaVUfNHfZDSZ6d5B8kuXeSH1tCvUnyxCRv\nTvLAJJck+a9T33sn+fUk5yc5MsmbkvzLJOnuLyf5F0n+arqe+3f3X+1vvI26+5uS/GWSJ0z9b512\nPSPJ2UkekOST0/n3JHlYkn+c2d/p/5yOfU6S75/adyZ5yoF+J3O/m2My+53/3HR9P5bk16rq6+cO\n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\nAAAAAIYTUgEAAAAwnJAKAAAAgOGEVAAAAAAMJ6QCAAAAYDghFQAAAADDCakAAAAAGE5IBQAAAMBw\nQioAAAAAhhNSAQAAADCckAoAAACA4YRUAAAAAAwnpAIAAABgOCEVAAAAAMMJqQAAAAAYTkgFAAAA\nwHBCKgAAAACGE1IBAAAAMJyQCgAAAIDhhFQAAAAADCekAgAAAGA4IRUAAAAAwwmpAAAAABhOSAUA\nAADAcEIqAAAAAIYTUgEAAAAwnJAKAAAAgOGEVAAAAAAMJ6QCAAAAYDghFQAAAADDCakAAAAAGE5I\nBQAAAMBwQioAAAAAhhNSAQAAADCckAoAAACA4YRUAAAAAAwnpAIAAABgOCEVAAAAAMMNCamq6v+u\nqquq6s+q6k1Vdd+qOrKq3l1VH59+Pmju+BdV1dVV9bGqOmWu/TFV9aFp36uqqqb2+1TVW6b2K6pq\nx+ZfJQAAAACL2vSQqqqOSfL8JDu7+5FJDklyRpJzklzW3SckuWz6nqp6+LT/EUlOTfLqqjpkGu41\nSZ6T5ITpc+rUflaSm7v7YUlekeRlm3BpAAAAANxFo6b7bUtyWFVtS/J1Sf4qyWlJLpj2X5DkSdP2\naUne3N23dvc1Sa5OcmJVHZ3k8O6+vLs7yes39Fkf6+IkJ68/ZQUAAADAwWfbZp+wu2+oql9I8pdJ\n/jrJu7r7XVW1vbtvnA77VJLt0/YxSS6fG+L6qe22aXtj+3qf66bz7amqLyY5Ksnn5mupqrOTnJ0k\n27dvz9ra2lKucbTdu3cv9Vpe+Kg9Sxvrzrqn/E3439+y7yvAfQWr4L6C5XNfwebZ9JBqWmvqtCTH\nJ/lCkl+tqqfPH9PdXVW96lq6+7wk5yXJzp07e9euXas+5aZYW1vLMq/lWedcurSx7qxrn7Zr2Llh\n3rLvK8B9BavgvoLlc1/B5hkx3e97k1zT3Z/t7tuSvDXJY5N8eprCl+nnZ6bjb0hy3Fz/Y6e2G6bt\nje136DNNKTwiyedXcjUAAAAA3G0jQqq/THJSVX3dtE7UyUk+kuSSJGdOx5yZ5G3T9iVJzpje2Hd8\nZgukv3eaGnhLVZ00jfPMDX3Wx3pKkvdM61YBAAAAcBAasSbVFVV1cZIPJNmT5E8ym3J3/yQXVdVZ\nST6Z5PTp+Kuq6qIkH56Of1533z4N99wk5yc5LMk7pk+SvDbJhVV1dZKbMns7IAAAAAAHqU0PqZKk\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(20, 10))\n", + "data_points = list(map(lambda v: question_lengths[v], question_lengths))\n", + "n, bins, patches = plt.hist(data_points, 100)\n", + "plt.xlabel('Number of tokens')\n", + "plt.ylabel('Number of questions')\n", + "plt.title('Question length frequency')\n", + "plt.grid('on')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the vast majority of questions are short. That is, they have < 20 words. This is both a good and a bad thing:\n", + "\n", + "* It's good because it means that our model won't have to parse through a bunch of irrelevant text. Consider an [example of a long-form question from stackoverflow](http://stackoverflow.com/questions/30587517/first-row-from-a-csv-file-is-a-list-of-one-string-while-the-remaining-rows-are-l?noredirect=1&lq=1). In this example, the question is \"how do I parse a csv in Python?\", but there is a ton of information that isn't really relevant to answering the question. Our model won't have to deal with that\n", + "* It's bad because there isn't a lot of contextual information that our model can pick up on, so we may mark questions as duplicates that are not actually duplicates because the question doesn't contain enough contextual information." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Conclusions from this notebook\n", + "\n", + "## Model Description\n", + "* Input: two free-text fields, which are presumably questions.\n", + "* Output: binary label, 1 if the questions are asking the same thing, 0 otherwise.\n", + "\n", + "## Dataset Description\n", + "* 400k question pairs.\n", + "* 150k examples of duplicate questions.\n", + "* 250k examples of non-duplicate questions.\n", + "* 350k distinct questions - some questions are frequently repeated.\n", + "\n", + "# Next Steps\n", + "\n", + "This is a natural language processing problem. There are some fundamental building blocks that we will need:\n", + "* Cleaning. We need to remove special characters, punctuation, lemmatize / stem the text, etc.\n", + "* Word embedding model. We can start with one-hot, but that may not be sufficient. As our corpus doesn't contain much factual text, we may look to external sources to build word embedding models [wikitext](https://metamind.io/research/the-wikitext-long-term-dependency-language-modeling-dataset/)\n", + "\n", + "Then, we can start looking at models:\n", + "* Tf/Idf cosine similarity: this should be quick and dirty. It may not perform well, but it can serve as a baseline on which to evaluate the more advanced models.\n", + "* Sequence RNN: RNNs have shown great promise in understanding these types of problems (LSTM, GRU, etc.). We have a large enough dataset that we can consider training one of these. \n", + "\n", + "In addition, we should think about ways to leverage the graph-like strucuture found in this notebook via an interative prediction algorithm. " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}