class_docstr: Kaggle Toxic Comment Classification Challenge corpus
  
  You need to download corpus from https://www.kaggle.com/c/jigsaw-toxic-comment-classification-challenge/overview
  to a folder. Then init a JigsawToxicCommentCorpus object with `train.csv` path.
  
  Examples:
  
      >>> from kashgari.corpus import JigsawToxicCommentCorpus
      >>> corpus = JigsawToxicCommentCorpus('<train.csv file-path>')
      >>> train_x, train_y = corpus.load_data('train')
      >>> test_x, test_y = corpus.load_data('test')
      >>> print(train_x)
      [['Please', 'stop', 'being', 'a', 'penis—', 'and', 'Grow', 'Up', 'Regards-'], ...]
      >>> print(train_y)
      [['obscene', 'insult'], ...]
class_docstr_tok: ["Kaggle","Toxic","Comment","Classification","Challenge","corpus","You","need","to","download","corpus","from","https",":","\/\/www.kaggle.com\/c\/jigsaw-toxic-comment-classification-challenge\/overview","to","a","folder",".","Then","init","a","JigsawToxicCommentCorpus","object","with","`","train.csv","`","path",".","Examples",":",">",">",">","from","kashgari.corpus","import","JigsawToxicCommentCorpus",">",">",">","corpus","=","JigsawToxicCommentCorpus","(","'","<","train.csv","file-path",">","'",")",">",">",">","train_x",",","train_y","=","corpus.load_data","(","'train","'",")",">",">",">","test_x",",","test_y","=","corpus.load_data","(","'test","'",")",">",">",">","print","(","train_x",")","[","[","'Please","'",",","'stop","'",",","'being","'",",","'","a","'",",","'penis\u2014","'",",","'and","'",",","'Grow","'",",","'Up","'",",","'Regards-","'","]",",","...","]",">",">",">","print","(","train_y",")","[","[","'obscene","'",",","'insult","'","]",",","...","]"]
docstr: Load dataset as sequence labeling format, char level tokenized
  
  Args:
     subset_name: {train, test, valid}
     shuffle: should shuffle or not, default True.
  
  Returns:
     dataset_features and dataset labels
docstr_tok: ["Load","dataset","as","sequence","labeling","format",",","char","level","tokenized","Args",":","subset_name",":","{","train",",","test",",","valid","}","shuffle",":","should","shuffle","or","not",",","default","True",".","Returns",":","dataset_features","and","dataset","labels"]
code: def load_data(
      self, subset_name: str = "train", shuffle: bool = True
  ) -> Tuple[List[List[str]], List[List[str]]]:
      """
      Load dataset as sequence labeling format, char level tokenized
  
      Args:
         subset_name: {train, test, valid}
         shuffle: should shuffle or not, default True.
  
      Returns:
         dataset_features and dataset labels
      """
  
      df = pd.read_csv(self.file_path)
      df = df[: self.sample_count]
      df["y"] = df.apply(self._extract_label, axis=1)
      df["x"] = df["comment_text"].apply(self._text_process)
      df = df[["x", "y"]]
      if subset_name == "train":
          df = df.loc[self.train_ids]
      elif subset_name == "valid":
          df = df.loc[self.valid_ids]
      else:
          df = df.loc[self.test_ids]
  
      xs, ys = list(df["x"].values), list(df["y"].values)
      if shuffle:
          xs, ys = utils.unison_shuffled_copies(xs, ys)
      return xs, ys
  
imports: import os
  from typing import List
  from typing import Tuple
  import numpy
  import pandas
  from tensorflow.keras.utils import get_file
  from kashgari import macros
  from kashgari import utils
  from kashgari.logger import logger
  from kashgari.tokenizers.base_tokenizer import Tokenizer
  from kashgari.tokenizers.bert_tokenizer import BertTokenizer
label_desc: Use image node_id 4 for calling the JigsawToxicCommentCorpus obj's underlying member method code with example usage: obj.load_data(subset_name, shuffle) and returns: xs,  ys