Example #1
0
 def from_dataset(cls, dataset):
     print("Start preparing training data ...")
     # load pairs and initialise Voc
     voc = cls('name is a useless parameter')
     # filter pairs longer than MAX_LENGTH
     print("Counting words...")
     for pair in dataset:
         voc.addSentence(standardise_sentence(pair.utterance))
         voc.addSentence(standardise_sentence(pair.response))
     print("Counted words:", voc.num_words)
     return voc
Example #2
0
def indexesFromSentence(voc, sentence):
    sentence = standardise_sentence(sentence)
    try:
        return [voc.word2index[word]
                for word in sentence.split(' ')] + [EOS_token]
    except KeyError:
        print(sentence)
Example #3
0
def chat(policy, env):
    env.reset()
    env._state = []

    while 1:
        try:
            input_sentence = input('> ')
            if input_sentence == 'q':
                break
            input_sentence = env.sentence2tensor(
                standardise_sentence(input_sentence))
            env.update_state(input_sentence)
            response, tensor = policy.response(env.state)
            env.update_state(tensor)
            print('Bot:', response)
        except KeyError:
            print("Error: Encountered unknown word.")
Example #4
0
def get_response(policy, env, utterance) -> Text:
    """

    :param policy:
    :param env:
    :param utterance: Text
    :return:
    """
    try:
        message_tensor = env.sentence2tensor(standardise_sentence(utterance))
        env.update_state(message_tensor)
        response, tensor = policy.response(env.state)
        env.update_state(tensor)
    except KeyError:
        response = "Error: Encountered unknown word."

    return response