我的代码仅仅是这样,它只会识别特定的问题...否则会要求答案...但是我希望它能够学习并尝试自我解答我的新问题。
示例:
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), end=", ")
else:
print(out)
else:
print("Error in input")
答案 0 :(得分:0)
如果您有一组预先构建的响应,例如“嗨,你好吗”,则可以为这些响应构建一组适当的提示问题,并比较(例如使用spacy nlp)之间的相似性用户输入和您已知的提示问题。
您可以采用相似度最高的提示问题,以识别先前已映射到响应的最相似的问题-然后回答该问题,作为响应。
例如,“ Hello”和“ Hi”比“ Hello”和“什么是可怕的动物”具有更高的相似度(约0.9)。做(0附近)。
所以如果你有
“什么是可怕的动物?” ==>“老虎”,
“嗨” =>“你好,你好吗?”
“ Hello”会将0.9映射为“ Hi”,将0映射为“什么是可怕的动物”,因此请选择“ Hello”的答案,即“ Hello,你好吗?”
“什么是凶猛的动物”会比“什么是可怕的动物”更接近地图,因此选择老虎。.
要使您的程序有所改进,您需要将映射保存在某处并添加更多。.这就是GOFAI聊天机器人的大致工作方式
答案 1 :(得分:0)
机器学习是一种统计机制。这是一个有些相关的链接:"Estimate" the amount of training needed in advance
就个人而言,这不是“智能”。想象一下,当用户说一些话可以在以后的问题中重复使用时,必须对机器人进行实时培训。
还有另一种以聊天机器人方式回答问题的方法,称为自然语言处理(请检查stackoverflow标签NLP)。特殊地,逻辑/语义处理可以将用户输入分解为其组成部分,并从中发展出适当的响应。