CakeChat is a backend for chatbots that are able to express emotions via conversations. The code is flexible and allows to condition model's responses by an arbitrary categorical variable. For example, you can train your own persona-based neural conversational model or create an emotional chatting machine. Hierarchical Recurrent Encoder-Decoder (HRED) architecture for handling deep dialog context. Multilayer RNN with GRU cells. The first layer of the utterance-level encoder is always bidirectional. By default, CuDNNGRU implementation is used for ~25% acceleration during inference. Thought vector is fed into decoder on each decoding step. Decoder can be conditioned on any categorical label, for example, emotion label or persona id. May be initialized using w2v model trained on your corpus. Embedding layer may be either fixed or fine-tuned along with other weights of the network.
Features
- n-gram distinct metrics adjusted to the samples size
- Lexical similarity between samples of the model and some fixed datase
- Lexical similarity is a cosine distance between TF-IDF vector of responses generated by the model and tokens in the dataset
- Setup for training and testing
- Pre-trained models
- Fine-tune the pre-trained model on your data