Skip to content

Instantly share code, notes, and snippets.

@brockmanmatt
Created August 4, 2020 06:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brockmanmatt/3561d2408ed42804ef4ca66f9945c143 to your computer and use it in GitHub Desktop.
Save brockmanmatt/3561d2408ed42804ef4ca66f9945c143 to your computer and use it in GitHub Desktop.
getDefinitions.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "getDefinitions.ipynb",
"provenance": [],
"collapsed_sections": [],
"authorship_tag": "ABX9TyN5T0jDdllkrVSvdeuqE4R3",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/brockmanmatt/3561d2408ed42804ef4ca66f9945c143/getdefinitions.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "J7wnsgT2kPut",
"colab_type": "code",
"colab": {
"resources": {
"http://localhost:8080/nbextensions/google.colab/files.js": {
"data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7CgpmdW5jdGlvbiBfdXBsb2FkRmlsZXMoaW5wdXRJZCwgb3V0cHV0SWQpIHsKICBjb25zdCBzdGVwcyA9IHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCk7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICAvLyBDYWNoZSBzdGVwcyBvbiB0aGUgb3V0cHV0RWxlbWVudCB0byBtYWtlIGl0IGF2YWlsYWJsZSBmb3IgdGhlIG5leHQgY2FsbAogIC8vIHRvIHVwbG9hZEZpbGVzQ29udGludWUgZnJvbSBQeXRob24uCiAgb3V0cHV0RWxlbWVudC5zdGVwcyA9IHN0ZXBzOwoKICByZXR1cm4gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpOwp9CgovLyBUaGlzIGlzIHJvdWdobHkgYW4gYXN5bmMgZ2VuZXJhdG9yIChub3Qgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyIHlldCksCi8vIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZSBhc3luY2hyb25vdXMgc3RlcHMgYW5kIHRoZSBQeXRob24gc2lkZSBpcyBnb2luZwovLyB0byBwb2xsIGZvciBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcC4KLy8gVGhpcyB1c2VzIGEgUHJvbWlzZSB0byBibG9jayB0aGUgcHl0aG9uIHNpZGUgb24gY29tcGxldGlvbiBvZiBlYWNoIHN0ZXAsCi8vIHRoZW4gcGFzc2VzIHRoZSByZXN1bHQgb2YgdGhlIHByZXZpb3VzIHN0ZXAgYXMgdGhlIGlucHV0IHRvIHRoZSBuZXh0IHN0ZXAuCmZ1bmN0aW9uIF91cGxvYWRGaWxlc0NvbnRpbnVlKG91dHB1dElkKSB7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICBjb25zdCBzdGVwcyA9IG91dHB1dEVsZW1lbnQuc3RlcHM7CgogIGNvbnN0IG5leHQgPSBzdGVwcy5uZXh0KG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSk7CiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXh0LnZhbHVlLnByb21pc2UpLnRoZW4oKHZhbHVlKSA9PiB7CiAgICAvLyBDYWNoZSB0aGUgbGFzdCBwcm9taXNlIHZhbHVlIHRvIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHRoZSBuZXh0CiAgICAvLyBzdGVwIG9mIHRoZSBnZW5lcmF0b3IuCiAgICBvdXRwdXRFbGVtZW50Lmxhc3RQcm9taXNlVmFsdWUgPSB2YWx1ZTsKICAgIHJldHVybiBuZXh0LnZhbHVlLnJlc3BvbnNlOwogIH0pOwp9CgovKioKICogR2VuZXJhdG9yIGZ1bmN0aW9uIHdoaWNoIGlzIGNhbGxlZCBiZXR3ZWVuIGVhY2ggYXN5bmMgc3RlcCBvZiB0aGUgdXBsb2FkCiAqIHByb2Nlc3MuCiAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIGlucHV0IGZpbGUgcGlja2VyIGVsZW1lbnQuCiAqIEBwYXJhbSB7c3RyaW5nfSBvdXRwdXRJZCBFbGVtZW50IElEIG9mIHRoZSBvdXRwdXQgZGlzcGxheS4KICogQHJldHVybiB7IUl0ZXJhYmxlPCFPYmplY3Q+fSBJdGVyYWJsZSBvZiBuZXh0IHN0ZXBzLgogKi8KZnVuY3Rpb24qIHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0SWQpOwogIGlucHV0RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlOwoKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIG91dHB1dEVsZW1lbnQuaW5uZXJIVE1MID0gJyc7CgogIGNvbnN0IHBpY2tlZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7CiAgICAgIHJlc29sdmUoZS50YXJnZXQuZmlsZXMpOwogICAgfSk7CiAgfSk7CgogIGNvbnN0IGNhbmNlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogIGlucHV0RWxlbWVudC5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNhbmNlbCk7CiAgY2FuY2VsLnRleHRDb250ZW50ID0gJ0NhbmNlbCB1cGxvYWQnOwogIGNvbnN0IGNhbmNlbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgY2FuY2VsLm9uY2xpY2sgPSAoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9OwogIH0pOwoKICAvLyBXYWl0IGZvciB0aGUgdXNlciB0byBwaWNrIHRoZSBmaWxlcy4KICBjb25zdCBmaWxlcyA9IHlpZWxkIHsKICAgIHByb21pc2U6IFByb21pc2UucmFjZShbcGlja2VkUHJvbWlzZSwgY2FuY2VsUHJvbWlzZV0pLAogICAgcmVzcG9uc2U6IHsKICAgICAgYWN0aW9uOiAnc3RhcnRpbmcnLAogICAgfQogIH07CgogIGNhbmNlbC5yZW1vdmUoKTsKCiAgLy8gRGlzYWJsZSB0aGUgaW5wdXQgZWxlbWVudCBzaW5jZSBmdXJ0aGVyIHBpY2tzIGFyZSBub3QgYWxsb3dlZC4KICBpbnB1dEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOwoKICBpZiAoIWZpbGVzKSB7CiAgICByZXR1cm4gewogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgICAgfQogICAgfTsKICB9CgogIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykgewogICAgY29uc3QgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwogICAgbGkuYXBwZW5kKHNwYW4oZmlsZS5uYW1lLCB7Zm9udFdlaWdodDogJ2JvbGQnfSkpOwogICAgbGkuYXBwZW5kKHNwYW4oCiAgICAgICAgYCgke2ZpbGUudHlwZSB8fCAnbi9hJ30pIC0gJHtmaWxlLnNpemV9IGJ5dGVzLCBgICsKICAgICAgICBgbGFzdCBtb2RpZmllZDogJHsKICAgICAgICAgICAgZmlsZS5sYXN0TW9kaWZpZWREYXRlID8gZmlsZS5sYXN0TW9kaWZpZWREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ24vYSd9IC0gYCkpOwogICAgY29uc3QgcGVyY2VudCA9IHNwYW4oJzAlIGRvbmUnKTsKICAgIGxpLmFwcGVuZENoaWxkKHBlcmNlbnQpOwoKICAgIG91dHB1dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGkpOwoKICAgIGNvbnN0IGZpbGVEYXRhUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4gewogICAgICAgIHJlc29sdmUoZS50YXJnZXQucmVzdWx0KTsKICAgICAgfTsKICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpOwogICAgfSk7CiAgICAvLyBXYWl0IGZvciB0aGUgZGF0YSB0byBiZSByZWFkeS4KICAgIGxldCBmaWxlRGF0YSA9IHlpZWxkIHsKICAgICAgcHJvbWlzZTogZmlsZURhdGFQcm9taXNlLAogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbnRpbnVlJywKICAgICAgfQogICAgfTsKCiAgICAvLyBVc2UgYSBjaHVua2VkIHNlbmRpbmcgdG8gYXZvaWQgbWVzc2FnZSBzaXplIGxpbWl0cy4gU2VlIGIvNjIxMTU2NjAuCiAgICBsZXQgcG9zaXRpb24gPSAwOwogICAgd2hpbGUgKHBvc2l0aW9uIDwgZmlsZURhdGEuYnl0ZUxlbmd0aCkgewogICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihmaWxlRGF0YS5ieXRlTGVuZ3RoIC0gcG9zaXRpb24sIE1BWF9QQVlMT0FEX1NJWkUpOwogICAgICBjb25zdCBjaHVuayA9IG5ldyBVaW50OEFycmF5KGZpbGVEYXRhLCBwb3NpdGlvbiwgbGVuZ3RoKTsKICAgICAgcG9zaXRpb24gKz0gbGVuZ3RoOwoKICAgICAgY29uc3QgYmFzZTY0ID0gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGNodW5rKSk7CiAgICAgIHlpZWxkIHsKICAgICAgICByZXNwb25zZTogewogICAgICAgICAgYWN0aW9uOiAnYXBwZW5kJywKICAgICAgICAgIGZpbGU6IGZpbGUubmFtZSwKICAgICAgICAgIGRhdGE6IGJhc2U2NCwKICAgICAgICB9LAogICAgICB9OwogICAgICBwZXJjZW50LnRleHRDb250ZW50ID0KICAgICAgICAgIGAke01hdGgucm91bmQoKHBvc2l0aW9uIC8gZmlsZURhdGEuYnl0ZUxlbmd0aCkgKiAxMDApfSUgZG9uZWA7CiAgICB9CiAgfQoKICAvLyBBbGwgZG9uZS4KICB5aWVsZCB7CiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICB9CiAgfTsKfQoKc2NvcGUuZ29vZ2xlID0gc2NvcGUuZ29vZ2xlIHx8IHt9OwpzY29wZS5nb29nbGUuY29sYWIgPSBzY29wZS5nb29nbGUuY29sYWIgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYi5fZmlsZXMgPSB7CiAgX3VwbG9hZEZpbGVzLAogIF91cGxvYWRGaWxlc0NvbnRpbnVlLAp9Owp9KShzZWxmKTsK",
"ok": true,
"headers": [
[
"content-type",
"application/javascript"
]
],
"status": 200,
"status_text": ""
}
},
"base_uri": "https://localhost:8080/",
"height": 89
},
"outputId": "9fea155c-a5bf-482e-e87c-6e1d6dc71661"
},
"source": [
"from google.colab import files\n",
"uploaded = files.upload()\n",
"print(\"done\")"
],
"execution_count": 1,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"\n",
" <input type=\"file\" id=\"files-b6ec0ae3-916b-4802-8b3e-b8d76152d204\" name=\"files[]\" multiple disabled\n",
" style=\"border:none\" />\n",
" <output id=\"result-b6ec0ae3-916b-4802-8b3e-b8d76152d204\">\n",
" Upload widget is only available when the cell has been executed in the\n",
" current browser session. Please rerun this cell to enable.\n",
" </output>\n",
" <script src=\"/nbextensions/google.colab/files.js\"></script> "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Saving key.json to key.json\n",
"done\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WHPHrUnhpKnI",
"colab_type": "text"
},
"source": [
"I'll install the API"
]
},
{
"cell_type": "code",
"metadata": {
"id": "zq0ltp2xn4yt",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 139
},
"outputId": "516d42d6-03f7-46b0-d37c-fe8acc50dfc2"
},
"source": [
"!pip install openai\n",
"import openai, json, pandas as pd, numpy as np, random, datetime"
],
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"text": [
"Requirement already satisfied: openai in /usr/local/lib/python3.6/dist-packages (0.2.4)\n",
"Requirement already satisfied: requests>=2.20; python_version >= \"3.0\" in /usr/local/lib/python3.6/dist-packages (from openai) (2.23.0)\n",
"Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests>=2.20; python_version >= \"3.0\"->openai) (3.0.4)\n",
"Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests>=2.20; python_version >= \"3.0\"->openai) (1.24.3)\n",
"Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests>=2.20; python_version >= \"3.0\"->openai) (2.10)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests>=2.20; python_version >= \"3.0\"->openai) (2020.6.20)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "k67w5H0fpTkT",
"colab_type": "text"
},
"source": [
"args to pass API; one for 1 line 1 for 2 line"
]
},
{
"cell_type": "code",
"metadata": {
"id": "ARvC2UkWJKNa",
"colab_type": "code",
"colab": {}
},
"source": [
"openai.api_key = json.load(open(\"key.json\", \"r\"))[\"key\"]"
],
"execution_count": 3,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "anY9YHfjJMXK",
"colab_type": "code",
"colab": {}
},
"source": [
"def query(prompt, kwargs):\n",
" \"\"\"\n",
" wrapper for the API\n",
" \"\"\"\n",
" r = openai.Completion.create(prompt=prompt, **kwargs)[\"choices\"][0][\"text\"].strip()\n",
" with open(\"{}.json\".format(datetime.datetime.now().strftime(\"%Y%m%d%s\")), \"w\") as fh:\n",
" json.dump({\"prompt\":prompt, \"response\":r}, fh, indent=4)\n",
" return r"
],
"execution_count": 10,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "TMLgfr-LJe9g",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
},
"outputId": "7f99bb9b-511f-42c2-b32b-09ee05ec966e"
},
"source": [
"kwargs = { \"engine\":\"davinci\", \"temperature\":0, \"max_tokens\":15, \"stop\":\"\\n\", }\n",
"query(\"q: what is 1+1?\\na:\", kwargs)"
],
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "string"
},
"text/plain": [
"'2'"
]
},
"metadata": {
"tags": []
},
"execution_count": 12
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Er3Z_SvHJnku",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": 9,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "SBI-d4stJ1wr",
"colab_type": "text"
},
"source": [
"# Download WIC dataset"
]
},
{
"cell_type": "code",
"metadata": {
"id": "hcXrSm3UKGj8",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 204
},
"outputId": "02b2bf9d-310d-461d-fd89-74cf1fbe9fe9"
},
"source": [
"!wget https://pilehvar.github.io/wic/package/WiC_dataset.zip"
],
"execution_count": 17,
"outputs": [
{
"output_type": "stream",
"text": [
"--2020-08-03 21:09:29-- https://pilehvar.github.io/wic/package/WiC_dataset.zip\n",
"Resolving pilehvar.github.io (pilehvar.github.io)... 185.199.108.153, 185.199.109.153, 185.199.110.153, ...\n",
"Connecting to pilehvar.github.io (pilehvar.github.io)|185.199.108.153|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 275513 (269K) [application/zip]\n",
"Saving to: ‘WiC_dataset.zip’\n",
"\n",
"\rWiC_dataset.zip 0%[ ] 0 --.-KB/s \rWiC_dataset.zip 100%[===================>] 269.06K --.-KB/s in 0.03s \n",
"\n",
"2020-08-03 21:09:29 (7.62 MB/s) - ‘WiC_dataset.zip’ saved [275513/275513]\n",
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Gx-SlrBpSVXJ",
"colab_type": "code",
"colab": {}
},
"source": [
"import zipfile\n",
"with zipfile.ZipFile(\"WiC_dataset.zip\",\"r\") as zip_ref:\n",
" zip_ref.extractall(\".\")\n"
],
"execution_count": 18,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab_type": "code",
"id": "CAHaOQKx9ogG",
"colab": {}
},
"source": [
"train = pd.read_csv(\"train/train.data.txt\", sep='\\t', header=None)\n",
"train.columns = [\"target\", \"pos\", \"position\", \"context-1\", \"context-2\"]\n",
"train_gold = pd.read_csv(\"train/train.gold.txt\", sep='\\t', header=None)\n",
"train_gold.columns = [\"label\"]\n",
"train = pd.concat([train_gold,train], axis=1)"
],
"execution_count": 19,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "rDcJlsrnJ48D",
"colab_type": "text"
},
"source": [
"# set my mini-train from train"
]
},
{
"cell_type": "code",
"metadata": {
"id": "g6FxC-4jJ-yh",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 359
},
"outputId": "499113f9-654f-415d-f596-e40094b79a35"
},
"source": [
"miniTrain = train[train.pos==\"N\"][:10].copy()\n",
"miniTrain"
],
"execution_count": 21,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>label</th>\n",
" <th>target</th>\n",
" <th>pos</th>\n",
" <th>position</th>\n",
" <th>context-1</th>\n",
" <th>context-2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>T</td>\n",
" <td>cup</td>\n",
" <td>N</td>\n",
" <td>8-4</td>\n",
" <td>He wore a jock strap with a metal cup .</td>\n",
" <td>Bees filled the waxen cups with honey .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>F</td>\n",
" <td>academy</td>\n",
" <td>N</td>\n",
" <td>1-2</td>\n",
" <td>The Academy of Music .</td>\n",
" <td>The French Academy .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>T</td>\n",
" <td>clearance</td>\n",
" <td>N</td>\n",
" <td>2-3</td>\n",
" <td>He got clearance to travel to America , even t...</td>\n",
" <td>The plane got clearance from air traffic contr...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>T</td>\n",
" <td>coverage</td>\n",
" <td>N</td>\n",
" <td>13-3</td>\n",
" <td>Before laying sod on that clay , the ground ne...</td>\n",
" <td>The dictionary 's coverage of standard English...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>F</td>\n",
" <td>death</td>\n",
" <td>N</td>\n",
" <td>1-3</td>\n",
" <td>Her death came as a terrible shock .</td>\n",
" <td>He had two deaths on his conscience .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>F</td>\n",
" <td>despite</td>\n",
" <td>N</td>\n",
" <td>1-5</td>\n",
" <td>The despite in which outsiders were held is le...</td>\n",
" <td>She wanted neither favor nor despite .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>T</td>\n",
" <td>school</td>\n",
" <td>N</td>\n",
" <td>1-5</td>\n",
" <td>A school of small glittering fish swam by .</td>\n",
" <td>The divers encountered a huge school of macker...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>T</td>\n",
" <td>action</td>\n",
" <td>N</td>\n",
" <td>11-2</td>\n",
" <td>The United Nations must have the power to prop...</td>\n",
" <td>Recent federal action undermined the segregati...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>F</td>\n",
" <td>shock</td>\n",
" <td>N</td>\n",
" <td>5-8</td>\n",
" <td>The armies met in the shock of battle .</td>\n",
" <td>The train hit the buffers with a great shock .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>F</td>\n",
" <td>end</td>\n",
" <td>N</td>\n",
" <td>8-1</td>\n",
" <td>The so-called glorious experiment came to an i...</td>\n",
" <td>The end was exciting .</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" label ... context-2\n",
"3 T ... Bees filled the waxen cups with honey .\n",
"4 F ... The French Academy .\n",
"9 T ... The plane got clearance from air traffic contr...\n",
"11 T ... The dictionary 's coverage of standard English...\n",
"12 F ... He had two deaths on his conscience .\n",
"13 F ... She wanted neither favor nor despite .\n",
"14 T ... The divers encountered a huge school of macker...\n",
"16 T ... Recent federal action undermined the segregati...\n",
"19 F ... The train hit the buffers with a great shock .\n",
"22 F ... The end was exciting .\n",
"\n",
"[10 rows x 6 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 21
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "DhQ1EwkLNwl8",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 139
},
"outputId": "f22045bf-aaf5-40fa-d11c-44ee9b8d3c6b"
},
"source": [
"print(\"||{}||\".format(\"||\".join(miniTest.columns[:6])))\n",
"for row in miniTest[miniTest.columns[:6]].iterrows():\n",
" print (\"||{}||\".format(\"||\".join([x for x in row[1]])))"
],
"execution_count": 60,
"outputs": [
{
"output_type": "stream",
"text": [
"||label||target||pos||position||context-1||context-2||\n",
"||F||motion||N||5-3||The cinema relies on apparent motion .||He made a motion to adjourn .||\n",
"||T||night||N||4-5||It vanished into the night .||The cat disappeared into the night .||\n",
"||F||air||N||6-6||He threw the ball into the air .||A smell of chemicals in the air .||\n",
"||T||sign||N||4-0||Those clouds show little sign of raining soon .||Signs of disease are objective , whereas symptoms are subjective .||\n",
"||T||bed||N||8-4||We added a new rosebush to our rose bed .||The gardener planted a bed of roses .||\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "bA100nyxKDHj",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 238
},
"outputId": "fa781887-5d68-485f-f665-3389e0bc6961"
},
"source": [
"miniTest = train[train.pos==\"N\"][-10:-5].copy()\n",
"miniTest"
],
"execution_count": 43,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>label</th>\n",
" <th>target</th>\n",
" <th>pos</th>\n",
" <th>position</th>\n",
" <th>context-1</th>\n",
" <th>context-2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5412</th>\n",
" <td>F</td>\n",
" <td>motion</td>\n",
" <td>N</td>\n",
" <td>5-3</td>\n",
" <td>The cinema relies on apparent motion .</td>\n",
" <td>He made a motion to adjourn .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5414</th>\n",
" <td>T</td>\n",
" <td>night</td>\n",
" <td>N</td>\n",
" <td>4-5</td>\n",
" <td>It vanished into the night .</td>\n",
" <td>The cat disappeared into the night .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5416</th>\n",
" <td>F</td>\n",
" <td>air</td>\n",
" <td>N</td>\n",
" <td>6-6</td>\n",
" <td>He threw the ball into the air .</td>\n",
" <td>A smell of chemicals in the air .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5418</th>\n",
" <td>T</td>\n",
" <td>sign</td>\n",
" <td>N</td>\n",
" <td>4-0</td>\n",
" <td>Those clouds show little sign of raining soon .</td>\n",
" <td>Signs of disease are objective , whereas symptoms are subjective .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5420</th>\n",
" <td>T</td>\n",
" <td>bed</td>\n",
" <td>N</td>\n",
" <td>8-4</td>\n",
" <td>We added a new rosebush to our rose bed .</td>\n",
" <td>The gardener planted a bed of roses .</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" label ... context-2\n",
"5412 F ... He made a motion to adjourn .\n",
"5414 T ... The cat disappeared into the night .\n",
"5416 F ... A smell of chemicals in the air .\n",
"5418 T ... Signs of disease are objective , whereas symptoms are subjective .\n",
"5420 T ... The gardener planted a bed of roses .\n",
"\n",
"[5 rows x 6 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 43
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "_QjI4S2RKVSJ",
"colab_type": "text"
},
"source": [
"# Start with naive query"
]
},
{
"cell_type": "code",
"metadata": {
"id": "056ON7e-KOze",
"colab_type": "code",
"colab": {}
},
"source": [
"def getDefinition(term):\n",
" prompt = \"\"\"Q: What does {} mean?\\nA:\"\"\".format(term)\n",
" \n",
" kwargs = { \"engine\":\"davinci\", \"temperature\":0, \"max_tokens\":15, \"stop\":\"\\n\", }\n",
" return query(prompt, kwargs)"
],
"execution_count": 44,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "JRDcpjqHKdjz",
"colab_type": "code",
"colab": {}
},
"source": [
"for row in miniTest.iterrows():\n",
" miniTest.at[row[0], \"def\"] = getDefinition(row[1][\"target\"])"
],
"execution_count": 45,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "kvFrXQezLE5K",
"colab_type": "code",
"colab": {}
},
"source": [
"pd.set_option('max_colwidth', 100)"
],
"execution_count": 46,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "OKQAT7mwKzWS",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 272
},
"outputId": "09aec717-7c01-434d-cef3-ee3cd889e74d"
},
"source": [
"miniTest[[\"target\", \"context-1\", \"context-2\", \"def\"]]"
],
"execution_count": 47,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>target</th>\n",
" <th>context-1</th>\n",
" <th>context-2</th>\n",
" <th>def</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5412</th>\n",
" <td>motion</td>\n",
" <td>The cinema relies on apparent motion .</td>\n",
" <td>He made a motion to adjourn .</td>\n",
" <td>Motion is the change in position of an object over time.</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5414</th>\n",
" <td>night</td>\n",
" <td>It vanished into the night .</td>\n",
" <td>The cat disappeared into the night .</td>\n",
" <td>Night is the time when the sun is not shining.</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5416</th>\n",
" <td>air</td>\n",
" <td>He threw the ball into the air .</td>\n",
" <td>A smell of chemicals in the air .</td>\n",
" <td>Air is a measurement of how much space is between the top of the tire</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5418</th>\n",
" <td>sign</td>\n",
" <td>Those clouds show little sign of raining soon .</td>\n",
" <td>Signs of disease are objective , whereas symptoms are subjective .</td>\n",
" <td>It means that the person is a member of the sign.</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5420</th>\n",
" <td>bed</td>\n",
" <td>We added a new rosebush to our rose bed .</td>\n",
" <td>The gardener planted a bed of roses .</td>\n",
" <td>Bed is a slang term for a place where you sleep.</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" target ... def\n",
"5412 motion ... Motion is the change in position of an object over time.\n",
"5414 night ... Night is the time when the sun is not shining.\n",
"5416 air ... Air is a measurement of how much space is between the top of the tire\n",
"5418 sign ... It means that the person is a member of the sign.\n",
"5420 bed ... Bed is a slang term for a place where you sleep.\n",
"\n",
"[5 rows x 4 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 47
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "LhFzjtWSL8ih",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 139
},
"outputId": "76cf8d7f-0f62-4b20-a450-a4a7af95df07"
},
"source": [
"print(\"||{}||\".format(\"||\".join(miniTest[[\"target\", \"context-1\", \"context-2\", \"def\"]].columns)))\n",
"for row in miniTest[[\"target\", \"context-1\", \"context-2\", \"def\"]].iterrows():\n",
" print (\"||{}||\".format(\"||\".join([x for x in row[1]])))"
],
"execution_count": 57,
"outputs": [
{
"output_type": "stream",
"text": [
"||target||context-1||context-2||def||\n",
"||motion||The cinema relies on apparent motion .||He made a motion to adjourn .||Motion is the change in position of an object over time.||\n",
"||night||It vanished into the night .||The cat disappeared into the night .||Night is the time when the sun is not shining.||\n",
"||air||He threw the ball into the air .||A smell of chemicals in the air .||Air is a measurement of how much space is between the top of the tire||\n",
"||sign||Those clouds show little sign of raining soon .||Signs of disease are objective , whereas symptoms are subjective .||It means that the person is a member of the sign.||\n",
"||bed||We added a new rosebush to our rose bed .||The gardener planted a bed of roses .||Bed is a slang term for a place where you sleep.||\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "f7v9oftfK43T",
"colab_type": "code",
"colab": {}
},
"source": [
"def getDefinitionInContext(context, term):\n",
" prompt = \"\"\"Context: {}\n",
"Q: What does {} mean?\\nA:\"\"\".format(context, term)\n",
"\n",
" kwargs = { \"engine\":\"davinci\", \"temperature\":0, \"max_tokens\":15, \"stop\":\"\\n\", }\n",
" return query(prompt, kwargs)"
],
"execution_count": 48,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "kk3Ka8lVLagT",
"colab_type": "code",
"colab": {}
},
"source": [
"for row in miniTest.iterrows():\n",
" miniTest.at[row[0], \"context1Def\"] = getDefinitionInContext(row[1][\"context-1\"], row[1][\"target\"])\n",
" miniTest.at[row[0], \"context2Def\"] = getDefinitionInContext(row[1][\"context-2\"], row[1][\"target\"])"
],
"execution_count": 50,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "CdqT2VthLS5l",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 323
},
"outputId": "b7c06e0d-a006-4330-d140-290bfd4531dd"
},
"source": [
"miniTest[[\"target\", \"label\", \"context-1\", \"context-2\", \"context1Def\", \"context2Def\"]]"
],
"execution_count": 51,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>target</th>\n",
" <th>label</th>\n",
" <th>context-1</th>\n",
" <th>context-2</th>\n",
" <th>context1Def</th>\n",
" <th>context2Def</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5412</th>\n",
" <td>motion</td>\n",
" <td>F</td>\n",
" <td>The cinema relies on apparent motion .</td>\n",
" <td>He made a motion to adjourn .</td>\n",
" <td>The apparent movement of objects in a series of still images.</td>\n",
" <td>It means to ask for something.</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5414</th>\n",
" <td>night</td>\n",
" <td>T</td>\n",
" <td>It vanished into the night .</td>\n",
" <td>The cat disappeared into the night .</td>\n",
" <td>It means the time between sunset and sunrise.</td>\n",
" <td>It's a noun.</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5416</th>\n",
" <td>air</td>\n",
" <td>F</td>\n",
" <td>He threw the ball into the air .</td>\n",
" <td>A smell of chemicals in the air .</td>\n",
" <td>It means the sky.</td>\n",
" <td>Air is a gas.</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5418</th>\n",
" <td>sign</td>\n",
" <td>T</td>\n",
" <td>Those clouds show little sign of raining soon .</td>\n",
" <td>Signs of disease are objective , whereas symptoms are subjective .</td>\n",
" <td>sign = a signal or indication</td>\n",
" <td>A sign is something that is observed and measured.</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5420</th>\n",
" <td>bed</td>\n",
" <td>T</td>\n",
" <td>We added a new rosebush to our rose bed .</td>\n",
" <td>The gardener planted a bed of roses .</td>\n",
" <td>Bed is a noun. It is a place where you sleep.</td>\n",
" <td>A place where you sleep.</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" target ... context2Def\n",
"5412 motion ... It means to ask for something.\n",
"5414 night ... It's a noun.\n",
"5416 air ... Air is a gas.\n",
"5418 sign ... A sign is something that is observed and measured.\n",
"5420 bed ... A place where you sleep.\n",
"\n",
"[5 rows x 6 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 51
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "7jJ-fZEBLl9R",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 139
},
"outputId": "290944f8-fb73-4341-fdb4-6b4e10ce77e5"
},
"source": [
"print(\"||{}||\".format(\"||\".join(miniTest[[\"target\", \"label\", \"context-1\", \"context-2\", \"context1Def\", \"context2Def\"]].columns)))\n",
"for row in miniTest[[\"target\", \"label\", \"context-1\", \"context-2\", \"context1Def\", \"context2Def\"]].iterrows():\n",
" print (\"||{}||\".format(\"||\".join([x for x in row[1]])))"
],
"execution_count": 58,
"outputs": [
{
"output_type": "stream",
"text": [
"||target||label||context-1||context-2||context1Def||context2Def||\n",
"||motion||F||The cinema relies on apparent motion .||He made a motion to adjourn .||The apparent movement of objects in a series of still images.||It means to ask for something.||\n",
"||night||T||It vanished into the night .||The cat disappeared into the night .||It means the time between sunset and sunrise.||It's a noun.||\n",
"||air||F||He threw the ball into the air .||A smell of chemicals in the air .||It means the sky.||Air is a gas.||\n",
"||sign||T||Those clouds show little sign of raining soon .||Signs of disease are objective , whereas symptoms are subjective .||sign = a signal or indication||A sign is something that is observed and measured.||\n",
"||bed||T||We added a new rosebush to our rose bed .||The gardener planted a bed of roses .||Bed is a noun. It is a place where you sleep.||A place where you sleep.||\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "3w3nOujiV7QE",
"colab_type": "text"
},
"source": [
"#add fewshot"
]
},
{
"cell_type": "code",
"metadata": {
"id": "jxoljcmBM3ym",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 238
},
"outputId": "59c06405-450f-4940-9de8-76dcd5241422"
},
"source": [
"train[train.pos==\"N\"][:5]"
],
"execution_count": 76,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>label</th>\n",
" <th>target</th>\n",
" <th>pos</th>\n",
" <th>position</th>\n",
" <th>context-1</th>\n",
" <th>context-2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>T</td>\n",
" <td>cup</td>\n",
" <td>N</td>\n",
" <td>8-4</td>\n",
" <td>He wore a jock strap with a metal cup .</td>\n",
" <td>Bees filled the waxen cups with honey .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>F</td>\n",
" <td>academy</td>\n",
" <td>N</td>\n",
" <td>1-2</td>\n",
" <td>The Academy of Music .</td>\n",
" <td>The French Academy .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>T</td>\n",
" <td>clearance</td>\n",
" <td>N</td>\n",
" <td>2-3</td>\n",
" <td>He got clearance to travel to America , even though he had previous links to terrorists .</td>\n",
" <td>The plane got clearance from air traffic control , and we were off .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>T</td>\n",
" <td>coverage</td>\n",
" <td>N</td>\n",
" <td>13-3</td>\n",
" <td>Before laying sod on that clay , the ground needs two inches of coverage with topsoil .</td>\n",
" <td>The dictionary 's coverage of standard English is excellent .</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>F</td>\n",
" <td>death</td>\n",
" <td>N</td>\n",
" <td>1-3</td>\n",
" <td>Her death came as a terrible shock .</td>\n",
" <td>He had two deaths on his conscience .</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" label ... context-2\n",
"3 T ... Bees filled the waxen cups with honey .\n",
"4 F ... The French Academy .\n",
"9 T ... The plane got clearance from air traffic control , and we were off .\n",
"11 T ... The dictionary 's coverage of standard English is excellent .\n",
"12 F ... He had two deaths on his conscience .\n",
"\n",
"[5 rows x 6 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 76
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "_xibxIOaWHNP",
"colab_type": "code",
"colab": {}
},
"source": [
"fewShot = \"Provide the definition for each word in the context of the preceeding sentance\\n\\n\"\n",
"for row in train[train.pos==\"N\"][:5].iterrows():\n",
" fewShot += \"Context: {}\\n\".format(row[1][\"context-1\"])\n",
" fewShot += \"Q: What is a {}?\\nA:\\n\\n\".format(row[1][\"target\"])\n",
" fewShot += \"Context: {}\\n\".format(row[1][\"context-2\"])\n",
" fewShot += \"Q: What is a {}?\\nA:\\n\\n\".format(row[1][\"target\"])\n"
],
"execution_count": 83,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "tnTqCcKZWzJ8",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": 86,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "nHya2E_HWBzv",
"colab_type": "code",
"colab": {}
},
"source": [
"def getDefinitionInContextFewShot(context, term):\n",
" fewShot = \"\"\"Provide the definition for each word in the context of the preceeding sentance\n",
"\n",
"Context: He wore a jock strap with a metal cup .\n",
"Q: What does cup mean?\n",
"A: something that contains\n",
"\n",
"Context: Bees filled the waxen cups with honey .\n",
"Q: What does cup mean?\n",
"A: something that contains\n",
"\n",
"Context: The Academy of Music .\n",
"Q: What does academy mean?\n",
"A: a place\n",
"\n",
"Context: The French Academy .\n",
"Q: What does academy mean?\n",
"A: a society\n",
"\n",
"Context: He got clearance to travel to America , even though he had previous links to terrorists .\n",
"Q: What does clearance mean?\n",
"A: permission\n",
"\n",
"Context: The plane got clearance from air traffic control , and we were off .\n",
"Q: What does clearance mean?\n",
"A: permission\n",
"\n",
"Context: Before laying sod on that clay , the ground needs two inches of coverage with topsoil .\n",
"Q: What does coverage mean?\n",
"A: the thing covering\n",
"\n",
"Context: The dictionary 's coverage of standard English is excellent .\n",
"Q: What does coverage mean?\n",
"A: the thing covered\n",
"\n",
"Context: Her death came as a terrible shock .\n",
"Q: What does death mean?\n",
"A: an event in time\n",
"\n",
"Context: He had two deaths on his conscience .\n",
"Q: What does death mean?\n",
"A: an act\n",
"\n",
"\"\"\"\n",
" prompt = \"\"\"Context: {}\n",
"Q: What does {} mean?\\nA:\"\"\".format(context, term)\n",
"\n",
" kwargs = { \"engine\":\"davinci\", \"temperature\":0, \"max_tokens\":15, \"stop\":\"\\n\", }\n",
" return query(fewShot + prompt, kwargs)"
],
"execution_count": 87,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "5QYVzC3lY2Bn",
"colab_type": "code",
"colab": {}
},
"source": [
"for row in miniTest.iterrows():\n",
" miniTest.at[row[0], \"context1Def\"] = getDefinitionInContextFewShot(row[1][\"context-1\"], row[1][\"target\"])\n",
" miniTest.at[row[0], \"context2Def\"] = getDefinitionInContextFewShot(row[1][\"context-2\"], row[1][\"target\"])"
],
"execution_count": 88,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "fEL5XNOIY9IZ",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 391
},
"outputId": "44198760-b76c-4dbb-a512-76149ac94ccb"
},
"source": [
"miniTest"
],
"execution_count": 90,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>label</th>\n",
" <th>target</th>\n",
" <th>pos</th>\n",
" <th>position</th>\n",
" <th>context-1</th>\n",
" <th>context-2</th>\n",
" <th>def</th>\n",
" <th>context1Def</th>\n",
" <th>context2Def</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5412</th>\n",
" <td>F</td>\n",
" <td>motion</td>\n",
" <td>N</td>\n",
" <td>5-3</td>\n",
" <td>The cinema relies on apparent motion .</td>\n",
" <td>He made a motion to adjourn .</td>\n",
" <td>Motion is the change in position of an object over time.</td>\n",
" <td>a change in position</td>\n",
" <td>a proposal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5414</th>\n",
" <td>T</td>\n",
" <td>night</td>\n",
" <td>N</td>\n",
" <td>4-5</td>\n",
" <td>It vanished into the night .</td>\n",
" <td>The cat disappeared into the night .</td>\n",
" <td>Night is the time when the sun is not shining.</td>\n",
" <td>a period of time</td>\n",
" <td>a period of time</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5416</th>\n",
" <td>F</td>\n",
" <td>air</td>\n",
" <td>N</td>\n",
" <td>6-6</td>\n",
" <td>He threw the ball into the air .</td>\n",
" <td>A smell of chemicals in the air .</td>\n",
" <td>Air is a measurement of how much space is between the top of the tire</td>\n",
" <td>the substance around us</td>\n",
" <td>the substance around us</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5418</th>\n",
" <td>T</td>\n",
" <td>sign</td>\n",
" <td>N</td>\n",
" <td>4-0</td>\n",
" <td>Those clouds show little sign of raining soon .</td>\n",
" <td>Signs of disease are objective , whereas symptoms are subjective .</td>\n",
" <td>It means that the person is a member of the sign.</td>\n",
" <td>a symbol</td>\n",
" <td>a signal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5420</th>\n",
" <td>T</td>\n",
" <td>bed</td>\n",
" <td>N</td>\n",
" <td>8-4</td>\n",
" <td>We added a new rosebush to our rose bed .</td>\n",
" <td>The gardener planted a bed of roses .</td>\n",
" <td>Bed is a slang term for a place where you sleep.</td>\n",
" <td>a place</td>\n",
" <td>a place</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" label target ... context1Def context2Def\n",
"5412 F motion ... a change in position a proposal\n",
"5414 T night ... a period of time a period of time\n",
"5416 F air ... the substance around us the substance around us\n",
"5418 T sign ... a symbol a signal\n",
"5420 T bed ... a place a place\n",
"\n",
"[5 rows x 9 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 90
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "iWpiXAcyY43O",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 139
},
"outputId": "5fe88863-869a-452e-8dca-2a7d8ec0b7c7"
},
"source": [
"print(\"||{}||\".format(\"||\".join(miniTest[[\"target\", \"label\", \"context-1\", \"context-2\", \"context1Def\", \"context2Def\"]].columns)))\n",
"for row in miniTest[[\"target\", \"label\", \"context-1\", \"context-2\", \"context1Def\", \"context2Def\"]].iterrows():\n",
" print (\"||{}||\".format(\"||\".join([x for x in row[1]])))"
],
"execution_count": 89,
"outputs": [
{
"output_type": "stream",
"text": [
"||target||label||context-1||context-2||context1Def||context2Def||\n",
"||motion||F||The cinema relies on apparent motion .||He made a motion to adjourn .||a change in position||a proposal||\n",
"||night||T||It vanished into the night .||The cat disappeared into the night .||a period of time||a period of time||\n",
"||air||F||He threw the ball into the air .||A smell of chemicals in the air .||the substance around us||the substance around us||\n",
"||sign||T||Those clouds show little sign of raining soon .||Signs of disease are objective , whereas symptoms are subjective .||a symbol||a signal||\n",
"||bed||T||We added a new rosebush to our rose bed .||The gardener planted a bed of roses .||a place||a place||\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "MsjDb9T1Y8Wt",
"colab_type": "code",
"colab": {}
},
"source": [
"def getDefinitionInContextFewShot(context, term):\n",
" fewShot = \"\"\"Provide the definition for each word in the context of the preceeding sentance\n",
"\n",
"Context: He wore a jock strap with a metal cup .\n",
"Q: What is the sense of 'cup'?\n",
"A: something that contains\n",
"\n",
"Context: Bees filled the waxen cups with honey .\n",
"Q: What is the sense of 'cup'?\n",
"A: something that contains\n",
"\n",
"Context: The Academy of Music .\n",
"Q: What is the sense of 'academy'?\n",
"A: a place\n",
"\n",
"Context: The French Academy .\n",
"Q: What is the sense of 'academy'?\n",
"A: a society\n",
"\n",
"Context: He got clearance to travel to America , even though he had previous links to terrorists .\n",
"Q: What is the sense of 'clearance'?\n",
"A: permission\n",
"\n",
"Context: The plane got clearance from air traffic control , and we were off .\n",
"Q: What is the sense of 'clearance'?\n",
"A: permission\n",
"\n",
"Context: Before laying sod on that clay , the ground needs two inches of coverage with topsoil .\n",
"Q: What is the sense of 'coverage'?\n",
"A: the thing covering\n",
"\n",
"Context: The dictionary 's coverage of standard English is excellent .\n",
"Q: What is the sense of 'coverage'?\n",
"A: the thing covered\n",
"\n",
"Context: Her death came as a terrible shock .\n",
"Q: What is the sense of 'death'?\n",
"A: an event in time\n",
"\n",
"Context: He had two deaths on his conscience .\n",
"Q: What is the sense of 'death'?\n",
"A: an act\n",
"\n",
"\"\"\"\n",
" prompt = \"\"\"Context: {}\n",
"Q: What is the sense of '{}'?\\nA:\"\"\".format(context, term)\n",
"\n",
" kwargs = { \"engine\":\"davinci\", \"temperature\":0, \"max_tokens\":15, \"stop\":\"\\n\", }\n",
" return query(fewShot + prompt, kwargs)"
],
"execution_count": 107,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "MAaGJK4Zcd0j",
"colab_type": "code",
"colab": {}
},
"source": [
"for row in miniTest.iterrows():\n",
" miniTest.at[row[0], \"context1Def\"] = getDefinitionInContextFewShot(row[1][\"context-1\"], row[1][\"target\"])\n",
" miniTest.at[row[0], \"context2Def\"] = getDefinitionInContextFewShot(row[1][\"context-2\"], row[1][\"target\"])"
],
"execution_count": 92,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "srmjdTOpcfMm",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 139
},
"outputId": "2e126d31-6ba8-4de3-abbf-d364ff3b205f"
},
"source": [
"print(\"||{}||\".format(\"||\".join(miniTest[[\"target\", \"label\", \"context-1\", \"context-2\", \"context1Def\", \"context2Def\"]].columns)))\n",
"for row in miniTest[[\"target\", \"label\", \"context-1\", \"context-2\", \"context1Def\", \"context2Def\"]].iterrows():\n",
" print (\"||{}||\".format(\"||\".join([x for x in row[1]])))"
],
"execution_count": 93,
"outputs": [
{
"output_type": "stream",
"text": [
"||target||label||context-1||context-2||context1Def||context2Def||\n",
"||motion||F||The cinema relies on apparent motion .||He made a motion to adjourn .||a change||a proposal||\n",
"||night||T||It vanished into the night .||The cat disappeared into the night .||a period of time||a period of time||\n",
"||air||F||He threw the ball into the air .||A smell of chemicals in the air .||the space above the ground||the stuff around us||\n",
"||sign||T||Those clouds show little sign of raining soon .||Signs of disease are objective , whereas symptoms are subjective .||a signal||a mark||\n",
"||bed||T||We added a new rosebush to our rose bed .||The gardener planted a bed of roses .||a place||a place||\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "N9ULFfPfjQ9L",
"colab_type": "code",
"colab": {}
},
"source": [
"def getDefinitionInContextFewShotStuft(context, term, stuffing):\n",
" fewShot = \"\"\"Provide the definition for each word in the context of the preceeding sentance\n",
"\n",
"Context: He wore a jock strap with a metal cup .\n",
"Q: What is the sense of 'cup'?\n",
"A: something that contains\n",
"\n",
"Context: Bees filled the waxen cups with honey .\n",
"Q: What is the sense of 'cup'?\n",
"A: something that contains\n",
"\n",
"Context: The Academy of Music .\n",
"Q: What is the sense of 'academy'?\n",
"A: a place\n",
"\n",
"Context: The French Academy .\n",
"Q: What is the sense of 'academy'?\n",
"A: a society\n",
"\n",
"Context: He got clearance to travel to America , even though he had previous links to terrorists .\n",
"Q: What is the sense of 'clearance'?\n",
"A: permission\n",
"\n",
"Context: The plane got clearance from air traffic control , and we were off .\n",
"Q: What is the sense of 'clearance'?\n",
"A: permission\n",
"\n",
"Context: Before laying sod on that clay , the ground needs two inches of coverage with topsoil .\n",
"Q: What is the sense of 'coverage'?\n",
"A: the thing covering\n",
"\n",
"Context: The dictionary 's coverage of standard English is excellent .\n",
"Q: What is the sense of 'coverage'?\n",
"A: the thing covered\n",
"\n",
"Context: Her death came as a terrible shock .\n",
"Q: What is the sense of 'death'?\n",
"A: an event in time\n",
"\n",
"Context: He had two deaths on his conscience .\n",
"Q: What is the sense of 'death'?\n",
"A: an act\n",
"\n",
"\"\"\"\n",
" contextStuffing = \"\"\n",
" for stuff in stuffing:\n",
" contextStuffing += \"Context: {}\\nQ: What is the sense of '{}'\\nA: {}\\n\\n\".format(stuff[\"context\"], stuff[\"target\"], stuff[\"sense\"])\n",
"\n",
"\n",
" prompt = \"\"\"Context: {}\n",
"Q: What is the sense of '{}'?\\nA:\"\"\".format(context, term)\n",
"\n",
" kwargs = { \"engine\":\"davinci\", \"temperature\":0, \"max_tokens\":15, \"stop\":\"\\n\", }\n",
" return query(fewShot + contextStuffing + prompt, kwargs)"
],
"execution_count": 97,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "FTemo6tTcgXi",
"colab_type": "code",
"colab": {}
},
"source": [
"for row in miniTest.iterrows():\n",
" miniTest.at[row[0], \"context1StuftDef\"] = getDefinitionInContextFewShotStuft(row[1][\"context-1\"], row[1][\"target\"], [{\"context\": row[1][\"context-2\"], \"target\":row[1][\"target\"], \"sense\":row[1][\"context2Def\"]}])\n",
" miniTest.at[row[0], \"context2StuftDef\"] = getDefinitionInContextFewShotStuft(row[1][\"context-2\"], row[1][\"target\"], [{\"context\": row[1][\"context-1\"], \"target\":row[1][\"target\"], \"sense\":row[1][\"context1Def\"]}])\n",
" "
],
"execution_count": 100,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "RUJ0UYUNj_wE",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 615
},
"outputId": "1a0a6b3f-9178-4249-d391-436e86847d74"
},
"source": [
"miniTest"
],
"execution_count": 101,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>label</th>\n",
" <th>target</th>\n",
" <th>pos</th>\n",
" <th>position</th>\n",
" <th>context-1</th>\n",
" <th>context-2</th>\n",
" <th>def</th>\n",
" <th>context1Def</th>\n",
" <th>context2Def</th>\n",
" <th>context2StuftDef</th>\n",
" <th>context1StuftDef</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>5412</th>\n",
" <td>F</td>\n",
" <td>motion</td>\n",
" <td>N</td>\n",
" <td>5-3</td>\n",
" <td>The cinema relies on apparent motion .</td>\n",
" <td>He made a motion to adjourn .</td>\n",
" <td>Motion is the change in position of an object over time.</td>\n",
" <td>a change</td>\n",
" <td>a proposal</td>\n",
" <td>a proposal</td>\n",
" <td>a proposal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5414</th>\n",
" <td>T</td>\n",
" <td>night</td>\n",
" <td>N</td>\n",
" <td>4-5</td>\n",
" <td>It vanished into the night .</td>\n",
" <td>The cat disappeared into the night .</td>\n",
" <td>Night is the time when the sun is not shining.</td>\n",
" <td>a period of time</td>\n",
" <td>a period of time</td>\n",
" <td>a period of time</td>\n",
" <td>a period of time</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5416</th>\n",
" <td>F</td>\n",
" <td>air</td>\n",
" <td>N</td>\n",
" <td>6-6</td>\n",
" <td>He threw the ball into the air .</td>\n",
" <td>A smell of chemicals in the air .</td>\n",
" <td>Air is a measurement of how much space is between the top of the tire</td>\n",
" <td>the space above the ground</td>\n",
" <td>the stuff around us</td>\n",
" <td>the space above the ground</td>\n",
" <td>the stuff around us</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5418</th>\n",
" <td>T</td>\n",
" <td>sign</td>\n",
" <td>N</td>\n",
" <td>4-0</td>\n",
" <td>Those clouds show little sign of raining soon .</td>\n",
" <td>Signs of disease are objective , whereas symptoms are subjective .</td>\n",
" <td>It means that the person is a member of the sign.</td>\n",
" <td>a signal</td>\n",
" <td>a mark</td>\n",
" <td>a signal</td>\n",
" <td>a signal</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5420</th>\n",
" <td>T</td>\n",
" <td>bed</td>\n",
" <td>N</td>\n",
" <td>8-4</td>\n",
" <td>We added a new rosebush to our rose bed .</td>\n",
" <td>The gardener planted a bed of roses .</td>\n",
" <td>Bed is a slang term for a place where you sleep.</td>\n",
" <td>a place</td>\n",
" <td>a place</td>\n",
" <td>a place</td>\n",
" <td>a place</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" label target ... context2StuftDef context1StuftDef\n",
"5412 F motion ... a proposal a proposal\n",
"5414 T night ... a period of time a period of time\n",
"5416 F air ... the space above the ground the stuff around us\n",
"5418 T sign ... a signal a signal\n",
"5420 T bed ... a place a place\n",
"\n",
"[5 rows x 11 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 101
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "F1KOa9SBkHpJ",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 139
},
"outputId": "60c3390b-1c4e-4b7c-8ad5-03cb1189b49f"
},
"source": [
"print(\"||{}||\".format(\"||\".join(miniTest[[\"target\", \"label\", \"context-1\", \"context-2\", \"context1StuftDef\", \"context2StuftDef\"]].columns)))\n",
"for row in miniTest[[\"target\", \"label\", \"context-1\", \"context-2\", \"context1StuftDef\", \"context2StuftDef\"]].iterrows():\n",
" print (\"||{}||\".format(\"||\".join([x for x in row[1]])))"
],
"execution_count": 102,
"outputs": [
{
"output_type": "stream",
"text": [
"||target||label||context-1||context-2||context1StuftDef||context2StuftDef||\n",
"||motion||F||The cinema relies on apparent motion .||He made a motion to adjourn .||a proposal||a proposal||\n",
"||night||T||It vanished into the night .||The cat disappeared into the night .||a period of time||a period of time||\n",
"||air||F||He threw the ball into the air .||A smell of chemicals in the air .||the stuff around us||the space above the ground||\n",
"||sign||T||Those clouds show little sign of raining soon .||Signs of disease are objective , whereas symptoms are subjective .||a signal||a signal||\n",
"||bed||T||We added a new rosebush to our rose bed .||The gardener planted a bed of roses .||a place||a place||\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "1QbsSYY5lAp-",
"colab_type": "code",
"colab": {}
},
"source": [
"dev = pd.read_csv(\"dev/dev.data.txt\", sep='\\t', header=None)\n",
"dev.columns = [\"target\", \"pos\", \"position\", \"context-1\", \"context-2\"]\n",
"dev_gold = pd.read_csv(\"dev/dev.gold.txt\", sep='\\t', header=None)\n",
"dev_gold.columns = [\"label\"]\n",
"dev = pd.concat([dev_gold,dev], axis=1)\n"
],
"execution_count": 103,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "adw6nN3Elz_7",
"colab_type": "code",
"colab": {}
},
"source": [
"devResults = {}"
],
"execution_count": 112,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "5wQzlpcrljzX",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 102
},
"outputId": "982da79c-3da8-4b71-f77f-f8e26e80d9f2"
},
"source": [
"for row in dev[:100].iterrows():\n",
"\n",
" if row[0] in devResults:\n",
" continue\n",
"\n",
" target = row[1][\"target\"]\n",
" s1 = row[1][\"context-1\"]\n",
" s2 = row[1][\"context-2\"]\n",
"\n",
" def1 = getDefinitionInContextFewShot(s1, target)\n",
" def2 = getDefinitionInContextFewShot(s2, target)\n",
"\n",
" stuftDef1 = getDefinitionInContextFewShotStuft(s1, target, [{\"context\": s2, \"target\":target, \"sense\":def2}])\n",
" stuftDef2 = getDefinitionInContextFewShotStuft(s2, target, [{\"context\": s1, \"target\":target, \"sense\":def1}])\n",
"\n",
" results = {\"s1\":s1, \"s2\":s2, \"def1\":def1, \"def2\":def2, \"stuftDef1\":stuftDef1, \"stuftDef2\":stuftDef2, \"actual\":row[1][\"label\"], \"pos\":row[1][\"pos\"]}\n",
" devResults[row[0]] = results\n",
"\n",
" if row[0] % 20 == 0:\n",
" print(row[0])"
],
"execution_count": 113,
"outputs": [
{
"output_type": "stream",
"text": [
"0\n",
"20\n",
"40\n",
"60\n",
"80\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "5NSHbZCqm3TW",
"colab_type": "code",
"colab": {}
},
"source": [
"devDf = pd.DataFrame(devResults).T"
],
"execution_count": 116,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "ayL3J2wqrYYj",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 340
},
"outputId": "b74fc9d6-33fe-4e27-f5d1-a91d369d88d9"
},
"source": [
"devDf.head()"
],
"execution_count": 120,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>s1</th>\n",
" <th>s2</th>\n",
" <th>def1</th>\n",
" <th>def2</th>\n",
" <th>stuftDef1</th>\n",
" <th>stuftDef2</th>\n",
" <th>actual</th>\n",
" <th>pos</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Room and board .</td>\n",
" <td>He nailed boards across the windows .</td>\n",
" <td>a flat surface</td>\n",
" <td>a flat piece of wood</td>\n",
" <td>food and lodging</td>\n",
" <td>a flat surface</td>\n",
" <td>F</td>\n",
" <td>N</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Circulate a rumor .</td>\n",
" <td>This letter is being circulated among the faculty .</td>\n",
" <td>to move</td>\n",
" <td>to move</td>\n",
" <td>to move</td>\n",
" <td>to move</td>\n",
" <td>F</td>\n",
" <td>V</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Hook a fish .</td>\n",
" <td>He hooked a snake accidentally , and was so scared he dropped his rod into the water .</td>\n",
" <td>a tool</td>\n",
" <td>to catch</td>\n",
" <td>to catch</td>\n",
" <td>a tool</td>\n",
" <td>T</td>\n",
" <td>V</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>For recreation he wrote poetry and solved crossword puzzles .</td>\n",
" <td>Drug abuse is often regarded as a form of recreation .</td>\n",
" <td>the act of recreating</td>\n",
" <td>a form of activity</td>\n",
" <td>a form of activity</td>\n",
" <td>the act of recreating</td>\n",
" <td>T</td>\n",
" <td>N</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Making a hobby of domesticity .</td>\n",
" <td>A royal family living in unpretentious domesticity .</td>\n",
" <td>the state of being domestic</td>\n",
" <td>the quality of being domestic</td>\n",
" <td>the quality of being domestic</td>\n",
" <td>the state of being domestic</td>\n",
" <td>F</td>\n",
" <td>N</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" s1 ... pos\n",
"0 Room and board . ... N\n",
"1 Circulate a rumor . ... V\n",
"2 Hook a fish . ... V\n",
"3 For recreation he wrote poetry and solved crossword puzzles . ... N\n",
"4 Making a hobby of domesticity . ... N\n",
"\n",
"[5 rows x 8 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 120
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "MkPofC94zk2M",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 139
},
"outputId": "c6ac6907-8618-4461-c5e8-9eaadcb31575"
},
"source": [
"print(\"||{}||\".format(\"||\".join(devDf.head().columns)))\n",
"for row in devDf.head().iterrows():\n",
" print (\"||{}||\".format(\"||\".join([x for x in row[1]])))"
],
"execution_count": 129,
"outputs": [
{
"output_type": "stream",
"text": [
"||s1||s2||def1||def2||stuftDef1||stuftDef2||actual||pos||\n",
"||Room and board .||He nailed boards across the windows .||a flat surface||a flat piece of wood||food and lodging||a flat surface||F||N||\n",
"||Circulate a rumor .||This letter is being circulated among the faculty .||to move||to move||to move||to move||F||V||\n",
"||Hook a fish .||He hooked a snake accidentally , and was so scared he dropped his rod into the water .||a tool||to catch||to catch||a tool||T||V||\n",
"||For recreation he wrote poetry and solved crossword puzzles .||Drug abuse is often regarded as a form of recreation .||the act of recreating||a form of activity||a form of activity||the act of recreating||T||N||\n",
"||Making a hobby of domesticity .||A royal family living in unpretentious domesticity .||the state of being domestic||the quality of being domestic||the quality of being domestic||the state of being domestic||F||N||\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "fh2uds8BowV1",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 85
},
"outputId": "dc1aad23-f7f8-4684-daa8-c000477289e0"
},
"source": [
"pct_1 = ((devDf[\"def1\"] == devDf[\"def2\"]).apply(lambda x: \"T\" if x else \"F\") == devDf[\"actual\"]).mean()\n",
"print(\"accuracy comparing initial answers: {}\".format(np.round(100*pct_1)))\n",
"\n",
"pct_2 = ((devDf[\"def1\"] == devDf[\"stuftDef2\"]).apply(lambda x: \"T\" if x else \"F\") == devDf[\"actual\"]).mean()\n",
"print(\"accuracy comparing one initial to one stuffed: {}\".format(np.round(100*pct_2)))\n",
"\n",
"pct_3 = ((devDf[\"stuftDef1\"] == devDf[\"stuftDef2\"]).apply(lambda x: \"T\" if x else \"F\") == devDf[\"actual\"]).mean()\n",
"print(\"accuracy comparing both context stuffed correct: {}\".format(np.round(100*pct_3)))\n",
"\n",
"pct_4 = (((devDf[\"def1\"] == devDf[\"stuftDef2\"]) & (devDf[\"def2\"] == devDf[\"stuftDef1\"])).apply(lambda x: \"T\" if x else \"F\") == devDf[\"actual\"]).mean()\n",
"print(\"accuracy comparing both of the initials to both the stuffed: {}\".format(np.round(100*pct_3)))\n",
"\n"
],
"execution_count": 132,
"outputs": [
{
"output_type": "stream",
"text": [
"accuracy comparing initial answers: 60.0\n",
"accuracy comparing one initial to one stuffed: 63.0\n",
"accuracy comparing both context stuffed correct: 55.0\n",
"accuracy comparing both context stuffed correct: 55.0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Bzn9zKYXrWk0",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 68
},
"outputId": "8d240aec-9b08-48a9-b502-2aef8a89f43b"
},
"source": [
"devDfNoun = devDf[devDf.pos==\"N\"]\n",
"pct_1 = ((devDfNoun[\"def1\"] == devDfNoun[\"def2\"]).apply(lambda x: \"T\" if x else \"F\") == devDfNoun[\"actual\"]).mean()\n",
"print(\"total % few shot correct: {}\".format(np.round(100*pct_1)))\n",
"\n",
"pct_2 = ((devDfNoun[\"def1\"] == devDfNoun[\"stuftDef2\"]).apply(lambda x: \"T\" if x else \"F\") == devDfNoun[\"actual\"]).mean()\n",
"print(\"total % few shot correct: {}\".format(np.round(100*pct_2)))\n",
"\n",
"pct_3 = ((devDfNoun[\"stuftDef1\"] == devDfNoun[\"stuftDef2\"]).apply(lambda x: \"T\" if x else \"F\") == devDfNoun[\"actual\"]).mean()\n",
"print(\"total % context stuffed correct: {}\".format(np.round(100*pct_3)))\n"
],
"execution_count": 127,
"outputs": [
{
"output_type": "stream",
"text": [
"total % few shot correct: 61.0\n",
"total % few shot correct: 64.0\n",
"total % context stuffed correct: 54.0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "gJ_nTmGuxY8a",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "EZ4DnR-k14F5",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "dNfQAci514iu",
"colab_type": "code",
"colab": {}
},
"source": [
"examples = \"\"\"Context: He wore a jock strap with a metal cup .\n",
"Q: What is the sense of 'cup'?\n",
"A: something that contains\n",
"\n",
"Context: Bees filled the waxen cups with honey .\n",
"Q: What is the sense of 'cup'?\n",
"A: something that contains\n",
"\n",
"Context: The Academy of Music .\n",
"Q: What is the sense of 'academy'?\n",
"A: a place\n",
"\n",
"Context: The French Academy .\n",
"Q: What is the sense of 'academy'?\n",
"A: a society\n",
"\n",
"Context: He got clearance to travel to America , even though he had previous links to terrorists .\n",
"Q: What is the sense of 'clearance'?\n",
"A: permission\n",
"\n",
"Context: The plane got clearance from air traffic control , and we were off .\n",
"Q: What is the sense of 'clearance'?\n",
"A: permission\n",
"\n",
"Context: Before laying sod on that clay , the ground needs two inches of coverage with topsoil .\n",
"Q: What is the sense of 'coverage'?\n",
"A: the thing covering\n",
"\n",
"Context: The dictionary 's coverage of standard English is excellent .\n",
"Q: What is the sense of 'coverage'?\n",
"A: the thing covered\n",
"\n",
"Context: Her death came as a terrible shock .\n",
"Q: What is the sense of 'death'?\n",
"A: an event in time\n",
"\n",
"Context: He had two deaths on his conscience .\n",
"Q: What is the sense of 'death'?\n",
"A: an act\n",
"\n",
"Context: The despite in which outsiders were held is legendary .\n",
"Q: What is the sense of 'despite'?\n",
"A: malicious feeling\n",
"\n",
"Context: She wanted neither favor nor despite .\n",
"Q: What is the sense of 'despite'?\n",
"A: disadvantage\n",
"\n",
"Context: A school of small glittering fish swam by .\n",
"Q: What is the sense of 'school'?\n",
"A: a group\n",
"\n",
"Context: The divers encountered a huge school of mackerel .\n",
"Q: What is the sense of 'school'?\n",
"A: a group\n",
"\n",
"Context: The United Nations must have the power to propose and organize action without being hobbled by irrelevant issues .\n",
"Q: What is the sense of 'power'?\n",
"A: capability\n",
"\n",
"Context: Recent federal action undermined the segregationist position .\n",
"Q: What is the sense of 'power'?\n",
"A: capability\"\"\".split(\"\\n\\n\")"
],
"execution_count": 203,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "Qf8b32HX2Aqo",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 309
},
"outputId": "384dedd0-fe17-41f3-e3df-b1ef0a6c5b80"
},
"source": [
"examples"
],
"execution_count": 204,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[\"Context: He wore a jock strap with a metal cup .\\nQ: What is the sense of 'cup'?\\nA: something that contains\",\n",
" \"Context: Bees filled the waxen cups with honey .\\nQ: What is the sense of 'cup'?\\nA: something that contains\",\n",
" \"Context: The Academy of Music .\\nQ: What is the sense of 'academy'?\\nA: a place\",\n",
" \"Context: The French Academy .\\nQ: What is the sense of 'academy'?\\nA: a society\",\n",
" \"Context: He got clearance to travel to America , even though he had previous links to terrorists .\\nQ: What is the sense of 'clearance'?\\nA: permission\",\n",
" \"Context: The plane got clearance from air traffic control , and we were off .\\nQ: What is the sense of 'clearance'?\\nA: permission\",\n",
" \"Context: Before laying sod on that clay , the ground needs two inches of coverage with topsoil .\\nQ: What is the sense of 'coverage'?\\nA: the thing covering\",\n",
" \"Context: The dictionary 's coverage of standard English is excellent .\\nQ: What is the sense of 'coverage'?\\nA: the thing covered\",\n",
" \"Context: Her death came as a terrible shock .\\nQ: What is the sense of 'death'?\\nA: an event in time\",\n",
" \"Context: He had two deaths on his conscience .\\nQ: What is the sense of 'death'?\\nA: an act\",\n",
" \"Context: The despite in which outsiders were held is legendary .\\nQ: What is the sense of 'despite'?\\nA: malicious feeling\",\n",
" \"Context: She wanted neither favor nor despite .\\nQ: What is the sense of 'despite'?\\nA: disadvantage\",\n",
" \"Context: A school of small glittering fish swam by .\\nQ: What is the sense of 'school'?\\nA: a group\",\n",
" \"Context: The divers encountered a huge school of mackerel .\\nQ: What is the sense of 'school'?\\nA: a group\",\n",
" \"Context: The United Nations must have the power to propose and organize action without being hobbled by irrelevant issues .\\nQ: What is the sense of 'power'?\\nA: capability\",\n",
" \"Context: Recent federal action undermined the segregationist position .\\nQ: What is the sense of 'power'?\\nA: capability\"]"
]
},
"metadata": {
"tags": []
},
"execution_count": 204
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "2zd-kdz114AF",
"colab_type": "code",
"colab": {}
},
"source": [
"def getDefinitionInContextFewShot(context, term, numExamples):\n",
" fewShot = \"\"\"Provide the sense for each word in the context of the preceeding sentance\n",
"\n",
"{}\n",
"\n",
"\"\"\".format(\"\\n\\n\".join(examples[:numExamples]))\n",
" prompt = \"\"\"Context: {}\n",
"Q: What is the sense of '{}'?\\nA:\"\"\".format(context, term)\n",
"\n",
" kwargs = { \"engine\":\"davinci\", \"temperature\":0, \"max_tokens\":15, \"stop\":\"\\n\", }\n",
" return query(fewShot + prompt, kwargs)"
],
"execution_count": 205,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "i98gMHQp2NL_",
"colab_type": "code",
"colab": {}
},
"source": [
"def getDefinitionInContextFewShotStuft(context, term, stuffing, numExamples):\n",
" fewShot = \"\"\"Provide the sense for each word in the context of the preceeding sentance\n",
"\n",
"{}\n",
"\n",
"\"\"\".format(\"\\n\\n\".join(examples[:numExamples]))\n",
"\n",
" contextStuffing = \"\"\n",
" for stuff in stuffing:\n",
" contextStuffing += \"Context: {}\\nQ: What is the sense of '{}'\\nA: {}\\n\\n\".format(stuff[\"context\"], stuff[\"target\"], stuff[\"sense\"])\n",
"\n",
"\n",
" prompt = \"\"\"Context: {}\n",
"Q: What is the sense of '{}'?\\nA:\"\"\".format(context, term)\n",
"\n",
" kwargs = { \"engine\":\"davinci\", \"temperature\":0, \"max_tokens\":15, \"stop\":\"\\n\", }\n",
" return query(fewShot + contextStuffing + prompt, kwargs)"
],
"execution_count": 206,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "yjE8p9gc2925",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "443cc201-8e84-43ed-d7c6-3bdbabf4c484"
},
"source": [
"len(examples)"
],
"execution_count": 207,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"16"
]
},
"metadata": {
"tags": []
},
"execution_count": 207
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "qSwijRXOE5a7",
"colab_type": "code",
"colab": {}
},
"source": [
"performances = {}\n",
"devResults = {}"
],
"execution_count": 208,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "4E4aiwwc2Z0_",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 748
},
"outputId": "96e3c63a-1821-4fc8-fa40-1d7cdc880978"
},
"source": [
"for exampleSize in range(1,17):\n",
" if exampleSize not in devResults:\n",
" devResults[exampleSize] = {}\n",
" print(\"STARTING SIZE {}\".format(exampleSize))\n",
"\n",
" for row in dev[:300].iterrows():\n",
"\n",
" if row[0] in devResults[exampleSize]:\n",
" continue\n",
"\n",
" target = row[1][\"target\"]\n",
" s1 = row[1][\"context-1\"]\n",
" s2 = row[1][\"context-2\"]\n",
"\n",
" def1 = getDefinitionInContextFewShot(s1, target, exampleSize)\n",
" def2 = getDefinitionInContextFewShot(s2, target, exampleSize)\n",
"\n",
" stuftDef1 = getDefinitionInContextFewShotStuft(s1, target, [{\"context\": s2, \"target\":target, \"sense\":def2}], exampleSize)\n",
" stuftDef2 = getDefinitionInContextFewShotStuft(s2, target, [{\"context\": s1, \"target\":target, \"sense\":def1}], exampleSize)\n",
"\n",
" results = {\"s1\":s1, \"s2\":s2, \"def1\":def1, \"def2\":def2, \"stuftDef1\":stuftDef1, \"stuftDef2\":stuftDef2, \"actual\":row[1][\"label\"], \"pos\":row[1][\"pos\"], \"numExamples\":exampleSize}\n",
" devResults[exampleSize][row[0]] = results\n",
"\n",
" if row[0] % 20 == 0:\n",
" print(row[0])"
],
"execution_count": 236,
"outputs": [
{
"output_type": "stream",
"text": [
"STARTING SIZE 1\n",
"STARTING SIZE 2\n",
"STARTING SIZE 3\n",
"STARTING SIZE 4\n",
"STARTING SIZE 5\n",
"STARTING SIZE 6\n",
"STARTING SIZE 7\n",
"STARTING SIZE 8\n",
"STARTING SIZE 9\n",
"STARTING SIZE 10\n",
"STARTING SIZE 11\n",
"STARTING SIZE 12\n",
"STARTING SIZE 13\n",
"STARTING SIZE 14\n",
"STARTING SIZE 15\n",
"60\n",
"80\n",
"100\n",
"120\n",
"140\n",
"160\n",
"180\n",
"200\n",
"220\n",
"240\n",
"260\n",
"280\n",
"STARTING SIZE 16\n",
"0\n",
"20\n",
"40\n",
"60\n",
"80\n",
"100\n",
"120\n",
"140\n",
"160\n",
"180\n",
"200\n",
"220\n",
"240\n",
"260\n",
"280\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "VnxPuAZh27Ea",
"colab_type": "code",
"colab": {}
},
"source": [
"evaluations = pd.DataFrame()"
],
"execution_count": 237,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "GI_ZyWf_C9I4",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "6a3ed84b-c710-4d6a-88e2-f8d45ae98d9e"
},
"source": [
"for exampleSize in devResults:\n",
" devDf = pd.DataFrame(devResults[exampleSize]).T\n",
" print(\"EXAMPLE SIZE: {}\".format(exampleSize))\n",
" devDfNoun = devDf[devDf.pos==\"N\"]\n",
" pct_1 = ((devDf[\"def1\"] == devDf[\"def2\"]).apply(lambda x: \"T\" if x else \"F\") == devDf[\"actual\"]).mean()\n",
" print(\"accuracy comparing initial answers: {}\".format(np.round(100*pct_1)))\n",
" evaluations.at[exampleSize, \"Def1Def2\"] = pct_1\n",
"\n",
"\n",
" pct_2 = ((devDf[\"def1\"] == devDf[\"stuftDef2\"]).apply(lambda x: \"T\" if x else \"F\") == devDf[\"actual\"]).mean()\n",
" print(\"accuracy comparing one initial to one stuffed: {}\".format(np.round(100*pct_2)))\n",
" evaluations.at[exampleSize, \"Def1stuftDef2\"] = pct_2\n",
"\n",
" pct_3 = ((devDf[\"stuftDef1\"] == devDf[\"stuftDef2\"]).apply(lambda x: \"T\" if x else \"F\") == devDf[\"actual\"]).mean()\n",
" print(\"accuracy comparing both context stuffed correct: {}\".format(np.round(100*pct_3)))\n",
" evaluations.at[exampleSize, \"stuftDef1stuftDef2\"] = pct_3\n",
"\n",
" pct_4 = (((devDf[\"def1\"] == devDf[\"stuftDef2\"]) & (devDf[\"def2\"] == devDf[\"stuftDef1\"])).apply(lambda x: \"T\" if x else \"F\") == devDf[\"actual\"]).mean()\n",
" print(\"accuracy comparing both of the initials to both the stuffed: {}\".format(np.round(100*pct_3)))\n",
" evaluations.at[exampleSize, \"pairwise\"] = pct_4\n",
"\n"
],
"execution_count": 311,
"outputs": [
{
"output_type": "stream",
"text": [
"EXAMPLE SIZE: 1\n",
"accuracy comparing initial answers: 60.0\n",
"accuracy comparing one initial to one stuffed: 62.0\n",
"accuracy comparing both context stuffed correct: 55.0\n",
"accuracy comparing both of the initials to both the stuffed: 55.0\n",
"EXAMPLE SIZE: 2\n",
"accuracy comparing initial answers: 57.0\n",
"accuracy comparing one initial to one stuffed: 53.0\n",
"accuracy comparing both context stuffed correct: 55.0\n",
"accuracy comparing both of the initials to both the stuffed: 55.0\n",
"EXAMPLE SIZE: 3\n",
"accuracy comparing initial answers: 59.0\n",
"accuracy comparing one initial to one stuffed: 53.0\n",
"accuracy comparing both context stuffed correct: 58.0\n",
"accuracy comparing both of the initials to both the stuffed: 58.0\n",
"EXAMPLE SIZE: 4\n",
"accuracy comparing initial answers: 60.0\n",
"accuracy comparing one initial to one stuffed: 60.0\n",
"accuracy comparing both context stuffed correct: 59.0\n",
"accuracy comparing both of the initials to both the stuffed: 59.0\n",
"EXAMPLE SIZE: 5\n",
"accuracy comparing initial answers: 56.0\n",
"accuracy comparing one initial to one stuffed: 62.0\n",
"accuracy comparing both context stuffed correct: 54.0\n",
"accuracy comparing both of the initials to both the stuffed: 54.0\n",
"EXAMPLE SIZE: 6\n",
"accuracy comparing initial answers: 54.0\n",
"accuracy comparing one initial to one stuffed: 58.0\n",
"accuracy comparing both context stuffed correct: 53.0\n",
"accuracy comparing both of the initials to both the stuffed: 53.0\n",
"EXAMPLE SIZE: 7\n",
"accuracy comparing initial answers: 53.0\n",
"accuracy comparing one initial to one stuffed: 57.0\n",
"accuracy comparing both context stuffed correct: 49.0\n",
"accuracy comparing both of the initials to both the stuffed: 49.0\n",
"EXAMPLE SIZE: 8\n",
"accuracy comparing initial answers: 56.0\n",
"accuracy comparing one initial to one stuffed: 56.0\n",
"accuracy comparing both context stuffed correct: 53.0\n",
"accuracy comparing both of the initials to both the stuffed: 53.0\n",
"EXAMPLE SIZE: 9\n",
"accuracy comparing initial answers: 59.0\n",
"accuracy comparing one initial to one stuffed: 56.0\n",
"accuracy comparing both context stuffed correct: 56.0\n",
"accuracy comparing both of the initials to both the stuffed: 56.0\n",
"EXAMPLE SIZE: 10\n",
"accuracy comparing initial answers: 62.0\n",
"accuracy comparing one initial to one stuffed: 58.0\n",
"accuracy comparing both context stuffed correct: 59.0\n",
"accuracy comparing both of the initials to both the stuffed: 59.0\n",
"EXAMPLE SIZE: 11\n",
"accuracy comparing initial answers: 57.0\n",
"accuracy comparing one initial to one stuffed: 58.0\n",
"accuracy comparing both context stuffed correct: 56.0\n",
"accuracy comparing both of the initials to both the stuffed: 56.0\n",
"EXAMPLE SIZE: 12\n",
"accuracy comparing initial answers: 59.0\n",
"accuracy comparing one initial to one stuffed: 63.0\n",
"accuracy comparing both context stuffed correct: 57.0\n",
"accuracy comparing both of the initials to both the stuffed: 57.0\n",
"EXAMPLE SIZE: 13\n",
"accuracy comparing initial answers: 57.0\n",
"accuracy comparing one initial to one stuffed: 62.0\n",
"accuracy comparing both context stuffed correct: 55.0\n",
"accuracy comparing both of the initials to both the stuffed: 55.0\n",
"EXAMPLE SIZE: 14\n",
"accuracy comparing initial answers: 59.0\n",
"accuracy comparing one initial to one stuffed: 57.0\n",
"accuracy comparing both context stuffed correct: 56.0\n",
"accuracy comparing both of the initials to both the stuffed: 56.0\n",
"EXAMPLE SIZE: 15\n",
"accuracy comparing initial answers: 58.0\n",
"accuracy comparing one initial to one stuffed: 59.0\n",
"accuracy comparing both context stuffed correct: 56.0\n",
"accuracy comparing both of the initials to both the stuffed: 56.0\n",
"EXAMPLE SIZE: 16\n",
"accuracy comparing initial answers: 58.0\n",
"accuracy comparing one initial to one stuffed: 54.0\n",
"accuracy comparing both context stuffed correct: 56.0\n",
"accuracy comparing both of the initials to both the stuffed: 56.0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Jep99iFzDfsy",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": 238,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "c3Flc_kpEDhn",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 545
},
"outputId": "0aea1805-f502-4fd6-d2a3-488626ea3ff4"
},
"source": [
"evaluations"
],
"execution_count": 239,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Def1Def2</th>\n",
" <th>Def1stuftDef2</th>\n",
" <th>stuftDef1stuftDef2</th>\n",
" <th>pairwise</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.596667</td>\n",
" <td>0.616667</td>\n",
" <td>0.550000</td>\n",
" <td>0.663333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.570000</td>\n",
" <td>0.530000</td>\n",
" <td>0.553333</td>\n",
" <td>0.550000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.593333</td>\n",
" <td>0.530000</td>\n",
" <td>0.580000</td>\n",
" <td>0.560000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.603333</td>\n",
" <td>0.600000</td>\n",
" <td>0.593333</td>\n",
" <td>0.636667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.560000</td>\n",
" <td>0.623333</td>\n",
" <td>0.536667</td>\n",
" <td>0.663333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.540000</td>\n",
" <td>0.580000</td>\n",
" <td>0.530000</td>\n",
" <td>0.606667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.533333</td>\n",
" <td>0.566667</td>\n",
" <td>0.493333</td>\n",
" <td>0.613333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.560000</td>\n",
" <td>0.563333</td>\n",
" <td>0.530000</td>\n",
" <td>0.583333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.586667</td>\n",
" <td>0.563333</td>\n",
" <td>0.560000</td>\n",
" <td>0.596667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.616667</td>\n",
" <td>0.583333</td>\n",
" <td>0.590000</td>\n",
" <td>0.630000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>0.570000</td>\n",
" <td>0.583333</td>\n",
" <td>0.560000</td>\n",
" <td>0.620000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.586667</td>\n",
" <td>0.630000</td>\n",
" <td>0.566667</td>\n",
" <td>0.656667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>0.570000</td>\n",
" <td>0.623333</td>\n",
" <td>0.550000</td>\n",
" <td>0.676667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>0.590000</td>\n",
" <td>0.573333</td>\n",
" <td>0.560000</td>\n",
" <td>0.620000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>0.583333</td>\n",
" <td>0.593333</td>\n",
" <td>0.563333</td>\n",
" <td>0.623333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>0.583333</td>\n",
" <td>0.540000</td>\n",
" <td>0.563333</td>\n",
" <td>0.563333</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Def1Def2 Def1stuftDef2 stuftDef1stuftDef2 pairwise\n",
"1 0.596667 0.616667 0.550000 0.663333\n",
"2 0.570000 0.530000 0.553333 0.550000\n",
"3 0.593333 0.530000 0.580000 0.560000\n",
"4 0.603333 0.600000 0.593333 0.636667\n",
"5 0.560000 0.623333 0.536667 0.663333\n",
"6 0.540000 0.580000 0.530000 0.606667\n",
"7 0.533333 0.566667 0.493333 0.613333\n",
"8 0.560000 0.563333 0.530000 0.583333\n",
"9 0.586667 0.563333 0.560000 0.596667\n",
"10 0.616667 0.583333 0.590000 0.630000\n",
"11 0.570000 0.583333 0.560000 0.620000\n",
"12 0.586667 0.630000 0.566667 0.656667\n",
"13 0.570000 0.623333 0.550000 0.676667\n",
"14 0.590000 0.573333 0.560000 0.620000\n",
"15 0.583333 0.593333 0.563333 0.623333\n",
"16 0.583333 0.540000 0.563333 0.563333"
]
},
"metadata": {
"tags": []
},
"execution_count": 239
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "kf9OJFzODiLo",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 298
},
"outputId": "8d44ec88-36e8-48bd-9d22-0b83704390b5"
},
"source": [
"(100*evaluations).plot(title=\"Performance by Number of Examples\")"
],
"execution_count": 312,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f9a3d700198>"
]
},
"metadata": {
"tags": []
},
"execution_count": 312
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "-ap7sPTCxLB3",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "59890743-ece6-47d6-8f9b-aa507605a220"
},
"source": [
"evaluations = pd.DataFrame()\n",
"for exampleSize in devResults:\n",
" devDf = pd.DataFrame(devResults[exampleSize]).T\n",
" devDf = devDf[devDf.pos==\"N\"]\n",
" print(\"EXAMPLE SIZE: {}\".format(exampleSize))\n",
" devDfNoun = devDf[devDf.pos==\"N\"]\n",
" pct_1 = ((devDf[\"def1\"] == devDf[\"def2\"]).apply(lambda x: \"T\" if x else \"F\") == devDf[\"actual\"]).mean()\n",
" print(\"accuracy comparing initial answers: {}\".format(np.round(100*pct_1)))\n",
" evaluations.at[exampleSize, \"Def1Def2\"] = pct_1\n",
"\n",
"\n",
" pct_2 = ((devDf[\"def1\"] == devDf[\"stuftDef2\"]).apply(lambda x: \"T\" if x else \"F\") == devDf[\"actual\"]).mean()\n",
" print(\"accuracy comparing one initial to one stuffed: {}\".format(np.round(100*pct_2)))\n",
" evaluations.at[exampleSize, \"Def1stuftDef2\"] = pct_2\n",
"\n",
" pct_3 = ((devDf[\"stuftDef1\"] == devDf[\"stuftDef2\"]).apply(lambda x: \"T\" if x else \"F\") == devDf[\"actual\"]).mean()\n",
" print(\"accuracy comparing both context stuffed correct: {}\".format(np.round(100*pct_3)))\n",
" evaluations.at[exampleSize, \"stuftDef1stuftDef2\"] = pct_3\n",
"\n",
" pct_4 = (((devDf[\"def1\"] == devDf[\"stuftDef2\"]) & (devDf[\"def2\"] == devDf[\"stuftDef1\"])).apply(lambda x: \"T\" if x else \"F\") == devDf[\"actual\"]).mean()\n",
" print(\"accuracy comparing both of the initials to both the stuffed: {}\".format(np.round(100*pct_3)))\n",
" evaluations.at[exampleSize, \"pairwise\"] = pct_4\n",
"\n"
],
"execution_count": 298,
"outputs": [
{
"output_type": "stream",
"text": [
"EXAMPLE SIZE: 1\n",
"accuracy comparing initial answers: 58.0\n",
"accuracy comparing one initial to one stuffed: 60.0\n",
"accuracy comparing both context stuffed correct: 51.0\n",
"accuracy comparing both of the initials to both the stuffed: 51.0\n",
"EXAMPLE SIZE: 2\n",
"accuracy comparing initial answers: 59.0\n",
"accuracy comparing one initial to one stuffed: 52.0\n",
"accuracy comparing both context stuffed correct: 57.0\n",
"accuracy comparing both of the initials to both the stuffed: 57.0\n",
"EXAMPLE SIZE: 3\n",
"accuracy comparing initial answers: 60.0\n",
"accuracy comparing one initial to one stuffed: 52.0\n",
"accuracy comparing both context stuffed correct: 57.0\n",
"accuracy comparing both of the initials to both the stuffed: 57.0\n",
"EXAMPLE SIZE: 4\n",
"accuracy comparing initial answers: 64.0\n",
"accuracy comparing one initial to one stuffed: 61.0\n",
"accuracy comparing both context stuffed correct: 61.0\n",
"accuracy comparing both of the initials to both the stuffed: 61.0\n",
"EXAMPLE SIZE: 5\n",
"accuracy comparing initial answers: 57.0\n",
"accuracy comparing one initial to one stuffed: 65.0\n",
"accuracy comparing both context stuffed correct: 53.0\n",
"accuracy comparing both of the initials to both the stuffed: 53.0\n",
"EXAMPLE SIZE: 6\n",
"accuracy comparing initial answers: 57.0\n",
"accuracy comparing one initial to one stuffed: 58.0\n",
"accuracy comparing both context stuffed correct: 55.0\n",
"accuracy comparing both of the initials to both the stuffed: 55.0\n",
"EXAMPLE SIZE: 7\n",
"accuracy comparing initial answers: 54.0\n",
"accuracy comparing one initial to one stuffed: 56.0\n",
"accuracy comparing both context stuffed correct: 48.0\n",
"accuracy comparing both of the initials to both the stuffed: 48.0\n",
"EXAMPLE SIZE: 8\n",
"accuracy comparing initial answers: 55.0\n",
"accuracy comparing one initial to one stuffed: 57.0\n",
"accuracy comparing both context stuffed correct: 49.0\n",
"accuracy comparing both of the initials to both the stuffed: 49.0\n",
"EXAMPLE SIZE: 9\n",
"accuracy comparing initial answers: 58.0\n",
"accuracy comparing one initial to one stuffed: 56.0\n",
"accuracy comparing both context stuffed correct: 55.0\n",
"accuracy comparing both of the initials to both the stuffed: 55.0\n",
"EXAMPLE SIZE: 10\n",
"accuracy comparing initial answers: 63.0\n",
"accuracy comparing one initial to one stuffed: 60.0\n",
"accuracy comparing both context stuffed correct: 59.0\n",
"accuracy comparing both of the initials to both the stuffed: 59.0\n",
"EXAMPLE SIZE: 11\n",
"accuracy comparing initial answers: 57.0\n",
"accuracy comparing one initial to one stuffed: 60.0\n",
"accuracy comparing both context stuffed correct: 56.0\n",
"accuracy comparing both of the initials to both the stuffed: 56.0\n",
"EXAMPLE SIZE: 12\n",
"accuracy comparing initial answers: 59.0\n",
"accuracy comparing one initial to one stuffed: 64.0\n",
"accuracy comparing both context stuffed correct: 56.0\n",
"accuracy comparing both of the initials to both the stuffed: 56.0\n",
"EXAMPLE SIZE: 13\n",
"accuracy comparing initial answers: 57.0\n",
"accuracy comparing one initial to one stuffed: 65.0\n",
"accuracy comparing both context stuffed correct: 55.0\n",
"accuracy comparing both of the initials to both the stuffed: 55.0\n",
"EXAMPLE SIZE: 14\n",
"accuracy comparing initial answers: 60.0\n",
"accuracy comparing one initial to one stuffed: 59.0\n",
"accuracy comparing both context stuffed correct: 56.0\n",
"accuracy comparing both of the initials to both the stuffed: 56.0\n",
"EXAMPLE SIZE: 15\n",
"accuracy comparing initial answers: 61.0\n",
"accuracy comparing one initial to one stuffed: 61.0\n",
"accuracy comparing both context stuffed correct: 59.0\n",
"accuracy comparing both of the initials to both the stuffed: 59.0\n",
"EXAMPLE SIZE: 16\n",
"accuracy comparing initial answers: 64.0\n",
"accuracy comparing one initial to one stuffed: 53.0\n",
"accuracy comparing both context stuffed correct: 61.0\n",
"accuracy comparing both of the initials to both the stuffed: 61.0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "JqodXe_LxQl6",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 421
},
"outputId": "6d24a3d7-2a63-476b-c704-f93d79455556"
},
"source": [
"fig, ax = plt.subplots(facecolor=\"w\", figsize=(6,6))\n",
"(100*evaluations).plot(title=\"Performance on First 300 of WiC Dev by # Examples (nouns only)\", ax=ax)\n",
"ax.set_ylabel(\"% accuracy\")\n",
"ax.set_xlabel(\"Number Examples\")\n"
],
"execution_count": 255,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Text(0.5, 0, 'Number Examples')"
]
},
"metadata": {
"tags": []
},
"execution_count": 255
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "HZ_2qsvPAedz",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 289
},
"outputId": "4030721d-1152-4a47-ed50-5455151ddbef"
},
"source": [
"evaluationsT = pd.DataFrame()\n",
"evaluationsF = pd.DataFrame()\n",
"\n",
"for exampleSize in devResults:\n",
" devDf = pd.DataFrame(devResults[exampleSize]).T\n",
" devDf = devDf[devDf.pos==\"N\"]\n",
" print(\"EXAMPLE SIZE: {}\".format(exampleSize))\n",
" devDfT = devDf[devDf.actual==\"T\"]\n",
" devDfF = devDf[devDf.actual==\"F\"]\n",
"\n",
" pct_1T = ((devDfT[\"def1\"] == devDfT[\"def2\"]).apply(lambda x: \"T\" if x else \"F\") == devDfT[\"actual\"]).mean()\n",
" pct_1F = ((devDfF[\"def1\"] == devDfF[\"def2\"]).apply(lambda x: \"T\" if x else \"F\") == devDfF[\"actual\"]).mean()\n",
"\n",
" evaluationsT.at[exampleSize, \"Def1Def2T\"] = pct_1T\n",
" evaluationsF.at[exampleSize, \"Def1Def2F\"] = pct_1F\n",
"\n",
"\n",
" pct_2T = ((devDfT[\"def1\"] == devDfT[\"stuftDef2\"]).apply(lambda x: \"T\" if x else \"F\") == devDfT[\"actual\"]).mean()\n",
" pct_2F = ((devDfF[\"def1\"] == devDfF[\"stuftDef2\"]).apply(lambda x: \"T\" if x else \"F\") == devDfF[\"actual\"]).mean()\n",
" evaluationsT.at[exampleSize, \"Def1stuftDef2T\"] = pct_2T\n",
" evaluationsF.at[exampleSize, \"Def1stuftDef2F\"] = pct_2F\n",
"\n",
" pct_3T = ((devDfT[\"stuftDef1\"] == devDfT[\"stuftDef2\"]).apply(lambda x: \"T\" if x else \"F\") == devDfT[\"actual\"]).mean()\n",
" pct_3F = ((devDfF[\"stuftDef1\"] == devDfF[\"stuftDef2\"]).apply(lambda x: \"T\" if x else \"F\") == devDfF[\"actual\"]).mean()\n",
"\n",
" evaluationsT.at[exampleSize, \"stuftDef1stuftDef2T\"] = pct_3T\n",
" evaluationsF.at[exampleSize, \"stuftDef1stuftDef2F\"] = pct_3F\n",
"\n",
" pct_4T = (((devDfT[\"def1\"] == devDfT[\"stuftDef2\"]) & (devDfT[\"def2\"] == devDfT[\"stuftDef1\"])).apply(lambda x: \"T\" if x else \"F\") == devDfT[\"actual\"]).mean()\n",
" pct_4F = (((devDfF[\"def1\"] == devDfF[\"stuftDef2\"]) & (devDfF[\"def2\"] == devDfF[\"stuftDef1\"])).apply(lambda x: \"T\" if x else \"F\") == devDfF[\"actual\"]).mean()\n",
"\n",
" evaluationsT.at[exampleSize, \"pairwiseT\"] = pct_4T\n",
" evaluationsF.at[exampleSize, \"pairwiseF\"] = pct_4F\n",
"\n"
],
"execution_count": 299,
"outputs": [
{
"output_type": "stream",
"text": [
"EXAMPLE SIZE: 1\n",
"EXAMPLE SIZE: 2\n",
"EXAMPLE SIZE: 3\n",
"EXAMPLE SIZE: 4\n",
"EXAMPLE SIZE: 5\n",
"EXAMPLE SIZE: 6\n",
"EXAMPLE SIZE: 7\n",
"EXAMPLE SIZE: 8\n",
"EXAMPLE SIZE: 9\n",
"EXAMPLE SIZE: 10\n",
"EXAMPLE SIZE: 11\n",
"EXAMPLE SIZE: 12\n",
"EXAMPLE SIZE: 13\n",
"EXAMPLE SIZE: 14\n",
"EXAMPLE SIZE: 15\n",
"EXAMPLE SIZE: 16\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "wpKKh1BjAo4I",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 393
},
"outputId": "6ca600e4-1061-4fb0-e3d0-055118e808e1"
},
"source": [
"fig, axs = plt.subplots(nrows=1, ncols=4, facecolor=\"w\", figsize=(18,6))\n",
"\n",
"\n",
"for i in range(4):\n",
" (100*evaluations)[[evaluations.columns[i]]].plot(title=evaluations.columns[i], ax=axs[i], color=colors, ylim=(0,100))\n",
" (100*evaluationsT)[[evaluationsT.columns[i]]].plot(ax=axs[i], style=\"--\", color=colors)\n",
" (100*evaluationsF)[[evaluationsF.columns[i]]].plot(ax=axs[i], style=\":\", color=colors)\n",
"\n",
" axs[0].set_ylabel(\"% accuracy\")\n",
" axs[i].set_xlabel(\"Number Examples\")\n",
" \n",
" axs[i].legend(loc='lower left', labels=[\"Accuracy\", \"True Accuracy\", \"False Accuracy\"])\n",
"\n"
],
"execution_count": 310,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABCIAAAGDCAYAAAD+qbG/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3gU1dcH8O+mACEQQuiBAEJoUkSKFClSpQoCCtKlKiIiNgRpKiIgVXyVbkCUKigoRaRXqdIUA0qAAIE0Qgipe98/zm9ZElI2m9md3c338zz7JNtmzm4yd2bO3HuuQSmlQERERERERERkB256B0BEREREREREuQcTEURERERERERkN0xEEBEREREREZHdMBFBRERERERERHbDRAQRERERERER2Q0TEURERERERERkN0xEUI59/fXXKFGiBAoUKICIiAibry8sLAzNmjVDwYIF8c4779h8fUS5mb23b5MHDx6gc+fOKFSoEF566SWbrUevz0fkaDZu3IiAgAAUKFAAp06dssk69Nx/u/rnI3Jm7du3R1BQUI6X89lnn2HIkCEaRET2wEQEoXz58vDy8kLBggXh6+uLxo0b45tvvoHRaMzyvUlJSRgzZgx27NiB2NhYFClSBBMmTEDNmjXh4eGByZMnp3r9t99+C3d3dxQoUAAFChTAE088gVdffRX//POPxfEuWrQIRYsWRUxMDGbNmoWgoCDUrVsXPj4+KFOmDN5//30kJydn92sgckn23L4zYzAYcOnSJYtfv379eoSFhSEiIgLr1q3DwIED8dFHH2n22dL7fCkpKXjllVfg7++PQoUK4dlnn8XRo0ctjpnIUUyePBl9+/bN1nveffddLFiwALGxsShcuDAMBkOqfakt9t/nzp3D888/j6JFi8JgMLjc5+PxCZFltm7digEDBuR4OePGjcOSJUs0iIjsgYkIAgBs3rwZ9+7dQ0hICMaOHYvp06dj8ODBWb4vLCwM8fHxqF69+sPHAgMDMWPGDHTs2DHd9zRq1AixsbG4e/cudu7cCS8vL9StWxfnzp2zKNaQkBA8+eSTDw9a4uLiMHfuXISHh+Po0aP4/fff8cUXX1i0LKLcwJ7bt1ZCQkJQuXJleHh4ZPo6az8b8Pjni42NRf369XHixAlERkZiwIAB6NixI2JjY3P8eYgcXUhI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+AMYMgQwGPSOhsjpMRFBRERERESUmaVLgTx5gH799I6EyCWw3CsREREREVFmJkwA2rYFihTROxIil8AeEURERERERJkpWhTo2FHvKIhcBhMRREREREREGRk9Gti0Se8oiFwKExFERERERETpCQ4G5s0DLlzQOxIil8JEBBERERERUXqWLQPc3YGBA/WOhMilMBFBRERERESUVlISsHy51Ibw99c7GiKXwkQEERERERFRWr/8AoSFAUOG6B0JkcthIoKIiIiIiCitPHmA9u3lRkSa8tA7ACIiIiIiIofToYPciEhz7BFBRERERERERJjK/0MAACAASURBVHbDRAQRERERERER2Q0TEURERERERERkN0xEEBEREREREZHdMBFBRERERERERHbDRER6rlwBvvpK7yiIiIiIiIiIXA4TEem5fRv4+GPgwgW9IyEiIiIiIiJyKR56B+BQbtwAPD2BsmWBkSMBPz+9IyIiIiIiIiJyKUxEmCgFdO8OJCQAx48DEyboHRERERERERGRy2EiwsRgAGbPBmJjATc3wGgEDhwASpUCKlXSOzoiIiIiIiIil8AaEUoBJ0/K740aAW3ayO+xsUDbtsCCBfrFRkRERERERORimIj45hugfn3gxInUj/v4ADt2AFOn6hMXERERERERkQvi0Ix+/WQYRp06jz/XrJn94yEiIiIiIiJyYbm3R8TJk0BiIlCgAPDGG1IjIj1r1gAzZ9o3NiIiIiIiIiIXlTsTEbduSW+HDz7I+rW//Qb88IPUkiAiIiIiIiKiHNElETFnzhxUr14dNWrUwCuvvIL4+Hj8999/aNCgAQIDA9GzZ08kJibaLoCSJYElSyxLRMybJ/UjMuoxQUSa0L1dICKHw3aBiNJiu0DkGuyeiAgNDcX8+fNx/PhxnDt3DikpKVi9ejU++OADvP3227h06RIKFy6MpUuXar/y8HDgr7/k9169JCGRFW9vJiGIbEzXdoGIHBLbBSJKi+0CkevQpUdEcnIyHjx4gOTkZMTFxaFUqVLYtWsXevToAQAYMGAANm3apP2Khw0DWrUCHjzI3vu2bgWqVQMiI7WPiYgA6NguEJHDYrtARGmxXSByDXZPRJQuXRrvvvsuypYti1KlSqFQoUKoW7cufH194eEhk3iUKVMGoaGh2q989mxg6VLAyyt77ytRAihbVnpUEJHmdG0X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ZLapMWPk/o0b2sdrNEr9jIMH5Ri/aVPt15EbTJkitQu//tr269J8slA7cpr5ivftU8rbW6nKlZW6fj3916SkyNzzxYsrFR1t3/icSXKyzNlrMCi1fr1SixbJPL5z5mT93vh4pU6eNN8vVkyp11833y9USKm33jLfz5dPqfffl99v3pT1hobm/DPs26dUYmLOl/OouDilRo2S76J6daX+/FOzRTvNdvY/zhZvhubPV8rNTamnn8643cjK+vXyP7Fggbax5RZ//KFU/vxK1aun1L17tltPZKRSJUooVaeOUklJtluPhpxtO3O2eDUREaFU69ZKHTmi3TKPH1fK3V2pzZu1WyY5nvv3pU3q1Stbb3O27Szb8b72mhwbhofbJqCM3LunVIECSr36qn3Xq5RSGzfKccT33z/+3IkTSjVrZj723L4982UZjXLcnj+/Un5+Sm3YoG2so0dLLLNmabvc3KhNGzlPio3N8aIy286YiLC1PXskCVGlilI3bmT+2mPH5AR7zBj7xKaFuDilzpzRfrnvv6/U//1f6seMRqXefFMamblzzY916aJU3rzZj+PGDaWiosz3Q0NT379+3ZwU2r1bdsqPJjKsceWKUh4eSo0fn7PlmERGKrVmjewAAElGxMVps+z/cYrt7BHOFu9jjEbzzrRLl5ydABuNSrVsqVThwkrduaNdjLnBpUuyE37iCaVu3bL9+tatk7/5jBnaLO/cOaVWrJD/ARtwtu3M2eJ9jNEof8/sJiWTkiSBr2Uc9tgeSH9XrigVFiYJrREjLLpI5mzbWbbjPXNG2ukvvrBNQBlZskTWe/CgfderlFworVZNqVq1zPuT0FClBg6Uc5aiRZX6+uvsJdEvXpQEP6DUoEE5P865eFGp996T5b31ls32e7nKoUPyfU6fnuNFMRGhl927JetXtapcUbfEkCFyonrhgk1D00z37kqVKSMNlVaSkpRq3z517wSlpOEHHk/U3L6tVMmSStWoodSDB9rFkdb9++bf//vPumUYjUr99JPs3K2RkiIJq08+UapxY7liDijl76/U1q3WLTMLDr+dpeFs8T7m6FH5m77+ujYnEOfOyRXM4cNzvqzc4s4dpSpVUqpIETnAsQdTUjVfPqWCg61fTkqKJGrz5pX/o99/1y7GRzjbduZs8T5m4kT5e3booHck5OrOnjX/vnOnUqVLK+Xp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\n",
"text/plain": [
"<Figure size 1296x432 with 4 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "gds5bUC8Au3Z",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "8uSLfxYJEB93",
"colab_type": "code",
"colab": {}
},
"source": [
"evaluations.to_pickle(\"evals_noun_specia.pkl\")"
],
"execution_count": 224,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "Cmn9056QFVXo",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 17
},
"outputId": "66e21cf7-5d62-4118-ff71-d7c3121c96c0"
},
"source": [
"files.download(\"evals_noun_specia.pkl\")"
],
"execution_count": 175,
"outputs": [
{
"output_type": "display_data",
"data": {
"application/javascript": [
"\n",
" async function download(id, filename, size) {\n",
" if (!google.colab.kernel.accessAllowed) {\n",
" return;\n",
" }\n",
" const div = document.createElement('div');\n",
" const label = document.createElement('label');\n",
" label.textContent = `Downloading \"${filename}\": `;\n",
" div.appendChild(label);\n",
" const progress = document.createElement('progress');\n",
" progress.max = size;\n",
" div.appendChild(progress);\n",
" document.body.appendChild(div);\n",
"\n",
" const buffers = [];\n",
" let downloaded = 0;\n",
"\n",
" const channel = await google.colab.kernel.comms.open(id);\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
"\n",
" for await (const message of channel.messages) {\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
" if (message.buffers) {\n",
" for (const buffer of message.buffers) {\n",
" buffers.push(buffer);\n",
" downloaded += buffer.byteLength;\n",
" progress.value = downloaded;\n",
" }\n",
" }\n",
" }\n",
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
" const a = document.createElement('a');\n",
" a.href = window.URL.createObjectURL(blob);\n",
" a.download = filename;\n",
" div.appendChild(a);\n",
" a.click();\n",
" div.remove();\n",
" }\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"application/javascript": [
"download(\"download_722fb9c4-6639-4a0e-9312-9b5b725e45f0\", \"evals_noun_specia.pkl\", 1195)"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "rK9wVFHTFZdl",
"colab_type": "code",
"colab": {}
},
"source": [
"import pickle"
],
"execution_count": 216,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "-kdaMT_jFas5",
"colab_type": "code",
"colab": {}
},
"source": [
"with open(\"devResults_1-16.pkl\", \"wb\") as fh:\n",
" pickle.dump(devResults, fh)"
],
"execution_count": 246,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "QreMIGciFjAP",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 17
},
"outputId": "b2a708e4-8174-483f-da58-eb9cc94a3a31"
},
"source": [
"files.download(\"devResults_1-16.pkl\")"
],
"execution_count": 247,
"outputs": [
{
"output_type": "display_data",
"data": {
"application/javascript": [
"\n",
" async function download(id, filename, size) {\n",
" if (!google.colab.kernel.accessAllowed) {\n",
" return;\n",
" }\n",
" const div = document.createElement('div');\n",
" const label = document.createElement('label');\n",
" label.textContent = `Downloading \"${filename}\": `;\n",
" div.appendChild(label);\n",
" const progress = document.createElement('progress');\n",
" progress.max = size;\n",
" div.appendChild(progress);\n",
" document.body.appendChild(div);\n",
"\n",
" const buffers = [];\n",
" let downloaded = 0;\n",
"\n",
" const channel = await google.colab.kernel.comms.open(id);\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
"\n",
" for await (const message of channel.messages) {\n",
" // Send a message to notify the kernel that we're ready.\n",
" channel.send({})\n",
" if (message.buffers) {\n",
" for (const buffer of message.buffers) {\n",
" buffers.push(buffer);\n",
" downloaded += buffer.byteLength;\n",
" progress.value = downloaded;\n",
" }\n",
" }\n",
" }\n",
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
" const a = document.createElement('a');\n",
" a.href = window.URL.createObjectURL(blob);\n",
" a.download = filename;\n",
" div.appendChild(a);\n",
" a.click();\n",
" div.remove();\n",
" }\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"application/javascript": [
"download(\"download_cd3f2345-f634-4366-af42-f476692dc397\", \"devResults_1-16.pkl\", 812523)"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "pRzNPdktFndJ",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment