用 Leaf 程式設計 AI/在 Leaf 上新增:ALICE 聊天機器人
Leaf 本身可以在語音請求時執行一系列操作。他也有一個隨著經驗和時間變化的個性。然而,在對話方面,他非常有限,擴充套件他能夠回答的問題需要“Leafer”(Leaf 使用者)在主程式碼庫中新增幾行 LISP 程式碼。需要一個更簡單的解決方案。這個解決方案被制定為三種不同的聊天機器人。其中兩個僅限於儲存在外部文字檔案中的少量問題和答案。第三個聊天機器人,將在本文中描述的聊天機器人,是一個完整的聊天機器人,基於由 Richard Walace 博士建立的 ALICE 聊天機器人。更準確地說,“A.L.I.C.E.”(人工語言網際網路計算機實體),是一個自然語言處理聊天機器人——一個透過對人類輸入應用啟發式模式匹配規則來與某人進行對話的程式。ALICE 使用一種稱為 AIML 的 XML 形式。AIML 用於建立聊天機器人的個性,並且可以透過編輯基於文字的 AIML 檔案輕鬆配置和更新。
ALICE 聊天機器人程式碼本身是一組基於 ALICE 的 java 程式碼,而 ALICE 又基於最初的 Eliza。您可以對其進行大量的自定義。
非常重要的說明:ALICE 程式碼最初是為 Windows XP 編寫的。它在您的 C:\\ 驅動器上寫入和刪除檔案。Windows 7 不再允許使用者或軟體寫入 C:\\ 驅動器,在我能夠重新編譯程式碼以指向其他位置之前,要使用此功能,您將必須“解鎖”您的 C:\\ “根”目錄並關閉 UAC。這將損害新的 Windows 安全性,並將使用者的 PC 暴露於各種病毒的風險。
所需檔案/軟體
- Leaf 軟體(已完全安裝並正常執行)(位於雅虎 Leaf 組的檔案部分)
- Java SDK
- Leaf 的 ALICE 分支(位於雅虎 Leaf 組的檔案部分的 Leaf.lisp)
- ALICE 的 Leaf 聊天機器人分支“programD”(位於雅虎 Leaf 組的檔案部分)
Leaf 必須按照本書其他地方的說明完全安裝並正常執行。
下載並安裝最新版本的 Windows 版 Java SDK(撰寫本文時為 7u4 版)。
Leaf 的 ALICE 分支修改 leaf.lisp 以將他不認識的短語傳遞給聊天機器人軟體。聊天機器人軟體隨後會回答這些短語並將其傳遞迴 Leaf 以大聲朗讀。主要變化是在 speech.xml 檔案中新增 DICTATION MAX="INF"。這將識別範圍擴充套件到任何單詞。如果 speech.xml 中沒有此語句,Leaf 將僅限於其中列出的短語。
Leaf <-> ALICE 管道包含兩個檔案“in.txt”和“out.txt”,它們在您的 c: 驅動器中即時建立和刪除。
- 將您自己的 speech.xml 從 Leaf 目錄中取出並儲存到其他地方。
- 將新的 speech.xml 和 LeafChatbot.lisp 檔案放到您的 leaf 目錄中。
- 解壓縮 programD.zip
- 將整個 programD 資料夾放到您的 c:\ 目錄中
- 在您的桌面上為 \programD\bin\simple-console.bat 建立一個快捷方式
您必須為 ALICE ProgramD 建立一個新的環境變數
- 開啟 Windows 7 系統屬性。
- 單擊“環境變數”按鈕。(環境變數螢幕開啟。)
- 單擊“新建”按鈕。(“新建使用者變數”視窗開啟。)
- 輸入 JAVA_HOME 作為變數名。
- 輸入 C:\Program Files\Java\jdk1.7.0_04(或您自己的路徑)作為變數值。
- 單擊“確定”。(關閉“新建使用者變數”視窗)
- 單擊“確定”。(關閉“環境變數”視窗。)
- 單擊“確定”。(關閉“系統屬性”視窗)
(您可能需要重新啟動電腦。)
(您的語音識別至少需要進行兩次訓練才能正常工作。)
- 以管理員身份執行 simple-console.bat 啟動機器人。(或者從 DOS cmd 視窗啟動它。)
- 啟動 Lispworks
- 編譯並載入 Leaf Interfaces.lisp
- 編譯並載入 LeafChatbot.lisp
- 開啟監聽器並啟動 (leaf)
您需要說得非常清楚,因為正在使用整個詞彙字典。
首先嚐試說“現在幾點了”,然後嘗試說“你好”或“你好嗎?”
要自定義 Leaf 的響應,您可以編輯 programD 內部的許多個性檔案。
將程式碼移到您自己的 leaf.lisp 檔案中(在編輯之前一定要備份原始程式碼!)。您可以在 LeafChatbot.lisp 中找到聊天機器人程式碼,並將其仔細貼上到您自己的 leaf.lisp 中的正確位置。它在兩個地方:1. 在“命名您的機器人”之後,以及在 Lisp 識別所有短語之後。(搜尋“chatbot”。)如果您操作不當,leaf 將無法再正常執行。
--祝您好運!
我會在“Leaf AI 機器人”線上雅虎群組中回答任何問題。
--Thomas M