code: def test_to_json_use_non_text_features(self):
      tdm = build_hamlet_jz_corpus_with_meta()
      # with self.assertRaises(NoWordMeetsTermFrequencyRequirementsError):
      # 	ScatterChart(term_doc_matrix=tdm).to_dict('hamlet')
      j = ScatterChart(
          term_doc_matrix=tdm,
          minimum_term_frequency=0,
          use_non_text_features=True,
      ).to_dict("hamlet")
      self.assertEqual(set(j.keys()), set(["info", "data"]))
      self.assertEqual(
          set(j["info"].keys()),
          set(
              [
                  "not_category_name",
                  "category_name",
                  "category_terms",
                  "not_category_terms",
                  "category_internal_name",
                  "not_category_internal_names",
                  "extra_category_internal_names",
                  "neutral_category_internal_names",
                  "categories",
              ]
          ),
      )
      self.assertEqual(
          {t["term"] for t in j["data"]},
          {"cat1"}
          # {'cat4', 'cat9', 'cat5', 'cat0', 'cat3', 'cat2', 'cat1'}
      )
  
imports: import sys
  from unittest import TestCase
  import numpy
  import pandas
  from scattertext import LogOddsRatioUninformativeDirichletPrior, scale
  from scattertext import ScatterChart
  from scattertext.ScatterChart import CoordinatesNotRightException, TermDocMatrixHasNoMetadataException, NeedToInjectCoordinatesException
  from scattertext.test.test_corpusFromPandasWithoutCategories import get_term_doc_matrix_without_categories
  from scattertext.test.test_semioticSquare import get_test_corpus
  from scattertext.test.test_termDocMatrixFactory import build_hamlet_jz_term_doc_mat, build_hamlet_jz_corpus_with_meta
label_desc: Use image node_id 15 for calling the TestScatterChart obj's underlying member method code with example usage: obj.test_to_json_use_non_text_features() without return types