Создайте чат-бота AI, который учится общаться, не учась отвечать на каждый вопрос, заданный пользователем - PullRequest
0 голосов
/ 07 ноября 2019

Мой код - только это, и он будет распознавать только конкретные вопросы ... иначе он запрашивает ответ ... но я хочу, чтобы он мог учиться и пытаться ответить на мой новый вопрос самостоятельно.

пример:

input("hello")

output("Hi, how are you?")

, не обучая ай-чатбота тому, что отвечать на «привет», я бы хотел, чтобы он тоже мог ответить

Как:

 input("Hi")

 output("Hello, how are you?")

Это очень трудно для меня, и поэтому я прошу ответ на него

Мой текущий код:

said = []
output = []
text = ""

global n

while True:
    text = input("Say something: ")
    if not(text == ""):
        if not(text == "print(input, output)"):
            input_contain = text.lower() in said

            if input_contain:
                n = 0
                found = False
                while not found:
                    if said[n] == str(text.lower()):
                        print(output[n])
                        found = True
                    else:
                        n = n + 1
            else:

                output_add = input("What should I respond to that? ")
                if not output_add == "":
                    said.append(text.lower())
                    output.append(output_add)
                else:
                    print("Error in output")
        else:

            for qn in said:
                if not qn == int(len(said)) - 1:
                    print(str(qn), end=", ")
                else:
                    print(qn)

            for out in output:
                if not out == int(len(output)) - 1:
                    print(str(out), end=", ")
                else:
                    print(out)

    else:
        print("Error in input") 

1 Ответ

0 голосов
/ 07 ноября 2019

Если у вас есть готовый набор ответов, например «Привет, как дела», вы можете создать набор подходящих вопросов для таких ответов и сравнить их (например, с помощью spacy nlp ) между пользовательским вводом и вашими известными подсказками.

Вы можете задать самый быстрый аналогичный вопрос-запрос, чтобы определить наиболее похожий вопрос, который ранее был сопоставлен с ответом, а затем ответить на этот вопрос в качестве ответа.


Например, «Привет» и «Привет» имеют гораздо более высокое сходство (0,9 или около того), чем «Привет» и «Что такое страшное животное?»do (около 0) ..

Итак, если у вас было

"Что такое страшное животное?"==> «Тигр»,

«Привет» => «Привет, как дела»?

«Привет» будет отображать 0,9 в «Привет» и около 0 в «Что такоестрашное животное », поэтому выберите« Привет », ответ« Привет, как дела? »

« Что такое жестокое животное », которое будет отображаться ближе к« Что такое страшное животное », поэтому выберите« Тигр »для этого ..


Чтобы ваша программа могла улучшаться, вам нужно было бы где-то сохранить сопоставления и добавить больше ... это примерно то, как работают боты чата GOFAI

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...