code: def test_multi_label_processor(self):
      from kashgari.corpus import JigsawToxicCommentCorpus
  
      file_path = TestMacros.jigsaw_mini_corpus_path
      corpus = JigsawToxicCommentCorpus(file_path)
      x_set, y_set = corpus.load_data()
  
      corpus_gen = CorpusGenerator(x_set, y_set)
  
      processor = ClassificationProcessor(multi_label=True)
      processor.build_vocab_generator([corpus_gen])
      transformed_idx = processor.transform(y_set[20:40])
  
      info_dict = processor.to_dict()
  
      p2: ClassificationProcessor = load_data_object(info_dict)
      assert (transformed_idx == p2.transform(y_set[20:40])).all()
  
      x1s = y_set[20:40]
      x2s = p2.inverse_transform(transformed_idx)
      for sample_x1, sample_x2 in zip(x1s, x2s):
          assert sorted(sample_x1) == sorted(sample_x2)
  
file_path: Kashgari/tests/test_processor/test_class_processor.py
imports: import unittest
  from tests.test_macros import TestMacros
  from kashgari.utils import load_data_object
  from kashgari.generators import CorpusGenerator
  from kashgari.processors import ClassificationProcessor
label_desc: Use image node_id 2 for calling the TestClassificationProcessor obj's underlying member method code with example usage: obj.test_multi_label_processor() without return types