【问题标题】:Create a AI chatbot that learns how to chat without learning how to answer every question given by the user创建一个 AI 聊天机器人,无需学习如何回答用户提出的每个问题即可学习如何聊天
【发布时间】:2020-09-27 17:45:00
【问题描述】:

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

示例:

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") 

【问题讨论】:

    标签: python chatbot


    【解决方案1】:

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

    您可以选择相似度最高的提示问题,以确定之前已映射到响应的最相似问题 - 然后回答该问题的答案,作为响应。


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

    如果你有

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

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

    “Hello”会将 0.9 映射到“Hi”,将接近 0 映射到“什么是可怕的动物”,所以选择“Hello”的答案,即“Hello, you are you?”

    “什么是凶猛的动物”会更接近于“什么是可怕的动物”,所以选择老虎..


    为了让您的程序能够改进,您需要将映射保存在某处并添加更多内容。这大致就是 GOFAI 聊天机器人的工作方式

    【讨论】:

      【解决方案2】:

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

      就个人而言,这不是“智能”。想象一下,当用户说出要在以后的问题中重复使用的内容时,必须在现场重新训练机器人。

      还有另一种以聊天机器人方式回答问题的方法,称为自然语言处理(检查 stackoverflow 标记 NLP)。特别是逻辑/语义处理可以将用户输入分解为其组成部分,并从那里产生适当的响应。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-28
        • 1970-01-01
        • 2020-06-26
        • 1970-01-01
        • 1970-01-01
        • 2016-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多