跳转到内容

用 Leaf 编程 AI/在 Leaf 上添加:ALICE 聊天机器人

来自 Wikibooks,开放世界的开放书籍

Windows 7 上的 Leaf 聊天机器人简介

[编辑 | 编辑源代码]

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 软件

[编辑 | 编辑源代码]

Leaf 必须按照本书其他地方的说明完全安装并正常运行。

下载并安装最新版本的 Windows 版 Java SDK(撰写本文时为 7u4 版)。

Leaf 的 ALICE 分支

[编辑 | 编辑源代码]

Leaf 的 ALICE 分支修改 leaf.lisp 以将他不认识的短语传递给聊天机器人软件。聊天机器人软件随后会回答这些短语并将其传递回 Leaf 以大声朗读。主要变化是在 speech.xml 文件中添加 DICTATION MAX="INF"。这将识别范围扩展到任何单词。如果 speech.xml 中没有此语句,Leaf 将仅限于其中列出的短语。

Leaf <-> ALICE 管道包含两个文件“in.txt”和“out.txt”,它们在您的 c: 驱动器中实时创建和删除。




  1. 将您自己的 speech.xml 从 Leaf 目录中取出并保存到其他地方。
  2. 将新的 speech.xml 和 LeafChatbot.lisp 文件放到您的 leaf 目录中。
  3. 解压缩 programD.zip
  4. 将整个 programD 文件夹放到您的 c:\ 目录中
  5. 在您的桌面上为 \programD\bin\simple-console.bat 创建一个快捷方式


您必须为 ALICE ProgramD 创建一个新的环境变量

  1. 打开 Windows 7 系统属性。
  2. 单击“环境变量”按钮。(环境变量屏幕打开。)
  3. 单击“新建”按钮。(“新建用户变量”窗口打开。)
  4. 输入 JAVA_HOME 作为变量名。
  5. 输入 C:\Program Files\Java\jdk1.7.0_04(或您自己的路径)作为变量值。
  6. 单击“确定”。(关闭“新建用户变量”窗口)
  7. 单击“确定”。(关闭“环境变量”窗口。)
  8. 单击“确定”。(关闭“系统属性”窗口)

(您可能需要重新启动电脑。)



(您的语音识别至少需要进行两次训练才能正常工作。)

  1. 以管理员身份运行 simple-console.bat 启动机器人。(或者从 DOS cmd 窗口启动它。)
  2. 启动 Lispworks
  3. 编译并加载 Leaf Interfaces.lisp
  4. 编译并加载 LeafChatbot.lisp
  5. 打开监听器并启动 (leaf)

您需要说得非常清楚,因为正在使用整个词汇字典。

首先尝试说“现在几点了”,然后尝试说“你好”或“你好吗?”


自定义

[编辑 | 编辑源代码]

要自定义 Leaf 的响应,您可以编辑 programD 内部的许多个性文件。

将代码移到您自己的 leaf.lisp 文件中(在编辑之前一定要备份原始代码!)。您可以在 LeafChatbot.lisp 中找到聊天机器人代码,并将其仔细粘贴到您自己的 leaf.lisp 中的正确位置。它在两个地方:1. 在“命名您的机器人”之后,以及在 Lisp 识别所有短语之后。(搜索“chatbot”。)如果您操作不当,leaf 将无法再正常运行。

--祝您好运!

我会在“Leaf AI 机器人”在线雅虎群组中回答任何问题。

--Thomas M

华夏公益教科书