class_docstr: A simple heuristic based on average word length.
  
  A value is classified as NL iff all the conditions are met:
  1. It contains at least min_words_per_value.
  2. The average length is in [avg_word_length_min, avg_word_length_max].
  For efficiency, the value is cropped to at most crop_at_length chars.
  
  This heuristic is lenient and targets efficiency. For more accurate results
  consider replacing with a model-based classifier.
code: def __init__(
      self,
      avg_word_length_min: float = _AVG_WORD_LENGTH_MIN,
      avg_word_length_max: float = _AVG_WORD_LENGTH_MAX,
      min_words_per_value: int = _MIN_WORDS_PER_VALUE,
      crop_at_length: int = _CROP_AT_LENGTH,
  ) -> None:
      self._avg_word_length_min = avg_word_length_min
      self._avg_word_length_max = avg_word_length_max
      self._min_words_per_value = min_words_per_value
      self._crop_at_length = crop_at_length
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import abc
  from typing import Optional
  import numpy
  import pyarrow
  import six
  from tensorflow_data_validation import types
  from tensorflow_data_validation.statistics.generators import stats_generator
  from tensorflow_data_validation.utils import stats_util
  from tfx_bsl.arrow import array_util
  from typing import Iterable, Text
  from tensorflow_metadata.proto.v0 import statistics_pb2
label_desc: Use image node_id 1 to create a new AverageWordHeuristicNLClassifier object from inherited base classes: NLClassifierInterface with example: obj = AverageWordHeuristicNLClassifier(avg_word_length_min, avg_word_length_max, min_words_per_value, crop_at_length)