# Components

For clarity, we have renamed the pre-defined pipelines to reflect what they _do_ rather than which libraries they use as of Rasa NLU 0.15. The `tensorflow_embedding` pipeline is now called `supervised_embeddings`, and `spacy_sklearn` is now known as `pretrained_embeddings_spacy`. Please update your code if you are using these.

This is a reference of the configuration options for every built-in component in Rasa NLU. If you want to build a custom component, check out [Custom NLU Components](https://legacy-docs-v1.rasa.com/1.4.6/api/custom-nlu-components/#custom-nlu-components).

## Word Vector Sources

### [MitieNLP](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#mitienlp)

**Short**: MITIE initializer

**Description**: Initializes mitie structures. Every mitie component relies on this, hence this should be put at the beginning of every pipeline that uses any mitie components.

**Configuration**:
```yaml
pipeline:
- name: "MitieNLP"
  # language model to load
  model: "data/total_word_feature_extractor.dat"
```

### [SpacyNLP](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#spacynlp)

**Short**: spacy language initializer

**Description**: Initializes spacy structures. Every spacy component relies on this, hence this should be put at the beginning of every pipeline that uses any spacy components.

**Configuration**:
```yaml
pipeline:
- name: "SpacyNLP"
  # language model to load
  model: "en_core_web_md"
  case_sensitive: false
```

## Featurizers

### [MitieFeaturizer](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#mitiefeaturizer)

**Short**: MITIE intent featurizer

**Description**: Creates feature for intent classification using the MITIE featurizer.

**Configuration**:
```yaml
pipeline:
- name: "MitieFeaturizer"
```

### [SpacyFeaturizer](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#spacyfeaturizer)

**Short**: spacy intent featurizer

**Description**: Creates feature for intent classification using the spacy featurizer.

**Configuration**:
```yaml
pipeline:
- name: "SpacyFeaturizer"
  ner_feature_vectors: True
```

### [NGramFeaturizer](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#ngramfeaturizer)

**Short**: Appends char-ngram features to feature vector

**Configuration**:
```yaml
pipeline:
- name: "NGramFeaturizer"
  max_number_of_ngrams: 10
```

### [RegexFeaturizer](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#regexfeaturizer)

**Short**: regex feature creation to support intent and entity classification

**Configuration**:
```yaml
pipeline:
- name: "RegexFeaturizer"
```

### [CountVectorsFeaturizer](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#countvectorsfeaturizer)

**Short**: Creates bag-of-words representation of user message.

**Configuration**:
```yaml
pipeline:
- name: "CountVectorsFeaturizer"
  use_shared_vocab: False,
  analyzer: 'word'
  token_pattern: r'(?u)\b\w\w+\b'
  min_df: 1
  max_df: 1.0
  min_ngram: 1
  max_ngram: 1
  lowercase: true
  OOV_token: None
```

## Intent Classifiers

### [KeywordIntentClassifier](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#keywordintentclassifier)

**Short**: Simple keyword matching intent classifier.

**Description**: This classifier is mostly used as a placeholder.

### [MitieIntentClassifier](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#mitieintentclassifier)

**Short**: MITIE intent classifier

**Configuration**:
```yaml
pipeline:
- name: "MitieIntentClassifier"
```

### [SklearnIntentClassifier](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#sklearnintentclassifier)

**Short**: sklearn intent classifier

**Configuration**:
```yaml
pipeline:
- name: "SklearnIntentClassifier"
  C: [1, 2, 5, 10, 20, 100]
  kernels: ["linear"]
```

### [EmbeddingIntentClassifier](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#embeddingintentclassifier)

**Short**: Embedding intent classifier

**Configuration**:
```yaml
pipeline:
- name: "EmbeddingIntentClassifier"
```

## Selectors

### [Response Selector](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#response-selector)

**Short**: Response Selector

**Description**: Response Selector component can be used to build a response retrieval model.

**Configuration**:
```yaml
pipeline:
- name: "ResponseSelector"
  retrieval_intent: None
```

## Tokenizers

### [WhitespaceTokenizer](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#whitespacetokenizer)

**Short**: Tokenizer using whitespaces as a separator

**Configuration**:
```yaml
pipeline:
- name: "WhitespaceTokenizer"
  case_sensitive: false
```

### [JiebaTokenizer](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#jiebatokenizer)

**Short**: Tokenizer using Jieba for Chinese language

**Configuration**:
```yaml
pipeline:
- name: "JiebaTokenizer"
  dictionary_path: "path/to/custom/dictionary/dir"
```

### [MitieTokenizer](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#mitietokenizer)

**Configuration**:
```yaml
pipeline:
- name: "MitieTokenizer"
```

### [SpacyTokenizer](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#spacytokenizer)

**Configuration**:
```yaml
pipeline:
- name: "SpacyTokenizer"
```

## Entity Extractors

### [MitieEntityExtractor](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#mitieentityextractor)

**Short**: MITIE entity extraction

**Configuration**:
```yaml
pipeline:
- name: "MitieEntityExtractor"
```

### [SpacyEntityExtractor](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#spacyentityextractor)

**Short**: spaCy entity extraction

**Configuration**:
```yaml
pipeline:
- name: "SpacyEntityExtractor"
  dimensions: ["PERSON", "LOC", "ORG", "PRODUCT"]
```

### [EntitySynonymMapper](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#entitysynonymmapper)

**Short**: Maps synonymous entity values to the same value.

### [CRFEntityExtractor](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#crfentityextractor)

**Short**: conditional random field entity extraction

**Configuration**:
```yaml
pipeline:
- name: "CRFEntityExtractor"
  features: [["low", "title"], ["bias", "suffix3"]]
  BILOU_flag: true
  max_iterations: 50
  L1_c: 0.1
  L2_c: 0.1
```

### [DucklingHTTPExtractor](https://legacy-docs-v1.rasa.com/1.4.6/nlu/components/#ducklinghttpextractor)

**Short**: Duckling entity extraction.

**Configuration**:
```yaml
pipeline:
- name: "DucklingHTTPExtractor"
  url: "http://localhost:8000"
  dimensions: ["time", "number", "amount-of-money", "distance"]
  locale: "de_DE"
```

👋 I can help you get started with Rasa and answer your technical questions.
