{"action":"created","comment":{"url":"https://api.github.com/repos/dmlc/gluon-nlp/pulls/comments/244661710","pull_request_review_id":188583517,"id":244661710,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0NDY2MTcxMA==","diff_hunk":"@@ -0,0 +1,493 @@\n+# coding=utf-8\n+# Copyright 2018 The Google AI Language Team Authors and DMLC.\n+#\n+# Licensed under the Apache License, Version 2.0 (the \"License\");\n+# you may not use this file except in compliance with the License.\n+# You may obtain a copy of the License at\n+#\n+#     http://www.apache.org/licenses/LICENSE-2.0\n+#\n+# Unless required by applicable law or agreed to in writing, software\n+# distributed under the License is distributed on an \"AS IS\" BASIS,\n+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+# See the License for the specific language governing permissions and\n+# limitations under the License.\n+\"\"\"BERT datasets.\"\"\"\n+import collections\n+import json\n+import multiprocessing as mp\n+import time\n+\n+import numpy as np\n+from mxnet import context, nd\n+from mxnet.gluon.data import SimpleDataset\n+\n+\n+class SquadExample(object):\n+    \"\"\"A single training/test example for SQuAD question.\n+\n+       For examples without an answer, the start and end position are -1.\n+    \"\"\"\n+\n+    def __init__(self,\n+                 qas_id,\n+                 question_text,\n+                 doc_tokens,\n+                 example_id,\n+                 orig_answer_text=None,\n+                 start_position=None,\n+                 end_position=None,\n+                 is_impossible=False):\n+        self.qas_id = qas_id\n+        self.question_text = question_text\n+        self.doc_tokens = doc_tokens\n+        self.orig_answer_text = orig_answer_text\n+        self.start_position = start_position\n+        self.end_position = end_position\n+        self.is_impossible = is_impossible\n+        self.example_id = example_id\n+\n+\n+_transform = None\n+\n+\n+def preprocess(example):\n+    global _transform\n+    feature = _transform(example)\n+    return feature\n+\n+\n+def preprocess_dataset(dataset, transform):\n+    global _transform\n+    _transform = transform\n+    start = time.time()\n+\n+    with mp.Pool(8) as pool:\n+        dataset_transform = []\n+        for data in pool.map(preprocess, dataset):\n+            dataset_transform.extend(data)\n+\n+        dataset = SimpleDataset(dataset_transform)\n+    end = time.time()\n+    print(end-start)\n+    return dataset\n+\n+\n+class SquadFeature(object):\n+    def __init__(self,\n+                 example_id,\n+                 qas_id,\n+                 doc_tokens,\n+                 doc_span_index,\n+                 tokens,\n+                 token_to_orig_map,\n+                 token_is_max_context,\n+                 input_ids,\n+                 valid_length,\n+                 segment_ids,\n+                 start_position,\n+                 end_position,\n+                 is_impossible):\n+        self.example_id = example_id\n+        self.qas_id = qas_id\n+        self.doc_tokens = doc_tokens\n+        self.doc_span_index = doc_span_index\n+        self.tokens = tokens\n+        self.token_to_orig_map = token_to_orig_map\n+        self.token_is_max_context = token_is_max_context\n+        self.input_ids = input_ids\n+        self.valid_length = valid_length\n+        self.segment_ids = segment_ids\n+        self.start_position = start_position\n+        self.end_position = end_position\n+        self.is_impossible = is_impossible\n+\n+\n+class SQuAD(SimpleDataset):\n+    \"\"\"Stanford Question Answering Dataset (SQuAD) - reading comprehension dataset.\n+\n+    From\n+    https://rajpurkar.github.io/SQuAD-explorer/\n+\n+    License: CreativeCommons BY-SA 4.0\n+\n+    The original data format is json, which has multiple contexts (a context is a paragraph of text\n+    from which questions are drawn). For each context there are multiple questions, and for each of\n+    these questions there are multiple (usually 3) answers.\n+\n+    This class loads the json and flattens it to question dataset.\n+    Number of records in the dataset is equal to number of questions in json file.\n+\n+\n+    Parameters\n+    ----------\n+    filename : str\n+        SQuAD json file path.\n+    is_training : bool, default True\n+        Whether to run training.\n+    version_2 : bool, default False\n+        If true, the SQuAD examples contain some that do not have an answer.\n+    \"\"\"\n+\n+    def __init__(self, filename, is_training=True, version_2=False):\n+        self.input_file = filename\n+        self.is_training = is_training\n+        self.version_2 = version_2\n+        super(SQuAD, self).__init__(self._read())\n+\n+    def _read(self):\n+        \"\"\"Read a SQuAD json file into a list of SquadExample.\"\"\"\n+        with open(self.input_file, 'r') as reader:\n+            input_data = json.load(reader)['data']\n+\n+        def is_whitespace(c):\n+            if c == ' ' or c == '\\t' or c == '\\r' or c == '\\n' or ord(\n+                    c) == 0x202F:\n+                return True\n+            return False\n+\n+        examples = []\n+        example_id = 0\n+        for entry in input_data:\n+            for paragraph in entry['paragraphs']:\n+                paragraph_text = paragraph['context']\n+                doc_tokens = []\n+                char_to_word_offset = []\n+                prev_is_whitespace = True\n+                for c in paragraph_text:\n+                    if is_whitespace(c):\n+                        prev_is_whitespace = True\n+                    else:\n+                        if prev_is_whitespace:\n+                            doc_tokens.append(c)\n+                        else:\n+                            doc_tokens[-1] += c\n+                        prev_is_whitespace = False\n+                    char_to_word_offset.append(len(doc_tokens) - 1)\n+\n+                for qa in paragraph['qas']:","path":"scripts/bert_SQuAD/dataset.py","position":168,"original_position":168,"commit_id":"4933ac18213e2ec46c9ff19b8c1f982bf44fd769","original_commit_id":"4933ac18213e2ec46c9ff19b8c1f982bf44fd769","user":{"login":"eric-haibin-lin","id":5545640,"node_id":"MDQ6VXNlcjU1NDU2NDA=","avatar_url":"https://avatars1.githubusercontent.com/u/5545640?v=4","gravatar_id":"","url":"https://api.github.com/users/eric-haibin-lin","html_url":"https://github.com/eric-haibin-lin","followers_url":"https://api.github.com/users/eric-haibin-lin/followers","following_url":"https://api.github.com/users/eric-haibin-lin/following{/other_user}","gists_url":"https://api.github.com/users/eric-haibin-lin/gists{/gist_id}","starred_url":"https://api.github.com/users/eric-haibin-lin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eric-haibin-lin/subscriptions","organizations_url":"https://api.github.com/users/eric-haibin-lin/orgs","repos_url":"https://api.github.com/users/eric-haibin-lin/repos","events_url":"https://api.github.com/users/eric-haibin-lin/events{/privacy}","received_events_url":"https://api.github.com/users/eric-haibin-lin/received_events","type":"User","site_admin":false},"body":"It looks these can also be built as \"Transforms\" on top of the SQuAD dataset. https://github.com/dmlc/gluon-nlp/blob/master/src/gluonnlp/data/question_answering.py#L36 What is the reason the SQuAD dataset API is not reused? ","created_at":"2019-01-02T04:29:53Z","updated_at":"2019-01-02T04:59:16Z","html_url":"https://github.com/dmlc/gluon-nlp/pull/493#discussion_r244661710","pull_request_url":"https://api.github.com/repos/dmlc/gluon-nlp/pulls/493","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/dmlc/gluon-nlp/pulls/comments/244661710"},"html":{"href":"https://github.com/dmlc/gluon-nlp/pull/493#discussion_r244661710"},"pull_request":{"href":"https://api.github.com/repos/dmlc/gluon-nlp/pulls/493"}}},"pull_request":{"url":"https://api.github.com/repos/dmlc/gluon-nlp/pulls/493","id":241451900,"node_id":"MDExOlB1bGxSZXF1ZXN0MjQxNDUxOTAw","html_url":"https://github.com/dmlc/gluon-nlp/pull/493","diff_url":"https://github.com/dmlc/gluon-nlp/pull/493.diff","patch_url":"https://github.com/dmlc/gluon-nlp/pull/493.patch","issue_url":"https://api.github.com/repos/dmlc/gluon-nlp/issues/493","number":493,"state":"open","locked":false,"title":"[SCRIPT]QA Fine-tuning Example for BERT","user":{"login":"fierceX","id":13912058,"node_id":"MDQ6VXNlcjEzOTEyMDU4","avatar_url":"https://avatars0.githubusercontent.com/u/13912058?v=4","gravatar_id":"","url":"https://api.github.com/users/fierceX","html_url":"https://github.com/fierceX","followers_url":"https://api.github.com/users/fierceX/followers","following_url":"https://api.github.com/users/fierceX/following{/other_user}","gists_url":"https://api.github.com/users/fierceX/gists{/gist_id}","starred_url":"https://api.github.com/users/fierceX/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fierceX/subscriptions","organizations_url":"https://api.github.com/users/fierceX/orgs","repos_url":"https://api.github.com/users/fierceX/repos","events_url":"https://api.github.com/users/fierceX/events{/privacy}","received_events_url":"https://api.github.com/users/fierceX/received_events","type":"User","site_admin":false},"body":"## Description ##\r\nadd QA Fine-tuning Example for BERT #476 \r\nuse Bert Tokenizer from #464 \r\nIn squad1.1, use bert_base uncased model, F1 is 88%\r\n\r\n\r\n## Checklist ##\r\n### Essentials ###\r\n- [x] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)\r\n- [x] Changes are complete (i.e. I finished coding on this PR)\r\n- [ ] All changes have test coverage\r\n- [ ] Code is well-documented\r\n\r\n## Comments ##\r\n- If this change is a backward incompatible change, why must this change be made.\r\n- Interesting edge cases to note here\r\n","created_at":"2018-12-29T15:30:44Z","updated_at":"2019-01-02T04:59:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"dcd16eac7724045a6d2f42b92019f9524a9d1dc8","assignee":null,"assignees":[],"requested_reviewers":[{"login":"szha","id":2626883,"node_id":"MDQ6VXNlcjI2MjY4ODM=","avatar_url":"https://avatars2.githubusercontent.com/u/2626883?v=4","gravatar_id":"","url":"https://api.github.com/users/szha","html_url":"https://github.com/szha","followers_url":"https://api.github.com/users/szha/followers","following_url":"https://api.github.com/users/szha/following{/other_user}","gists_url":"https://api.github.com/users/szha/gists{/gist_id}","starred_url":"https://api.github.com/users/szha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/szha/subscriptions","organizations_url":"https://api.github.com/users/szha/orgs","repos_url":"https://api.github.com/users/szha/repos","events_url":"https://api.github.com/users/szha/events{/privacy}","received_events_url":"https://api.github.com/users/szha/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/dmlc/gluon-nlp/pulls/493/commits","review_comments_url":"https://api.github.com/repos/dmlc/gluon-nlp/pulls/493/comments","review_comment_url":"https://api.github.com/repos/dmlc/gluon-nlp/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dmlc/gluon-nlp/issues/493/comments","statuses_url":"https://api.github.com/repos/dmlc/gluon-nlp/statuses/4933ac18213e2ec46c9ff19b8c1f982bf44fd769","head":{"label":"fierceX:bert_qa","ref":"bert_qa","sha":"4933ac18213e2ec46c9ff19b8c1f982bf44fd769","user":{"login":"fierceX","id":13912058,"node_id":"MDQ6VXNlcjEzOTEyMDU4","avatar_url":"https://avatars0.githubusercontent.com/u/13912058?v=4","gravatar_id":"","url":"https://api.github.com/users/fierceX","html_url":"https://github.com/fierceX","followers_url":"https://api.github.com/users/fierceX/followers","following_url":"https://api.github.com/users/fierceX/following{/other_user}","gists_url":"https://api.github.com/users/fierceX/gists{/gist_id}","starred_url":"https://api.github.com/users/fierceX/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fierceX/subscriptions","organizations_url":"https://api.github.com/users/fierceX/orgs","repos_url":"https://api.github.com/users/fierceX/repos","events_url":"https://api.github.com/users/fierceX/events{/privacy}","received_events_url":"https://api.github.com/users/fierceX/received_events","type":"User","site_admin":false},"repo":{"id":139541221,"node_id":"MDEwOlJlcG9zaXRvcnkxMzk1NDEyMjE=","name":"gluon-nlp","full_name":"fierceX/gluon-nlp","private":false,"owner":{"login":"fierceX","id":13912058,"node_id":"MDQ6VXNlcjEzOTEyMDU4","avatar_url":"https://avatars0.githubusercontent.com/u/13912058?v=4","gravatar_id":"","url":"https://api.github.com/users/fierceX","html_url":"https://github.com/fierceX","followers_url":"https://api.github.com/users/fierceX/followers","following_url":"https://api.github.com/users/fierceX/following{/other_user}","gists_url":"https://api.github.com/users/fierceX/gists{/gist_id}","starred_url":"https://api.github.com/users/fierceX/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fierceX/subscriptions","organizations_url":"https://api.github.com/users/fierceX/orgs","repos_url":"https://api.github.com/users/fierceX/repos","events_url":"https://api.github.com/users/fierceX/events{/privacy}","received_events_url":"https://api.github.com/users/fierceX/received_events","type":"User","site_admin":false},"html_url":"https://github.com/fierceX/gluon-nlp","description":"NLP made easy","fork":true,"url":"https://api.github.com/repos/fierceX/gluon-nlp","forks_url":"https://api.github.com/repos/fierceX/gluon-nlp/forks","keys_url":"https://api.github.com/repos/fierceX/gluon-nlp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fierceX/gluon-nlp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fierceX/gluon-nlp/teams","hooks_url":"https://api.github.com/repos/fierceX/gluon-nlp/hooks","issue_events_url":"https://api.github.com/repos/fierceX/gluon-nlp/issues/events{/number}","events_url":"https://api.github.com/repos/fierceX/gluon-nlp/events","assignees_url":"https://api.github.com/repos/fierceX/gluon-nlp/assignees{/user}","branches_url":"https://api.github.com/repos/fierceX/gluon-nlp/branches{/branch}","tags_url":"https://api.github.com/repos/fierceX/gluon-nlp/tags","blobs_url":"https://api.github.com/repos/fierceX/gluon-nlp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fierceX/gluon-nlp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fierceX/gluon-nlp/git/refs{/sha}","trees_url":"https://api.github.com/repos/fierceX/gluon-nlp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fierceX/gluon-nlp/statuses/{sha}","languages_url":"https://api.github.com/repos/fierceX/gluon-nlp/languages","stargazers_url":"https://api.github.com/repos/fierceX/gluon-nlp/stargazers","contributors_url":"https://api.github.com/repos/fierceX/gluon-nlp/contributors","subscribers_url":"https://api.github.com/repos/fierceX/gluon-nlp/subscribers","subscription_url":"https://api.github.com/repos/fierceX/gluon-nlp/subscription","commits_url":"https://api.github.com/repos/fierceX/gluon-nlp/commits{/sha}","git_commits_url":"https://api.github.com/repos/fierceX/gluon-nlp/git/commits{/sha}","comments_url":"https://api.github.com/repos/fierceX/gluon-nlp/comments{/number}","issue_comment_url":"https://api.github.com/repos/fierceX/gluon-nlp/issues/comments{/number}","contents_url":"https://api.github.com/repos/fierceX/gluon-nlp/contents/{+path}","compare_url":"https://api.github.com/repos/fierceX/gluon-nlp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fierceX/gluon-nlp/merges","archive_url":"https://api.github.com/repos/fierceX/gluon-nlp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fierceX/gluon-nlp/downloads","issues_url":"https://api.github.com/repos/fierceX/gluon-nlp/issues{/number}","pulls_url":"https://api.github.com/repos/fierceX/gluon-nlp/pulls{/number}","milestones_url":"https://api.github.com/repos/fierceX/gluon-nlp/milestones{/number}","notifications_url":"https://api.github.com/repos/fierceX/gluon-nlp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fierceX/gluon-nlp/labels{/name}","releases_url":"https://api.github.com/repos/fierceX/gluon-nlp/releases{/id}","deployments_url":"https://api.github.com/repos/fierceX/gluon-nlp/deployments","created_at":"2018-07-03T06:55:52Z","updated_at":"2019-01-01T06:35:36Z","pushed_at":"2019-01-01T06:35:44Z","git_url":"git://github.com/fierceX/gluon-nlp.git","ssh_url":"git@github.com:fierceX/gluon-nlp.git","clone_url":"https://github.com/fierceX/gluon-nlp.git","svn_url":"https://github.com/fierceX/gluon-nlp","homepage":"http://gluon-nlp.mxnet.io","size":3306,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dmlc:master","ref":"master","sha":"8f6976c1bb077a428a8241df7c920de72406bbc4","user":{"login":"dmlc","id":11508361,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExNTA4MzYx","avatar_url":"https://avatars2.githubusercontent.com/u/11508361?v=4","gravatar_id":"","url":"https://api.github.com/users/dmlc","html_url":"https://github.com/dmlc","followers_url":"https://api.github.com/users/dmlc/followers","following_url":"https://api.github.com/users/dmlc/following{/other_user}","gists_url":"https://api.github.com/users/dmlc/gists{/gist_id}","starred_url":"https://api.github.com/users/dmlc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmlc/subscriptions","organizations_url":"https://api.github.com/users/dmlc/orgs","repos_url":"https://api.github.com/users/dmlc/repos","events_url":"https://api.github.com/users/dmlc/events{/privacy}","received_events_url":"https://api.github.com/users/dmlc/received_events","type":"Organization","site_admin":false},"repo":{"id":128121076,"node_id":"MDEwOlJlcG9zaXRvcnkxMjgxMjEwNzY=","name":"gluon-nlp","full_name":"dmlc/gluon-nlp","private":false,"owner":{"login":"dmlc","id":11508361,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExNTA4MzYx","avatar_url":"https://avatars2.githubusercontent.com/u/11508361?v=4","gravatar_id":"","url":"https://api.github.com/users/dmlc","html_url":"https://github.com/dmlc","followers_url":"https://api.github.com/users/dmlc/followers","following_url":"https://api.github.com/users/dmlc/following{/other_user}","gists_url":"https://api.github.com/users/dmlc/gists{/gist_id}","starred_url":"https://api.github.com/users/dmlc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmlc/subscriptions","organizations_url":"https://api.github.com/users/dmlc/orgs","repos_url":"https://api.github.com/users/dmlc/repos","events_url":"https://api.github.com/users/dmlc/events{/privacy}","received_events_url":"https://api.github.com/users/dmlc/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/dmlc/gluon-nlp","description":"NLP made easy","fork":false,"url":"https://api.github.com/repos/dmlc/gluon-nlp","forks_url":"https://api.github.com/repos/dmlc/gluon-nlp/forks","keys_url":"https://api.github.com/repos/dmlc/gluon-nlp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dmlc/gluon-nlp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dmlc/gluon-nlp/teams","hooks_url":"https://api.github.com/repos/dmlc/gluon-nlp/hooks","issue_events_url":"https://api.github.com/repos/dmlc/gluon-nlp/issues/events{/number}","events_url":"https://api.github.com/repos/dmlc/gluon-nlp/events","assignees_url":"https://api.github.com/repos/dmlc/gluon-nlp/assignees{/user}","branches_url":"https://api.github.com/repos/dmlc/gluon-nlp/branches{/branch}","tags_url":"https://api.github.com/repos/dmlc/gluon-nlp/tags","blobs_url":"https://api.github.com/repos/dmlc/gluon-nlp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dmlc/gluon-nlp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dmlc/gluon-nlp/git/refs{/sha}","trees_url":"https://api.github.com/repos/dmlc/gluon-nlp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dmlc/gluon-nlp/statuses/{sha}","languages_url":"https://api.github.com/repos/dmlc/gluon-nlp/languages","stargazers_url":"https://api.github.com/repos/dmlc/gluon-nlp/stargazers","contributors_url":"https://api.github.com/repos/dmlc/gluon-nlp/contributors","subscribers_url":"https://api.github.com/repos/dmlc/gluon-nlp/subscribers","subscription_url":"https://api.github.com/repos/dmlc/gluon-nlp/subscription","commits_url":"https://api.github.com/repos/dmlc/gluon-nlp/commits{/sha}","git_commits_url":"https://api.github.com/repos/dmlc/gluon-nlp/git/commits{/sha}","comments_url":"https://api.github.com/repos/dmlc/gluon-nlp/comments{/number}","issue_comment_url":"https://api.github.com/repos/dmlc/gluon-nlp/issues/comments{/number}","contents_url":"https://api.github.com/repos/dmlc/gluon-nlp/contents/{+path}","compare_url":"https://api.github.com/repos/dmlc/gluon-nlp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dmlc/gluon-nlp/merges","archive_url":"https://api.github.com/repos/dmlc/gluon-nlp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dmlc/gluon-nlp/downloads","issues_url":"https://api.github.com/repos/dmlc/gluon-nlp/issues{/number}","pulls_url":"https://api.github.com/repos/dmlc/gluon-nlp/pulls{/number}","milestones_url":"https://api.github.com/repos/dmlc/gluon-nlp/milestones{/number}","notifications_url":"https://api.github.com/repos/dmlc/gluon-nlp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dmlc/gluon-nlp/labels{/name}","releases_url":"https://api.github.com/repos/dmlc/gluon-nlp/releases{/id}","deployments_url":"https://api.github.com/repos/dmlc/gluon-nlp/deployments","created_at":"2018-04-04T20:57:13Z","updated_at":"2019-01-02T03:25:02Z","pushed_at":"2019-01-02T04:49:45Z","git_url":"git://github.com/dmlc/gluon-nlp.git","ssh_url":"git@github.com:dmlc/gluon-nlp.git","clone_url":"https://github.com/dmlc/gluon-nlp.git","svn_url":"https://github.com/dmlc/gluon-nlp","homepage":"http://gluon-nlp.mxnet.io","size":6267,"stargazers_count":1205,"watchers_count":1205,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":243,"mirror_url":null,"archived":false,"open_issues_count":84,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":243,"open_issues":84,"watchers":1205,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dmlc/gluon-nlp/pulls/493"},"html":{"href":"https://github.com/dmlc/gluon-nlp/pull/493"},"issue":{"href":"https://api.github.com/repos/dmlc/gluon-nlp/issues/493"},"comments":{"href":"https://api.github.com/repos/dmlc/gluon-nlp/issues/493/comments"},"review_comments":{"href":"https://api.github.com/repos/dmlc/gluon-nlp/pulls/493/comments"},"review_comment":{"href":"https://api.github.com/repos/dmlc/gluon-nlp/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dmlc/gluon-nlp/pulls/493/commits"},"statuses":{"href":"https://api.github.com/repos/dmlc/gluon-nlp/statuses/4933ac18213e2ec46c9ff19b8c1f982bf44fd769"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"eric-haibin-lin"}}