我有我的這個個人C++項目,我目前卡住了。似乎很多人都對這個話題提出了問題,如果這是一個重複的問題,我現在要道歉。基於C++聊天機器人等級的回答?
不管怎樣,這個項目是一個聊天機器人,它會根據用戶輸入做出回答。 當前爲,因此它將採用整個查詢並使用長效率低效的語句if
來查找匹配項。如果發現匹配,它將回答一個特定的答案。
我之所以來這裏是因爲我厭倦了編寫非常耗時,效率低下的陳述,甚至沒有記錄同一問題的所有變化。我不在尋找從維基百科或類似的東西獲取數據的代碼或解決方案。我想要的聊天機器人只是回答一些簡單的問題。
在我用if語句抨擊我的時候,我想出了一個主意。爲什麼我不像搜索引擎排名網頁一樣使用關鍵字?
我已經編寫了代碼,以計算查詢中存在多少個關鍵字(或多個不同的關鍵字)。問題是如何去排名他們以找到最佳答案?我會假設答案和關鍵字需要以特殊的方式存儲。
我的答案,我的主要問題名單至今都:
當接收到查詢,通過ini文件,其中有關鍵中的關鍵字排名吧,而且回答作爲它的價值。如果存在多個答案,則採用另一個關鍵字並搜索原始內容(縮小範圍)。做足夠的時間應該會得出正確的答案。
優點:適合我需要做的,這是我可以在C++中掌握的東西。
缺點:似乎冗長和低效率的,幾乎像潛入如果再次聲明......
2.使用SQL數據庫,告訴它找到適用的答案。不知道如何做到這一點。
優點:這將是輕量級的,因爲數據庫計算機將處理搜索並可能非常詳細。
缺點:對我來說可能會導致很多痛苦,因爲我已經用C++在相當高的水域踩踏了。但是,我開始認爲它會像if語句一樣結束。
3.有人可能會在這裏建議的最佳答案是AIML(這是discussed here)。
優點:用於開發智能聊天機器人,功能非常強大。
缺點:似乎對我的簡單的項目太「重」,我不能明確的是我找到一個易於理解的代碼,一個機器人是需要AIML的搜索。
我希望有人可以建議一個聰明的路線,因爲我不是C++的粉絲,我覺得我已經在用這個項目深入探索。然而,今年夏天,我覺得自己咬舌頭,走出我的舒適區,一度在C++中發揮作用。我可以在PHP中快速完成這項工作,但爲了發送消息,我必須使用C++。
如果你能在php中完成它,那麼在C++中做什麼會阻止你?此外,如果您希望它看起來很智能,那麼您應該更多地關注上下文而不是關鍵字排名。 – gcochard
當談到製造人工智能至少有點「智能」時,會涉及很多工作。悲傷的第一階段是接受。 –
上下文會很簡單,我已經考慮過了。這只是如何找到正確或最好的答案。正如亞歷克斯提出的那樣,我擔心任何種類的人工智能都不容易做到。我不是C++的最佳人選,但同時我不爬行。我不習慣C++,我仍然圍繞着一些概念。 –