[英]How to build an AI system which learns from corpus and answers to the user whenever they ask anything related to that corpus
[英]Create a AI chatbot that learns how to chat without learning how to answer every question given by the user
我的代碼只是這個,它只會識別特定的問題......否則它會要求答案......但我希望它能夠學習並嘗試自我回答我的新問題。
例子:
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")
如果您有一組預先構建的響應,例如“嗨,你好嗎”,您可以為此類響應構建一組適當的提示問題,並比較用戶輸入和您已知的相似度(例如使用spacy nlp )提示問題。
您可以采用相似度最高的提示問題,以識別先前已映射到響應的最相似問題 - 然后回答該問題的答案作為響應。
例如,“你好”和“嗨”的相似度比“你好”和“什么是可怕的動物?”具有更高的相似度(0.9 左右)。 做(接近0)..
所以如果你有
“什么是可怕的動物?” ==> "老虎",
“嗨” => “你好,你好嗎”?
“你好”會 map 0.9 到“嗨”,接近 0 到“什么是可怕的動物”,所以選擇“你好”的答案,即“你好,你好嗎?”
“什么是凶猛的動物”會 map 更接近“什么是可怕的動物”,所以選擇老虎。
為了讓您的程序改進,您需要將映射保存在某處並添加更多.. 這大致是 GOFAI 聊天機器人的工作方式
機器學習是一種統計機制。 這是一個有點相關的鏈接: “估計”提前需要的培訓量
就個人而言,這不是“智能”。 想象一下,當用戶說出要在未來問題中重復使用的內容時,必須在現場重新訓練機器人。
還有另一種以聊天機器人方式回答問題的方法,稱為自然語言處理(檢查 stackoverflow 標簽 NLP)。 特別是邏輯/語義處理可以將用戶輸入分解為其組成部分,並從那里開發出適當的響應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.