创建一个AI聊天机器人,该机器人学习如何聊天而无需学习如何回答用户给出的每个问题

我的代码仅仅是这样,它只会识别特定的问题...否则会要求答案...但是我希望它能够学习并尝试自我解答我的新问题。

示例:

input("hello")

output("Hi,how are you?")

我不希望AI聊天机器人知道如何响应“ hi”,我希望它也能够响应

赞:

 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),")
                else:
                    print(out)

    else:
        print("Error in input") 
cuijuncyanway 回答:创建一个AI聊天机器人,该机器人学习如何聊天而无需学习如何回答用户给出的每个问题

如果您有一组预先构建的响应,例如“嗨,你好吗”,则可以为这些响应构建一组适当的提示问题,并比较(例如使用spacy nlp)之间的相似性用户输入和您已知的提示问题。

您可以采用相似度最高的提示问题,以识别先前已映射到响应的最相似的问题-然后回答该问题,作为响应。


例如,“ Hello”和“ Hi”比“ Hello”和“什么是可怕的动物”具有更高的相似度(约0.9)。做(0附近)。

所以如果你有

“什么是可怕的动物?” ==>“老虎”,

“嗨” =>“你好,你好吗?”

“ Hello”会将0.9映射为“ Hi”,将0映射为“什么是可怕的动物”,因此请选择“ Hello”的答案,即“ Hello,你好吗?”

“什么是凶猛的动物”会比“什么是可怕的动物”更接近地图,因此选择老虎。.


要使您的程序有所改进,您需要将映射保存在某处并添加更多。.这就是GOFAI聊天机器人的大致工作方式

,

机器学习是一种统计机制。这是一个有些相关的链接:"Estimate" the amount of training needed in advance

就个人而言,这不是“智能”。想象一下,当用户说一些话可以在以后的问题中重复使用时,必须对机器人进行实时培训。

还有另一种以聊天机器人方式回答问题的方法,称为自然语言处理(请检查stackoverflow标签NLP)。特殊地,逻辑/语义处理可以将用户输入分解为其组成部分,并从中发展出适当的响应。

本文链接:https://www.f2er.com/3144991.html

大家都在问