nlu.annotation.rule_based_annotator

This file contains a class which can be used to annotate slot values in the user utterance based on rules and keyword matching.

Module Contents

Classes

RBAnnotator

This class is used to annotate slot values in the user utterance.

class nlu.annotation.rule_based_annotator.RBAnnotator(process_value: Callable[[str], str], lemmatize_value: Callable[[str], str], slot_values: Dict[str, Any])

Bases: moviebot.nlu.annotation.slot_annotator.SlotAnnotator

This class is used to annotate slot values in the user utterance.

slot_annotation(slot: str, user_utterance: moviebot.core.utterance.utterance.UserUtterance) List[moviebot.nlu.annotation.item_constraint.ItemConstraint]

Annotates user utterance for specified slot.

Returns empty list if there is no annotation or the annotator is not defined for the slot.

Parameters:
  • slot – Slot name.

  • utterance – User utterance.

Returns:

List of item constraints.

find_in_raw_utterance(raw_utterance: str, gram: str, ngram_size: int) str

Finds the ngram in the raw utterance.

If the ngram is found in the utterance it is returned with removed punctuation.

Parameters:
  • raw_utterance – The raw utterance.

  • gram – The ngram to be found in the raw_utterance.

  • ngram_size – The size of the n-gram.

Returns:

The ngram found in the utterance.