code: def test_soft_badwords_filter(self):
      badwords_filter_fn = c4_utils.get_badwords_filter_fn(
          badwords={"": ["bad"]}, filter_fraction=0.5
      )
  
      self.assertTrue(
          badwords_filter_fn(
              page=PageFeatures(
                  text="good page",
                  normalized_url="filtered.url.com",
                  language="",
              )
          )
      )
      self.assertFalse(
          badwords_filter_fn(
              page=PageFeatures(
                  text="bad page",
                  normalized_url="filtered.url.com",
                  language="",
              )
          )
      )
      self.assertTrue(
          badwords_filter_fn(
              page=PageFeatures(
                  text="bad page",
                  normalized_url="unfiltered.url.com",
                  language="",
              )
          )
      )
  
imports: import collections
  import os
  import six
  from tensorflow_datasets import testing
  from tensorflow_datasets.core.lazy_imports_lib import lazy_imports
  from tensorflow_datasets.text import c4_utils
label_desc: Use image node_id 11 for calling the C4UtilsTest obj's underlying member method code with example usage: obj.test_soft_badwords_filter() without return types