1

我目前正在研究自然文本的高级机器表示。例如,“我有一只狗,但我把它给了没有任何狗的丹尼”将是

I.have.dog =1
I.have.dog -=1
Danny.have.dog = 0
Danny.have.dog +=1

像这样的东西......

我正在尝试查找资源,但无法真正找到匹配的主题。这种类型的研究是否有有效的主题名称?任何资源库?自然逻辑听起来像是相关的东西,但它并不是我正在研究的东西。请帮帮我!

4

2 回答 2

2

表示自然语言的意义是计算语义学的领域。在该领域内,已经开发了许多框架,尽管基本的框架仍然是一阶逻辑。

具体来说,您的问题似乎是识别话语语义的问题,它处理语言使用带来的信息变化。这几乎是一个开放的研究领域,所以期望找到很多研究论文和博士职位,但很少有易于使用的软件。

于 2012-05-20T11:15:18.863 回答
1

正如 larsmans 已经说过的,这几乎是一个非常开放的研究领域,称为计算语义学(计算语言学的一个子领域)。

在开始使用 comp-sem 之前,您需要了解一件重要的事情:那里的大多数人都使用花哨的高级语言。我所说的高级不是指 C,而是更像 LISP、Prolog 或最近的 Haskell 之类的东西。计算语义非常接近逻辑,这就是为什么研究该主题的人更喜欢函数式和逻辑语言的原因——他们更接近于他们整天实际使用的语言。

首先看一些谓词逻辑的基础课程对您也非常有用,因为这是基础文献通常认为理所当然的。LTF Gamut — Logic, Language, and Meaning, volume I很好地介绍了逻辑和语言之间的联系。这涉及语义的语言方面,它不会帮助您实现任何东西,但它帮助您理解以下文献。也就是说,至少有一些书会解释谓词逻辑,但如果你问我,任何人真正感兴趣在将语言表示为一种形式系统时,应该学习谓词以及可能的直觉主义和内涵逻辑的课程。

为了让您稍微了解一下,对于当前的 comp-sem 方法,您的示例相当难以处理。并非不可能,但难度已经相当高了。使它变得困难的是一个部分的时态(处理时态和方面通常会使您进入甚至语义,)而且您必须以适用于本示例的方式定义给予拥有关系。(一个更简单的例子是,说“我 一条狗,但我把它给了没有狗的丹尼。”你明白为什么吗?)

让我们翻译“我有一条狗”。

∃x[dog(x) ∧ have(I,x)]

(有一个对象 x,使得 x 是一条狗,并且“I”和 x 之间存在有关系。)

然后将根据模型评估这些句子,其中可能已经定义了“I”常数。通过按顺序评估多个句子,您可以更改该模型,以便它跟踪对话。

让我们给你一些建议,让你开始吧。经典的 comp-sem 系统是 SHRDLU,它将某种颜色的几何图形放置在虚拟环境中。您可以使用它,因为在我链接到的那个页面上有一个与 Windows 兼容的在线演示。

关于该主题的最佳现代书籍可能是Blackburn 和 Bos (2005)。它是用 Prolog 编写的,但是页面上链接了一些资源来学习 Prolog(现在!)

Van Eijck 和 Unger在 Haskell 中提供了一个关于计算语义的很好的课程,这是一个较新的课程,但在我看来,就原始计算语义而言,它不像 Blackburn 和 Bos 那样具有教育意义。

于 2012-05-21T07:16:43.510 回答