code: def _get_word_cluster_features(
      query_tokens, clusters_name, resources
  ):
      if not clusters_name:
          return []
      ngrams = get_all_ngrams(query_tokens)
      cluster_features = []
      for ngram in ngrams:
          cluster = get_word_cluster(resources, clusters_name).get(
              ngram[NGRAM].lower(), None
          )
          if cluster is not None:
              cluster_features.append(cluster)
      return cluster_features
  
imports: from __future__ import division, unicode_literals
  import json
  from builtins import str, zip
  from copy import deepcopy
  from pathlib import Path
  from future.utils import iteritems
  from snips_nlu.common.utils import json_string, fitted_required, replace_entities_with_placeholders, check_persisted_path
  from snips_nlu.constants import DATA, ENTITY, ENTITY_KIND, LANGUAGE, NGRAM, TEXT, ENTITIES
  from snips_nlu.dataset import get_text_from_chunks, validate_and_format_dataset
  from snips_nlu.entity_parser.builtin_entity_parser import is_builtin_entity
  from snips_nlu.exceptions import _EmptyDatasetUtterancesError, LoadingError
  from snips_nlu.languages import get_default_sep
  from snips_nlu.pipeline.configs import FeaturizerConfig
  from snips_nlu.pipeline.configs.intent_classifier import CooccurrenceVectorizerConfig, TfidfVectorizerConfig
  from snips_nlu.pipeline.processing_unit import ProcessingUnit
  from snips_nlu.preprocessing import stem, tokenize_light
  from snips_nlu.resources import get_stop_words, get_word_cluster
  from snips_nlu.slot_filler.features_utils import get_all_ngrams
label_desc: Use image node_id 4 for calling a global function with example usage: _get_word_cluster_features(query_tokens, clusters_name, resources) and returns: cluster_features, list