class_docstr: Implements conditional random fields (CRF) to do named entity recognition.
class_docstr_tok: ["Implements","conditional","random","fields","(","CRF",")","to","do","named","entity","recognition","."]
docstr: Creates an instance of entity extractor.
docstr_tok: ["Creates","an","instance","of","entity","extractor","."]
code: def __init__(
      self,
      config: Dict[Text, Any],
      model_storage: ModelStorage,
      resource: Resource,
      entity_taggers: Optional[Dict[Text, "CRF"]] = None,
  ) -> None:
      """Creates an instance of entity extractor."""
      self.component_config = config
      self._model_storage = model_storage
      self._resource = resource
  
      self.entity_taggers = entity_taggers
  
      self.crf_order = [
          ENTITY_ATTRIBUTE_TYPE,
          ENTITY_ATTRIBUTE_ROLE,
          ENTITY_ATTRIBUTE_GROUP,
      ]
  
      self._validate_configuration()
  
      self.split_entities_config = (
          rasa.utils.train_utils.init_split_entities(
              config[SPLIT_ENTITIES_BY_COMMA],
              SPLIT_ENTITIES_BY_COMMA_DEFAULT_VALUE,
          )
      )
  
imports: from __future__ import annotations
  from collections import OrderedDict
  from enum import Enum
  import logging
  import typing
  import numpy
  from typing import Any, Dict, List, Optional, Text, Tuple, Callable, Type
  import rasa.nlu.utils.bilou_utils
  import rasa.shared.utils.io
  import rasa.utils.train_utils
  from rasa.engine.graph import GraphComponent, ExecutionContext
  from rasa.engine.recipes.default_recipe import DefaultV1Recipe
  from rasa.engine.storage.resource import Resource
  from rasa.engine.storage.storage import ModelStorage
  from rasa.nlu.test import determine_token_labels
  from rasa.nlu.tokenizers.spacy_tokenizer import POS_TAG_KEY
  from rasa.nlu.extractors.extractor import EntityExtractorMixin
  from rasa.nlu.tokenizers.tokenizer import Token, Tokenizer
  from rasa.shared.nlu.training_data.training_data import TrainingData
  from rasa.shared.nlu.training_data.message import Message
  from rasa.nlu.constants import TOKENS_NAMES
  from rasa.shared.nlu.constants import TEXT, ENTITIES, ENTITY_ATTRIBUTE_TYPE, ENTITY_ATTRIBUTE_GROUP, ENTITY_ATTRIBUTE_ROLE, NO_ENTITY_TAG, SPLIT_ENTITIES_BY_COMMA, SPLIT_ENTITIES_BY_COMMA_DEFAULT_VALUE
  from rasa.shared.constants import DOCS_URL_COMPONENTS
  from rasa.utils.tensorflow.constants import BILOU_FLAG, FEATURIZERS
label_desc: Use image node_id 3 to create a new CRFEntityExtractor object from inherited base classes: GraphComponent, EntityExtractorMixin with example: obj = CRFEntityExtractor(config, model_storage, resource, entity_taggers)