用于人工智能的 Lisp 和 Prolog?

标签 lisp artificial-intelligence prolog

<分区>

自从我 3 年前上过人工智能类(class)以来。我显然足够熟练来问这个问题......开玩笑开玩笑;)

但说真的,是什么让这些语言在人工智能中如此受欢迎?研究。尽管 A.I.研究是“古老的”……它可能是过去 5-10 年中最长的研究方式……似乎…… 是因为这些语言在某种程度上是围绕 A.I. 的概念“设计”的吗? ,或者只是我们现在没有更好的东西可以使用?

我问这个是因为我一直觉得它很有趣,我只是有点好奇。如果我完全错了并且他们使用不同的语言,我很想知道他们都使用什么。我的意思是我可以理解 prolog,尤其是感知/命题逻辑和模糊逻辑。但我不明白“为什么”我们会使用 Lisp……甚至还有什么 A.I.研究人员会用来做机器学习等。

有关该主题的任何文章/书籍也很有帮助:)

最佳答案

这个问题已经针对 Lisp 得到了回答,所以我只对 Prolog 发表评论。

Prolog 是为两件事而设计的:自然语言处理和逻辑推理。在GOFAI 1970 年代初期的范式,当 Prolog 被发明时,这意味着:

  1. 为自然语言构建符号语法,用于构建句子/话语的逻辑表示;
  2. 使用这些表示和逻辑公理(不一定是经典逻辑的那些)来推断新事实;
  3. 使用相似的语法将逻辑表示翻译回语言。

Prolog 在这方面非常擅长,并用于 ISS正是为了这样的任务。尽管这种方法名誉扫地,因为

  1. "all grammars leak" : 没有一种语法可以捕获一种语言中的所有规则和异常(exception);
  2. 语法越详细,解析的复杂度(既大又实用)越高;
  3. 对于许多实际任务而言,逻辑推理既不充分也不必要;
  4. NLP 的统计方法,即“字数统计”,已被证明更为稳健。随着 Internet 的兴起,可以使用足够的数据集来获取 NLP 开发人员需要的统计数据。与此同时,内存和磁盘成本已经下降,而处理能力仍然相对昂贵。

直到最近,NLP 研究人员才开发出一些实用的组合符号统计方法,sometimes using Prolog .世界其他地方使用 Java、C++ 或 Python,您可以更轻松地找到它们的库、工具和非博士程序员。事实上,I/O 和算术在 Prolog 中很笨重,这无助于它被接受。

Prolog 现在主要局限于涉及 NLP 和约束推理的特定领域应用程序,它似乎在这些领域表现相当不错。尽管如此,很少有软件公司会宣传“基于 Prolog 技术”,因为该语言因未能兑现“让 AI 变得简单”的 promise 而名声扫地。

(我想补充一点,我是 Prolog 的忠实粉丝,但即使我只用它来制作原型(prototype)。)

关于用于人工智能的 Lisp 和 Prolog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5224524/

相关文章:

java 草稿 AI(多线程)

list - Prolog 中的排序

lisp - 有没有办法在普通的 lisp 中取消引用列表?

html - 使用 Emacs 将纯文本文件转换为 HTML。如何添加结束标签?

python - 帮我写我的 LISP :) LISP environments, Ruby Hashes

list - Prolog 中是否有相当于 Haskell 的 enumFromTo 的东西?

prolog - 向 DCG Prolog 寻求答案

LISP 根据第一个列表中每个元素的值用另一个列表中的元素替换一个列表中的元素

python - 如何根据句子相似度对句子进行聚类和绘图?

math - 国际象棋游戏中的走法预测?