{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "m83IiqVREJ96" }, "source": [ "# Adapting TextAttack to Chinese Language" ] }, { "cell_type": "markdown", "metadata": { "id": "6UZ0d84hEJ98" }, "source": [ "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/QData/TextAttack/blob/master/docs/2notebook/Example_6_Chinese%20Attack.ipynb)\n", "\n", "\n", "[![View Source on GitHub](https://img.shields.io/badge/github-view%20source-black.svg)](https://github.com/QData/TextAttack/blob/master/docs/2notebook/Example_6_Chinese%20Attack.ipynb)" ] }, { "cell_type": "markdown", "metadata": { "id": "tjqc2c5_7YaX" }, "source": [ " Please remember to run the following in your notebook enviroment before running the tutorial codes:\n", "\n", "```\n", "pip3 install textattack[tensorflow]\n", "```\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "qZ5xnoevEJ99" }, "source": [ "With a few additional modifications to the standard TextAttack commands, lanaguage models in Chinese can be attacked just as English models. Four transformations are available for either Chinese attack or augmentation:\n", "\n", "1. **ChineseHomophoneCharacterSwap**: transforms an input by replacing its words with substitions that share similar/identical pronounciation.\n", "2. **ChineseMorphonymCharacterSwap**: transforms an input by replacing its words with substitions that share similar glyph structures.\n", "3. **ChineseWordSwapHowNet**: transforms an input by replacing its words with synonyms provided by [OpenHownet](http://nlp.csai.tsinghua.edu.cn/).\n", "4. **ChineseWordSwapMaskedLM**: transforms an input with potential replacements using a masked language model." ] }, { "cell_type": "markdown", "metadata": { "id": "2EP1DJylSfkD" }, "source": [ "We begin with imports:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "5AXyxiLD4X93" }, "outputs": [], "source": [ "# Import required packages\n", "import transformers\n", "import string\n", "import os\n", "import pandas as pd\n", "import datasets\n", "\n", "# Import classes required to build an Attacker\n", "from textattack.models.wrappers import HuggingFaceModelWrapper\n", "from textattack.search_methods import GreedyWordSwapWIR\n", "from textattack.constraints.pre_transformation import (\n", " RepeatModification,\n", " StopwordModification,\n", ")\n", "from textattack.goal_functions import UntargetedClassification\n", "\n", "from textattack import Attack, Attacker, AttackArgs\n", "from textattack.loggers import CSVLogger\n", "from textattack.datasets import Dataset, HuggingFaceDataset\n", "\n", "# Import optional MUSE for higher quality examples\n", "from textattack.constraints.semantics.sentence_encoders import (\n", " MultilingualUniversalSentenceEncoder,\n", ")\n", "\n", "muse = MultilingualUniversalSentenceEncoder(\n", " threshold=0.9,\n", " metric=\"cosine\",\n", " compare_against_original=True,\n", " window_size=15,\n", " skip_text_shorter_than_window=True,\n", ")\n", "\n", "# Import the transformations\n", "\n", "from textattack.transformations import CompositeTransformation\n", "from textattack.transformations import ChineseWordSwapMaskedLM\n", "from textattack.transformations import ChineseMorphonymCharacterSwap\n", "from textattack.transformations import ChineseWordSwapHowNet\n", "from textattack.transformations import ChineseHomophoneCharacterSwap" ] }, { "cell_type": "markdown", "metadata": { "id": "1mSvCqhHSi0h" }, "source": [ "Models and datasets would also need to be set up:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "CfnC9qUFPq9h" }, "outputs": [], "source": [ "# In this example, we will attack a pre-trained entailment model from HugginFace (https://huggingface.co/uer/roberta-base-finetuned-chinanews-chinese)\n", "tokenizer = transformers.AutoTokenizer.from_pretrained(\n", " \"uer/roberta-base-finetuned-chinanews-chinese\"\n", ")\n", "model = transformers.AutoModelForSequenceClassification.from_pretrained(\n", " \"uer/roberta-base-finetuned-chinanews-chinese\"\n", ")\n", "model_wrapper = HuggingFaceModelWrapper(model, tokenizer)\n", "\n", "# Set goal function\n", "goal_function = UntargetedClassification(model_wrapper, query_budget=10000)\n", "\n", "# Set dataset from which we will generate adversraial examples\n", "path = os.path.abspath(\"\")\n", "path_list = path.split(os.sep)\n", "temppath = os.path.normpath(\"examples/dataset/zh_sentiment/entailment_dataset.tsv\")\n", "dataset = datasets.load_dataset(\"csv\", data_files=temppath, delimiter=\"\\t\")[\"train\"]\n", "dataset = HuggingFaceDataset(\n", " dataset,\n", " dataset_columns=([\"text\"], \"label\"),\n", " label_names=[\n", " \"Mainland China politics\",\n", " \"Hong Kong - Macau politics\",\n", " \"International news\",\n", " \"Financial news\",\n", " \"Culture\",\n", " \"Entertainment\",\n", " \"Sports\",\n", " ],\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "XfJVzCdRSr3d" }, "source": [ "If this is your first time running Hownet, run this code block" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Hgal-PHeQwys" }, "outputs": [], "source": [ "import OpenHowNet\n", "\n", "OpenHowNet.download()" ] }, { "cell_type": "markdown", "metadata": { "id": "SrtoxdrMSZ0X" }, "source": [ "\n", "\n", "Now we are ready to attack! With goal function, transformation, constraints, search method, and goal function, we create the Attacker as any other TextAttack attacks\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000, "referenced_widgets": [ "4b423038915e40158f9da4c07d09aad3", "3711cf0a18994cee8fc840d9a93cf5d3", "7f77bd7b8e5f45ae94cfc45f915c0c72", "fe0ca6138bc54b628c03e590c6e96aed", "8b39363f69eb46009c5357263a65248c", "6b976fd913584da69456c1b6d53483cb", "ea568ab2407f474da3b1f1b2540fa3a8", "ff6b34a7e75b443593f3dca5d050cd52", "4f31972fd2fd44bbac063bb4b5075e98", "7de1551891ec447ab6d80ea1de145f16", "e5e2c0507c834887b80f5717c1e6d5f3", "588b1321a9274de6a8a9e86622d90be4", "2436b07259a34ee18fe9c1007f7b615b", "98aac5a0baee4930bd461f2c5fd73f4a", "34607a8556794a5a86c18abe5bd7e5a5", "f78f6701ce4f4b3b9ff0af925620f261", "a1e3fb5cceed4e95957a17192a641b69", "83e9b14c4d354fdc80db4f8a881f19f3", "5f5457f292284dd8b914f45e26b2f749", "2bb72191846f49528663680a315d8b01", "83eff532314e4edcbfe648b321e9a310", "3d30e700d32443fdb37b5ab934d2d70a", "a132f09845a54cbe865cbe8159bb693e", "0af0e1eaea2f48c5b0fec6e550bd1baa", "dd6b0a5d9db245338a8fdb2ef5b29bf9", "58fc309041b54e94ae265167fa20d8d7", "89dfd3fdc41e417a870901bc79e47495", "21472d1c4c8b494a8d3660b3320e9d4b", "7511bb9ca5424674bb2350dff63c468a", "f6dd2c2cb4e346fe9af7026b5d2162e9", "a34ad57624fc422aa4832db3963298e6", "5167daffe92e44d2acc2af2d9b9738df", "acbfb34a353f41649675bd104069d14e", "be070cb4a1624b0bb8f9b594c6b951a5", "2edb7130713d4e10a07bbf808abb9771", "5ae4c618f75d4ef9b65e5020fccb6d72", "138d8260e67f4bc58106b9b42f7abd12", "d7621b5c619a4ce38ebe63924374cf78", "1b208b6df75f4a9e97faa4e3705a9442", "a7871b8ec3ec40e7bbbe6a5f40b79f4a", "aeb7ee752d834b4cbaa189419fd75dd4", "b47dfff73e73410aa89f65e3c5b0c366", "bdf3571e59ef4a688ab89d4badda27b1", "d3bab427b92144d6b9ce96eac18ceb89" ] }, "id": "C_0Z8njnRblT", "outputId": "3890d784-de7f-4b70-f984-cbc9e0c7f700" }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4b423038915e40158f9da4c07d09aad3", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Downloading: 0%| | 0.00/615 [00:00 [[[FAILED]]]\n", "\n", "林书豪新秀赛上甘心\"跑龙套\" 自称仍是底薪球员\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 0 / 1 / 0 / 1: 10%|█ | 2/20 [06:55<1:02:18, 207.69s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 0 / 2 / 0 / 2: 10%|█ | 2/20 [06:55<1:02:18, 207.70s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 2 ---------------------------------------------\n", "[[Culture (100%)]] --> [[[FAILED]]]\n", "\n", "成都现“真人图书馆”:无书“借人”给你读\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 0 / 2 / 0 / 2: 15%|█▌ | 3/20 [07:01<39:50, 140.61s/it] \u001b[A\n", "[Succeeded / Failed / Skipped / Total] 0 / 2 / 1 / 3: 15%|█▌ | 3/20 [07:01<39:50, 140.61s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 3 ---------------------------------------------\n", "[[Mainland china politics (57%)]] --> [[[SKIPPED]]]\n", "\n", "中国经济走向更趋稳健务实\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 0 / 2 / 1 / 3: 20%|██ | 4/20 [11:33<46:12, 173.28s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 0 / 3 / 1 / 4: 20%|██ | 4/20 [11:33<46:12, 173.28s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 4 ---------------------------------------------\n", "[[Sports (100%)]] --> [[[FAILED]]]\n", "\n", "国际田联世界挑战赛 罗伯斯迎来赛季第三冠\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 0 / 3 / 1 / 4: 25%|██▌ | 5/20 [14:52<44:36, 178.44s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 5 ---------------------------------------------\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 1 / 3 / 1 / 5: 25%|██▌ | 5/20 [14:53<44:39, 178.62s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[[International news (66%)]] --> [[Entertainment (68%)]]\n", "\n", "德国一电视台合成“默克尔头巾照”惹争议\n", "\n", "德国一电视台合成“性感头巾照”惹争议\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 1 / 3 / 1 / 5: 30%|███ | 6/20 [14:57<34:55, 149.65s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 1 / 3 / 2 / 6: 30%|███ | 6/20 [14:57<34:55, 149.65s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 6 ---------------------------------------------\n", "[[Mainland china politics (80%)]] --> [[[SKIPPED]]]\n", "\n", "朴槿惠今访华 韩媒称访西安可能为增进与习近平友谊\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 1 / 3 / 2 / 6: 35%|███▌ | 7/20 [15:04<27:59, 129.16s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 1 / 3 / 3 / 7: 35%|███▌ | 7/20 [15:04<27:59, 129.16s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 7 ---------------------------------------------\n", "[[Mainland china politics (59%)]] --> [[[SKIPPED]]]\n", "\n", "中国驻休斯敦总领馆举办春节招待会向华裔拜年\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 1 / 3 / 3 / 7: 40%|████ | 8/20 [15:08<22:43, 113.60s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 1 / 3 / 4 / 8: 40%|████ | 8/20 [15:08<22:43, 113.61s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 8 ---------------------------------------------\n", "[[Culture (93%)]] --> [[[SKIPPED]]]\n", "\n", "NASA发现“地球兄弟” 具备生命存活条件\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 1 / 3 / 4 / 8: 45%|████▌ | 9/20 [15:13<18:36, 101.52s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 1 / 3 / 5 / 9: 45%|████▌ | 9/20 [15:13<18:36, 101.52s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 9 ---------------------------------------------\n", "[[Culture (53%)]] --> [[[SKIPPED]]]\n", "\n", "儿子去世后社交网站账号停用 父亲请求保留记忆\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 1 / 3 / 5 / 9: 50%|█████ | 10/20 [18:20<18:20, 110.06s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 2 / 3 / 5 / 10: 50%|█████ | 10/20 [18:20<18:20, 110.06s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 10 ---------------------------------------------\n", "[[Culture (100%)]] --> [[Entertainment (72%)]]\n", "\n", "第六届鲁迅文学奖颁发 格非等35位获奖者领奖\n", "\n", "第六届决赛颁发 格非等35位获奖者领奖\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 2 / 3 / 5 / 10: 55%|█████▌ | 11/20 [22:44<18:36, 124.02s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 3 / 3 / 5 / 11: 55%|█████▌ | 11/20 [22:44<18:36, 124.02s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 11 ---------------------------------------------\n", "[[Hong kong - macau politics (96%)]] --> [[Culture (79%)]]\n", "\n", "东莞台商欲借“台博会”搭建内销平台\n", "\n", "东莞讯欲借“艺博会”搭建内销平台\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 3 / 3 / 5 / 11: 60%|██████ | 12/20 [22:48<15:12, 114.07s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 3 / 3 / 6 / 12: 60%|██████ | 12/20 [22:48<15:12, 114.07s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 12 ---------------------------------------------\n", "[[Financial news (56%)]] --> [[[SKIPPED]]]\n", "\n", "日本网友买扇贝当下酒菜 发现内有真正珍珠(图)\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 3 / 3 / 6 / 12: 65%|██████▌ | 13/20 [28:59<15:36, 133.78s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 3 / 4 / 6 / 13: 65%|██████▌ | 13/20 [28:59<15:36, 133.78s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 13 ---------------------------------------------\n", "[[Sports (100%)]] --> [[[FAILED]]]\n", "\n", "篮球热潮席卷张江 NBA中投王与拉拉队鼎力加盟\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 3 / 4 / 6 / 13: 70%|███████ | 14/20 [33:40<14:26, 144.34s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 3 / 5 / 6 / 14: 70%|███████ | 14/20 [33:40<14:26, 144.34s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 14 ---------------------------------------------\n", "[[Sports (100%)]] --> [[[FAILED]]]\n", "\n", "UFC终极格斗冠军赛开打 \"草原狼\"遭遇三连败\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 3 / 5 / 6 / 14: 75%|███████▌ | 15/20 [33:45<11:15, 135.04s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 3 / 5 / 7 / 15: 75%|███████▌ | 15/20 [33:45<11:15, 135.04s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 15 ---------------------------------------------\n", "[[Culture (92%)]] --> [[[SKIPPED]]]\n", "\n", "水果style:心形水果惹人爱 骰子西瓜乐趣多(图)\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 3 / 5 / 7 / 15: 80%|████████ | 16/20 [40:09<10:02, 150.60s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 3 / 6 / 7 / 16: 80%|████████ | 16/20 [40:09<10:02, 150.60s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 16 ---------------------------------------------\n", "[[Sports (100%)]] --> [[[FAILED]]]\n", "\n", "同里杯中国天元赛前瞻:芈昱廷李钦诚争挑战权\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 3 / 6 / 7 / 16: 85%|████████▌ | 17/20 [43:32<07:41, 153.67s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 4 / 6 / 7 / 17: 85%|████████▌ | 17/20 [43:32<07:41, 153.67s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 17 ---------------------------------------------\n", "[[Entertainment (100%)]] --> [[Financial news (99%)]]\n", "\n", "桂纶镁为戏体验生活 东北洗衣店当店员\n", "\n", "桂纶品牌为首体验生活 东北洗衣店当家\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 4 / 6 / 7 / 17: 90%|█████████ | 18/20 [44:01<04:53, 146.75s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 4 / 7 / 7 / 18: 90%|█████████ | 18/20 [44:01<04:53, 146.75s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 18 ---------------------------------------------\n", "[[Culture (95%)]] --> [[[FAILED]]]\n", "\n", "河南羲皇故都朝祖会流传6000年 一天游客80万人\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 4 / 7 / 7 / 18: 95%|█████████▌| 19/20 [44:07<02:19, 139.35s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 4 / 7 / 8 / 19: 95%|█████████▌| 19/20 [44:07<02:19, 139.35s/it]\u001b[A" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 19 ---------------------------------------------\n", "[[Culture (92%)]] --> [[[SKIPPED]]]\n", "\n", "辛柏青谈追求妻子:用1袋洗衣粉、2块肥皂打动她的\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "[Succeeded / Failed / Skipped / Total] 4 / 7 / 8 / 19: 100%|██████████| 20/20 [49:19<00:00, 147.96s/it]\u001b[A\n", "[Succeeded / Failed / Skipped / Total] 5 / 7 / 8 / 20: 100%|██████████| 20/20 [49:19<00:00, 147.96s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--------------------------------------------- Result 20 ---------------------------------------------\n", "[[International news (100%)]] --> [[Mainland china politics (66%)]]\n", "\n", "朝鲜谴责韩国前方部队打出反朝口号\n", "\n", "中国谴责日本前方部队打出侵略口号\n", "\n", "\n", "\n", "+-------------------------------+--------+\n", "| Attack Results | |\n", "+-------------------------------+--------+\n", "| Number of successful attacks: | 5 |\n", "| Number of failed attacks: | 7 |\n", "| Number of skipped attacks: | 8 |\n", "| Original accuracy: | 60.0% |\n", "| Accuracy under attack: | 35.0% |\n", "| Attack success rate: | 41.67% |\n", "| Average perturbed word %: | 36.39% |\n", "| Average num. words per input: | 9.3 |\n", "| Avg num queries: | 45.5 |\n", "+-------------------------------+--------+\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "# transformation, using ChineseWordSwapMaskedLM transformation in this example\n", "\n", "transformation = ChineseWordSwapMaskedLM()\n", "\n", "# constraint\n", "stopwords = set(\n", " [\n", " \"、\",\n", " \"。\",\n", " \"〈\",\n", " \"〉\",\n", " \"《\",\n", " \"》\",\n", " \"一\",\n", " \"一个\",\n", " \"一些\",\n", " \"一何\",\n", " \"一切\",\n", " \"一则\",\n", " \"一方面\",\n", " \"一旦\",\n", " \"一来\",\n", " \"一样\",\n", " \"一种\",\n", " \"一般\",\n", " \"一转眼\",\n", " \"七\",\n", " \"万一\",\n", " \"三\",\n", " \"上\",\n", " \"上下\",\n", " \"下\",\n", " \"不\",\n", " \"不仅\",\n", " \"不但\",\n", " \"不光\",\n", " \"不单\",\n", " \"不只\",\n", " \"不外乎\",\n", " \"不如\",\n", " \"不妨\",\n", " \"不尽\",\n", " \"不尽然\",\n", " \"不得\",\n", " \"不怕\",\n", " \"不惟\",\n", " \"不成\",\n", " \"不拘\",\n", " \"不料\",\n", " \"不是\",\n", " \"不比\",\n", " \"不然\",\n", " \"不特\",\n", " \"不独\",\n", " \"不管\",\n", " \"不至于\",\n", " \"不若\",\n", " \"不论\",\n", " \"不过\",\n", " \"不问\",\n", " \"与\",\n", " \"与其\",\n", " \"与其说\",\n", " \"与否\",\n", " \"与此同时\",\n", " \"且\",\n", " \"且不说\",\n", " \"且说\",\n", " \"两者\",\n", " \"个\",\n", " \"个别\",\n", " \"中\",\n", " \"临\",\n", " \"为\",\n", " \"为了\",\n", " \"为什么\",\n", " \"为何\",\n", " \"为止\",\n", " \"为此\",\n", " \"为着\",\n", " \"乃\",\n", " \"乃至\",\n", " \"乃至于\",\n", " \"么\",\n", " \"之\",\n", " \"之一\",\n", " \"之所以\",\n", " \"之类\",\n", " \"乌乎\",\n", " \"乎\",\n", " \"乘\",\n", " \"九\",\n", " \"也\",\n", " \"也好\",\n", " \"也罢\",\n", " \"了\",\n", " \"二\",\n", " \"二来\",\n", " \"于\",\n", " \"于是\",\n", " \"于是乎\",\n", " \"云云\",\n", " \"云尔\",\n", " \"五\",\n", " \"些\",\n", " \"亦\",\n", " \"人\",\n", " \"人们\",\n", " \"人家\",\n", " \"什\",\n", " \"什么\",\n", " \"什么样\",\n", " \"今\",\n", " \"介于\",\n", " \"仍\",\n", " \"仍旧\",\n", " \"从\",\n", " \"从此\",\n", " \"从而\",\n", " \"他\",\n", " \"他人\",\n", " \"他们\",\n", " \"他们们\",\n", " \"以\",\n", " \"以上\",\n", " \"以为\",\n", " \"以便\",\n", " \"以免\",\n", " \"以及\",\n", " \"以故\",\n", " \"以期\",\n", " \"以来\",\n", " \"以至\",\n", " \"以至于\",\n", " \"以致\",\n", " \"们\",\n", " \"任\",\n", " \"任何\",\n", " \"任凭\",\n", " \"会\",\n", " \"似的\",\n", " \"但\",\n", " \"但凡\",\n", " \"但是\",\n", " \"何\",\n", " \"何以\",\n", " \"何况\",\n", " \"何处\",\n", " \"何时\",\n", " \"余外\",\n", " \"作为\",\n", " \"你\",\n", " \"你们\",\n", " \"使\",\n", " \"使得\",\n", " \"例如\",\n", " \"依\",\n", " \"依据\",\n", " \"依照\",\n", " \"便于\",\n", " \"俺\",\n", " \"俺们\",\n", " \"倘\",\n", " \"倘使\",\n", " \"倘或\",\n", " \"倘然\",\n", " \"倘若\",\n", " \"借\",\n", " \"借傥然\",\n", " \"假使\",\n", " \"假如\",\n", " \"假若\",\n", " \"做\",\n", " \"像\",\n", " \"儿\",\n", " \"先不先\",\n", " \"光\",\n", " \"光是\",\n", " \"全体\",\n", " \"全部\",\n", " \"八\",\n", " \"六\",\n", " \"兮\",\n", " \"共\",\n", " \"关于\",\n", " \"关于具体地说\",\n", " \"其\",\n", " \"其一\",\n", " \"其中\",\n", " \"其二\",\n", " \"其他\",\n", " \"其余\",\n", " \"其它\",\n", " \"其次\",\n", " \"具体地说\",\n", " \"具体说来\",\n", " \"兼之\",\n", " \"内\",\n", " \"再\",\n", " \"再其次\",\n", " \"再则\",\n", " \"再有\",\n", " \"再者\",\n", " \"再者说\",\n", " \"再说\",\n", " \"冒\",\n", " \"冲\",\n", " \"况且\",\n", " \"几\",\n", " \"几时\",\n", " \"凡\",\n", " \"凡是\",\n", " \"凭\",\n", " \"凭借\",\n", " \"出于\",\n", " \"出来\",\n", " \"分\",\n", " \"分别\",\n", " \"则\",\n", " \"则甚\",\n", " \"别\",\n", " \"别人\",\n", " \"别处\",\n", " \"别是\",\n", " \"别的\",\n", " \"别管\",\n", " \"别说\",\n", " \"到\",\n", " \"前后\",\n", " \"前此\",\n", " \"前者\",\n", " \"加之\",\n", " \"加以\",\n", " \"区\",\n", " \"即\",\n", " \"即令\",\n", " \"即使\",\n", " \"即便\",\n", " \"即如\",\n", " \"即或\",\n", " \"即若\",\n", " \"却\",\n", " \"去\",\n", " \"又\",\n", " \"又及\",\n", " \"及\",\n", " \"及其\",\n", " \"及至\",\n", " \"反之\",\n", " \"反而\",\n", " \"反过来\",\n", " \"反过来说\",\n", " \"受到\",\n", " \"另\",\n", " \"另一方面\",\n", " \"另外\",\n", " \"另悉\",\n", " \"只\",\n", " \"只当\",\n", " \"只怕\",\n", " \"只是\",\n", " \"只有\",\n", " \"只消\",\n", " \"只要\",\n", " \"只限\",\n", " \"叫\",\n", " \"叮咚\",\n", " \"可\",\n", " \"可以\",\n", " \"可是\",\n", " \"可见\",\n", " \"各\",\n", " \"各个\",\n", " \"各位\",\n", " \"各种\",\n", " \"各自\",\n", " \"同\",\n", " \"同时\",\n", " \"后\",\n", " \"后者\",\n", " \"向\",\n", " \"向使\",\n", " \"向着\",\n", " \"吓\",\n", " \"吗\",\n", " \"否则\",\n", " \"吧\",\n", " \"吧哒\",\n", " \"含\",\n", " \"吱\",\n", " \"呀\",\n", " \"呃\",\n", " \"呕\",\n", " \"呗\",\n", " \"呜\",\n", " \"呜呼\",\n", " \"呢\",\n", " \"呵\",\n", " \"呵呵\",\n", " \"呸\",\n", " \"呼哧\",\n", " \"咋\",\n", " \"和\",\n", " \"咚\",\n", " \"咦\",\n", " \"咧\",\n", " \"咱\",\n", " \"咱们\",\n", " \"咳\",\n", " \"哇\",\n", " \"哈\",\n", " \"哈哈\",\n", " \"哉\",\n", " \"哎\",\n", " \"哎呀\",\n", " \"哎哟\",\n", " \"哗\",\n", " \"哟\",\n", " \"哦\",\n", " \"哩\",\n", " \"哪\",\n", " \"哪个\",\n", " \"哪些\",\n", " \"哪儿\",\n", " \"哪天\",\n", " \"哪年\",\n", " \"哪怕\",\n", " \"哪样\",\n", " \"哪边\",\n", " \"哪里\",\n", " \"哼\",\n", " \"哼唷\",\n", " \"唉\",\n", " \"唯有\",\n", " \"啊\",\n", " \"啐\",\n", " \"啥\",\n", " \"啦\",\n", " \"啪达\",\n", " \"啷当\",\n", " \"喂\",\n", " \"喏\",\n", " \"喔唷\",\n", " \"喽\",\n", " \"嗡\",\n", " \"嗡嗡\",\n", " \"嗬\",\n", " \"嗯\",\n", " \"嗳\",\n", " \"嘎\",\n", " \"嘎登\",\n", " \"嘘\",\n", " \"嘛\",\n", " \"嘻\",\n", " \"嘿\",\n", " \"嘿嘿\",\n", " \"四\",\n", " \"因\",\n", " \"因为\",\n", " \"因了\",\n", " \"因此\",\n", " \"因着\",\n", " \"因而\",\n", " \"固然\",\n", " \"在\",\n", " \"在下\",\n", " \"在于\",\n", " \"地\",\n", " \"基于\",\n", " \"处在\",\n", " \"多\",\n", " \"多么\",\n", " \"多少\",\n", " \"大\",\n", " \"大家\",\n", " \"她\",\n", " \"她们\",\n", " \"好\",\n", " \"如\",\n", " \"如上\",\n", " \"如上所述\",\n", " \"如下\",\n", " \"如何\",\n", " \"如其\",\n", " \"如同\",\n", " \"如是\",\n", " \"如果\",\n", " \"如此\",\n", " \"如若\",\n", " \"始而\",\n", " \"孰料\",\n", " \"孰知\",\n", " \"宁\",\n", " \"宁可\",\n", " \"宁愿\",\n", " \"宁肯\",\n", " \"它\",\n", " \"它们\",\n", " \"对\",\n", " \"对于\",\n", " \"对待\",\n", " \"对方\",\n", " \"对比\",\n", " \"将\",\n", " \"小\",\n", " \"尔\",\n", " \"尔后\",\n", " \"尔尔\",\n", " \"尚且\",\n", " \"就\",\n", " \"就是\",\n", " \"就是了\",\n", " \"就是说\",\n", " \"就算\",\n", " \"就要\",\n", " \"尽\",\n", " \"尽管\",\n", " \"尽管如此\",\n", " \"岂但\",\n", " \"己\",\n", " \"已\",\n", " \"已矣\",\n", " \"巴\",\n", " \"巴巴\",\n", " \"年\",\n", " \"并\",\n", " \"并且\",\n", " \"庶乎\",\n", " \"庶几\",\n", " \"开外\",\n", " \"开始\",\n", " \"归\",\n", " \"归齐\",\n", " \"当\",\n", " \"当地\",\n", " \"当然\",\n", " \"当着\",\n", " \"彼\",\n", " \"彼时\",\n", " \"彼此\",\n", " \"往\",\n", " \"待\",\n", " \"很\",\n", " \"得\",\n", " \"得了\",\n", " \"怎\",\n", " \"怎么\",\n", " \"怎么办\",\n", " \"怎么样\",\n", " \"怎奈\",\n", " \"怎样\",\n", " \"总之\",\n", " \"总的来看\",\n", " \"总的来说\",\n", " \"总的说来\",\n", " \"总而言之\",\n", " \"恰恰相反\",\n", " \"您\",\n", " \"惟其\",\n", " \"慢说\",\n", " \"我\",\n", " \"我们\",\n", " \"或\",\n", " \"或则\",\n", " \"或是\",\n", " \"或曰\",\n", " \"或者\",\n", " \"截至\",\n", " \"所\",\n", " \"所以\",\n", " \"所在\",\n", " \"所幸\",\n", " \"所有\",\n", " \"才\",\n", " \"才能\",\n", " \"打\",\n", " \"打从\",\n", " \"把\",\n", " \"抑或\",\n", " \"拿\",\n", " \"按\",\n", " \"按照\",\n", " \"换句话说\",\n", " \"换言之\",\n", " \"据\",\n", " \"据此\",\n", " \"接着\",\n", " \"故\",\n", " \"故此\",\n", " \"故而\",\n", " \"旁人\",\n", " \"无\",\n", " \"无宁\",\n", " \"无论\",\n", " \"既\",\n", " \"既往\",\n", " \"既是\",\n", " \"既然\",\n", " \"日\",\n", " \"时\",\n", " \"时候\",\n", " \"是\",\n", " \"是以\",\n", " \"是的\",\n", " \"更\",\n", " \"曾\",\n", " \"替\",\n", " \"替代\",\n", " \"最\",\n", " \"月\",\n", " \"有\",\n", " \"有些\",\n", " \"有关\",\n", " \"有及\",\n", " \"有时\",\n", " \"有的\",\n", " \"望\",\n", " \"朝\",\n", " \"朝着\",\n", " \"本\",\n", " \"本人\",\n", " \"本地\",\n", " \"本着\",\n", " \"本身\",\n", " \"来\",\n", " \"来着\",\n", " \"来自\",\n", " \"来说\",\n", " \"极了\",\n", " \"果然\",\n", " \"果真\",\n", " \"某\",\n", " \"某个\",\n", " \"某些\",\n", " \"某某\",\n", " \"根据\",\n", " \"欤\",\n", " \"正值\",\n", " \"正如\",\n", " \"正巧\",\n", " \"正是\",\n", " \"此\",\n", " \"此地\",\n", " \"此处\",\n", " \"此外\",\n", " \"此时\",\n", " \"此次\",\n", " \"此间\",\n", " \"毋宁\",\n", " \"每\",\n", " \"每当\",\n", " \"比\",\n", " \"比及\",\n", " \"比如\",\n", " \"比方\",\n", " \"没奈何\",\n", " \"沿\",\n", " \"沿着\",\n", " \"漫说\",\n", " \"点\",\n", " \"焉\",\n", " \"然则\",\n", " \"然后\",\n", " \"然而\",\n", " \"照\",\n", " \"照着\",\n", " \"犹且\",\n", " \"犹自\",\n", " \"甚且\",\n", " \"甚么\",\n", " \"甚或\",\n", " \"甚而\",\n", " \"甚至\",\n", " \"甚至于\",\n", " \"用\",\n", " \"用来\",\n", " \"由\",\n", " \"由于\",\n", " \"由是\",\n", " \"由此\",\n", " \"由此可见\",\n", " \"的\",\n", " \"的确\",\n", " \"的话\",\n", " \"直到\",\n", " \"相对而言\",\n", " \"省得\",\n", " \"看\",\n", " \"眨眼\",\n", " \"着\",\n", " \"着呢\",\n", " \"矣\",\n", " \"矣乎\",\n", " \"矣哉\",\n", " \"离\",\n", " \"秒\",\n", " \"称\",\n", " \"竟而\",\n", " \"第\",\n", " \"等\",\n", " \"等到\",\n", " \"等等\",\n", " \"简言之\",\n", " \"管\",\n", " \"类如\",\n", " \"紧接着\",\n", " \"纵\",\n", " \"纵令\",\n", " \"纵使\",\n", " \"纵然\",\n", " \"经\",\n", " \"经过\",\n", " \"结果\",\n", " \"给\",\n", " \"继之\",\n", " \"继后\",\n", " \"继而\",\n", " \"综上所述\",\n", " \"罢了\",\n", " \"者\",\n", " \"而\",\n", " \"而且\",\n", " \"而况\",\n", " \"而后\",\n", " \"而外\",\n", " \"而已\",\n", " \"而是\",\n", " \"而言\",\n", " \"能\",\n", " \"能否\",\n", " \"腾\",\n", " \"自\",\n", " \"自个儿\",\n", " \"自从\",\n", " \"自各儿\",\n", " \"自后\",\n", " \"自家\",\n", " \"自己\",\n", " \"自打\",\n", " \"自身\",\n", " \"至\",\n", " \"至于\",\n", " \"至今\",\n", " \"至若\",\n", " \"致\",\n", " \"般的\",\n", " \"若\",\n", " \"若夫\",\n", " \"若是\",\n", " \"若果\",\n", " \"若非\",\n", " \"莫不然\",\n", " \"莫如\",\n", " \"莫若\",\n", " \"虽\",\n", " \"虽则\",\n", " \"虽然\",\n", " \"虽说\",\n", " \"被\",\n", " \"要\",\n", " \"要不\",\n", " \"要不是\",\n", " \"要不然\",\n", " \"要么\",\n", " \"要是\",\n", " \"譬喻\",\n", " \"譬如\",\n", " \"让\",\n", " \"许多\",\n", " \"论\",\n", " \"设使\",\n", " \"设或\",\n", " \"设若\",\n", " \"诚如\",\n", " \"诚然\",\n", " \"该\",\n", " \"说\",\n", " \"说来\",\n", " \"请\",\n", " \"诸\",\n", " \"诸位\",\n", " \"诸如\",\n", " \"谁\",\n", " \"谁人\",\n", " \"谁料\",\n", " \"谁知\",\n", " \"贼死\",\n", " \"赖以\",\n", " \"赶\",\n", " \"起\",\n", " \"起见\",\n", " \"趁\",\n", " \"趁着\",\n", " \"越是\",\n", " \"距\",\n", " \"跟\",\n", " \"较\",\n", " \"较之\",\n", " \"边\",\n", " \"过\",\n", " \"还\",\n", " \"还是\",\n", " \"还有\",\n", " \"还要\",\n", " \"这\",\n", " \"这一来\",\n", " \"这个\",\n", " \"这么\",\n", " \"这么些\",\n", " \"这么样\",\n", " \"这么点儿\",\n", " \"这些\",\n", " \"这会儿\",\n", " \"这儿\",\n", " \"这就是说\",\n", " \"这时\",\n", " \"这样\",\n", " \"这次\",\n", " \"这般\",\n", " \"这边\",\n", " \"这里\",\n", " \"进而\",\n", " \"连\",\n", " \"连同\",\n", " \"逐步\",\n", " \"通过\",\n", " \"遵循\",\n", " \"遵照\",\n", " \"那\",\n", " \"那个\",\n", " \"那么\",\n", " \"那么些\",\n", " \"那么样\",\n", " \"那些\",\n", " \"那会儿\",\n", " \"那儿\",\n", " \"那时\",\n", " \"那样\",\n", " \"那般\",\n", " \"那边\",\n", " \"那里\",\n", " \"都\",\n", " \"鄙人\",\n", " \"鉴于\",\n", " \"针对\",\n", " \"阿\",\n", " \"除\",\n", " \"除了\",\n", " \"除外\",\n", " \"除开\",\n", " \"除此之外\",\n", " \"除非\",\n", " \"随\",\n", " \"随后\",\n", " \"随时\",\n", " \"随着\",\n", " \"难道说\",\n", " \"零\",\n", " \"非\",\n", " \"非但\",\n", " \"非徒\",\n", " \"非特\",\n", " \"非独\",\n", " \"靠\",\n", " \"顺\",\n", " \"顺着\",\n", " \"首先\",\n", " \"︿\",\n", " \"!\",\n", " \"#\",\n", " \"$\",\n", " \"%\",\n", " \"&\",\n", " \"(\",\n", " \")\",\n", " \"*\",\n", " \"+\",\n", " \",\",\n", " \"0\",\n", " \"1\",\n", " \"2\",\n", " \"3\",\n", " \"4\",\n", " \"5\",\n", " \"6\",\n", " \"7\",\n", " \"8\",\n", " \"9\",\n", " \":\",\n", " \";\",\n", " \"<\",\n", " \">\",\n", " \"?\",\n", " \"@\",\n", " \"[\",\n", " \"]\",\n", " \"{\",\n", " \"|\",\n", " \"}\",\n", " \"~\",\n", " \"¥\",\n", " ]\n", ")\n", "stopwords = stopwords.union(set(string.punctuation))\n", "constraints = [RepeatModification(), StopwordModification(stopwords=stopwords)]\n", "\n", "# search method\n", "search_method = GreedyWordSwapWIR(wir_method=\"weighted-saliency\")\n", "\n", "# attack!\n", "attack = Attack(goal_function, constraints, transformation, search_method)\n", "attack_args = AttackArgs(num_examples=20)\n", "attacker = Attacker(attack, dataset, attack_args)\n", "attack_results = attacker.attack_dataset()" ] }, { "cell_type": "markdown", "metadata": { "id": "3e_tQiHWS-Pb" }, "source": [ "As aforementioned, we can also augment Chinese sentences with the provided transformation. A quick examples is shown below:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "43MCRE0pqVM0", "outputId": "2ad12bf5-3bd8-4c8d-913c-949fcae787d3" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Building prefix dict from the default dictionary ...\n", "DEBUG:jieba:Building prefix dict from the default dictionary ...\n", "Dumping model to file cache /tmp/jieba.cache\n", "DEBUG:jieba:Dumping model to file cache /tmp/jieba.cache\n", "Loading model cost 0.888 seconds.\n", "DEBUG:jieba:Loading model cost 0.888 seconds.\n", "Prefix dict has been built successfully.\n", "DEBUG:jieba:Prefix dict has been built successfully.\n" ] }, { "data": { "text/plain": [ "['听见树林的呢喃,发现溪流中的知织。', '听见树林的呢喃,发视溪流中的知识。']" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from textattack.constraints.pre_transformation import RepeatModification\n", "from textattack.constraints.pre_transformation import StopwordModification\n", "from textattack.augmentation import Augmenter\n", "\n", "# transformation\n", "transformation = ChineseMorphonymCharacterSwap()\n", "\n", "# constraints\n", "constraints = [RepeatModification(), StopwordModification()]\n", "\n", "# Create augmenter with specified parameters\n", "augmenter = Augmenter(\n", " transformation=transformation, pct_words_to_swap=0.1, transformations_per_example=2\n", ")\n", "s = \"听见树林的呢喃,发现溪流中的知识。\"\n", "\n", "# Augment!\n", "augmenter.augment(s)" ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.11" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "0af0e1eaea2f48c5b0fec6e550bd1baa": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_21472d1c4c8b494a8d3660b3320e9d4b", "placeholder": "​", "style": "IPY_MODEL_7511bb9ca5424674bb2350dff63c468a", "value": "Downloading: 100%" } }, "138d8260e67f4bc58106b9b42f7abd12": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_bdf3571e59ef4a688ab89d4badda27b1", "placeholder": "​", "style": "IPY_MODEL_d3bab427b92144d6b9ce96eac18ceb89", "value": " 8.68M/8.68M [00:00<00:00, 16.8MB/s]" } }, "1b208b6df75f4a9e97faa4e3705a9442": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "21472d1c4c8b494a8d3660b3320e9d4b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2436b07259a34ee18fe9c1007f7b615b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_a1e3fb5cceed4e95957a17192a641b69", "placeholder": "​", "style": "IPY_MODEL_83e9b14c4d354fdc80db4f8a881f19f3", "value": "Downloading: 100%" } }, "2bb72191846f49528663680a315d8b01": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "2edb7130713d4e10a07bbf808abb9771": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_1b208b6df75f4a9e97faa4e3705a9442", "placeholder": "​", "style": "IPY_MODEL_a7871b8ec3ec40e7bbbe6a5f40b79f4a", "value": "Downloading: 100%" } }, "34607a8556794a5a86c18abe5bd7e5a5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_83eff532314e4edcbfe648b321e9a310", "placeholder": "​", "style": "IPY_MODEL_3d30e700d32443fdb37b5ab934d2d70a", "value": " 1.04G/1.04G [00:25<00:00, 45.4MB/s]" } }, "3711cf0a18994cee8fc840d9a93cf5d3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_6b976fd913584da69456c1b6d53483cb", "placeholder": "​", "style": "IPY_MODEL_ea568ab2407f474da3b1f1b2540fa3a8", "value": "Downloading: 100%" } }, "3d30e700d32443fdb37b5ab934d2d70a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "4b423038915e40158f9da4c07d09aad3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_3711cf0a18994cee8fc840d9a93cf5d3", "IPY_MODEL_7f77bd7b8e5f45ae94cfc45f915c0c72", "IPY_MODEL_fe0ca6138bc54b628c03e590c6e96aed" ], "layout": "IPY_MODEL_8b39363f69eb46009c5357263a65248c" } }, "4f31972fd2fd44bbac063bb4b5075e98": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "5167daffe92e44d2acc2af2d9b9738df": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "588b1321a9274de6a8a9e86622d90be4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_2436b07259a34ee18fe9c1007f7b615b", "IPY_MODEL_98aac5a0baee4930bd461f2c5fd73f4a", "IPY_MODEL_34607a8556794a5a86c18abe5bd7e5a5" ], "layout": "IPY_MODEL_f78f6701ce4f4b3b9ff0af925620f261" } }, "58fc309041b54e94ae265167fa20d8d7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_5167daffe92e44d2acc2af2d9b9738df", "placeholder": "​", "style": "IPY_MODEL_acbfb34a353f41649675bd104069d14e", "value": " 4.83M/4.83M [00:00<00:00, 12.1MB/s]" } }, "5ae4c618f75d4ef9b65e5020fccb6d72": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_aeb7ee752d834b4cbaa189419fd75dd4", "max": 9096718, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_b47dfff73e73410aa89f65e3c5b0c366", "value": 9096718 } }, "5f5457f292284dd8b914f45e26b2f749": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "6b976fd913584da69456c1b6d53483cb": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "7511bb9ca5424674bb2350dff63c468a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "7de1551891ec447ab6d80ea1de145f16": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "7f77bd7b8e5f45ae94cfc45f915c0c72": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_ff6b34a7e75b443593f3dca5d050cd52", "max": 615, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_4f31972fd2fd44bbac063bb4b5075e98", "value": 615 } }, "83e9b14c4d354fdc80db4f8a881f19f3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "83eff532314e4edcbfe648b321e9a310": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "89dfd3fdc41e417a870901bc79e47495": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "8b39363f69eb46009c5357263a65248c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "98aac5a0baee4930bd461f2c5fd73f4a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_5f5457f292284dd8b914f45e26b2f749", "max": 1115590446, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_2bb72191846f49528663680a315d8b01", "value": 1115590446 } }, "a132f09845a54cbe865cbe8159bb693e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_0af0e1eaea2f48c5b0fec6e550bd1baa", "IPY_MODEL_dd6b0a5d9db245338a8fdb2ef5b29bf9", "IPY_MODEL_58fc309041b54e94ae265167fa20d8d7" ], "layout": "IPY_MODEL_89dfd3fdc41e417a870901bc79e47495" } }, "a1e3fb5cceed4e95957a17192a641b69": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "a34ad57624fc422aa4832db3963298e6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "a7871b8ec3ec40e7bbbe6a5f40b79f4a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "acbfb34a353f41649675bd104069d14e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "aeb7ee752d834b4cbaa189419fd75dd4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "b47dfff73e73410aa89f65e3c5b0c366": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "bdf3571e59ef4a688ab89d4badda27b1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "be070cb4a1624b0bb8f9b594c6b951a5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_2edb7130713d4e10a07bbf808abb9771", "IPY_MODEL_5ae4c618f75d4ef9b65e5020fccb6d72", "IPY_MODEL_138d8260e67f4bc58106b9b42f7abd12" ], "layout": "IPY_MODEL_d7621b5c619a4ce38ebe63924374cf78" } }, "d3bab427b92144d6b9ce96eac18ceb89": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "d7621b5c619a4ce38ebe63924374cf78": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "dd6b0a5d9db245338a8fdb2ef5b29bf9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_f6dd2c2cb4e346fe9af7026b5d2162e9", "max": 5069051, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_a34ad57624fc422aa4832db3963298e6", "value": 5069051 } }, "e5e2c0507c834887b80f5717c1e6d5f3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "ea568ab2407f474da3b1f1b2540fa3a8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "f6dd2c2cb4e346fe9af7026b5d2162e9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "f78f6701ce4f4b3b9ff0af925620f261": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "fe0ca6138bc54b628c03e590c6e96aed": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_7de1551891ec447ab6d80ea1de145f16", "placeholder": "​", "style": "IPY_MODEL_e5e2c0507c834887b80f5717c1e6d5f3", "value": " 615/615 [00:00<00:00, 33.8kB/s]" } }, "ff6b34a7e75b443593f3dca5d050cd52": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } } } } }, "nbformat": 4, "nbformat_minor": 1 }