# 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.7.0/api/custom-nlu-components/#custom-nlu-components).

## Word Vector Sources

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

## Text Featurizers

- [MitieFeaturizer](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#mitiefeaturizer)
- [SpacyFeaturizer](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#spacyfeaturizer)
- [ConveRTFeaturizer](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#convertfeaturizer)
- [RegexFeaturizer](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#regexfeaturizer)
- [CountVectorsFeaturizer](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#countvectorsfeaturizer)

## Intent Classifiers

- [MitieIntentClassifier](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#mitieintentclassifier)
- [SklearnIntentClassifier](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#sklearnintentclassifier)
- [EmbeddingIntentClassifier](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#embeddingintentclassifier)
- [KeywordIntentClassifier](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#keywordintentclassifier)

## Selectors

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

## Tokenizers

- [WhitespaceTokenizer](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#whitespacetokenizer)
- [JiebaTokenizer](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#jiebatokenizer)
- [MitieTokenizer](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#mitietokenizer)
- [SpacyTokenizer](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#spacytokenizer)
- [ConveRTTokenizer](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#converttokenizer)

## Entity Extractors

- [MitieEntityExtractor](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#mitieentityextractor)
- [SpacyEntityExtractor](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#spacyentityextractor)
- [EntitySynonymMapper](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#entitysynonymmapper)
- [CRFEntityExtractor](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#crfentityextractor)
- [DucklingHTTPExtractor](https://legacy-docs-v1.rasa.com/1.7.0/nlu/components/#ducklinghttpextractor)

### Example Configuration

#### 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"
  model: "data/total_word_feature_extractor.dat"
```

### 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"
  model: "en_core_web_md"
  case_sensitive: false
```

### RegexFeaturizer

Short: regex feature creation to support intent and entity classification

Outputs: `text_features` and `tokens.pattern`

Configuration:

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

### CountVectorsFeaturizer

Short: Creates bag-of-words representation of user message and label (intent and response) features

Outputs: nothing

Configuration:

```yaml
pipeline:
- name: "CountVectorsFeaturizer"
  use_shared_vocab: false
  analyzer: 'word'
  min_df: 1
  max_df: 1.0
  min_ngram: 1
  max_ngram: 1
  lowercase: true
```

## Conclusion

These components help create a robust and efficient NLU pipeline within Rasa. For more details, consider exploring the official Rasa documentation.
