首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个AI聊天机器人,它可以学习如何聊天,而无需学习如何回答用户提出的每个问题

创建一个AI聊天机器人,它可以学习如何聊天,而无需学习如何回答用户提出的每个问题
EN

Stack Overflow用户
提问于 2019-11-07 20:10:53
回答 2查看 133关注 0票数 0

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

示例:

代码语言:javascript
复制
input("hello")

output("Hi, how are you?")

在不教ai聊天机器人如何响应"hi“的情况下,我希望它也能够响应。

像这样:

代码语言:javascript
复制
 input("Hi")

 output("Hello, how are you?")

这对我来说非常困难,这就是为什么我要求得到答案。

我当前的代码:

代码语言:javascript
复制
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") 
EN

回答 2

Stack Overflow用户

发布于 2019-11-07 20:16:29

如果您有一组预先构建的响应,例如"Hi,how are you",您可以为这些响应构建一组适当的提示问题,并比较用户输入和已知提示问题之间的相似性(例如,使用spacy nlp)。

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

例如,"Hello“和"Hi”的相似度(0.9左右)比"Hello“和"What is a scary animal?”要高得多。do (接近0)..

所以如果你有

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

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

"Hello“会将0.9映射为"Hi”,而将接近0的值映射为"What is a scary animal",因此请选择“Hello”的答案,即"Hello,how are you?“

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

为了允许您的程序改进,您需要将映射保存在某个位置并添加更多映射。这就是GOFAI聊天机器人的工作原理

票数 0
EN

Stack Overflow用户

发布于 2020-09-27 17:45:00

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

就我个人而言,这不是“智慧”。想象一下,当用户说了一些要在将来的问题中重用的事情时,必须在现场重新训练机器人。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58748516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档