簡體   English   中英

創建一個 AI 聊天機器人,無需學習如何回答用戶提出的每個問題即可學習如何聊天

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM