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
def indexesFromSentence(voc, sentence): sentence = standardise_sentence(sentence) try: return [voc.word2index[word] for word in sentence.split(' ')] + [EOS_token] except KeyError: print(sentence)
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.")
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