机器表示自然文本

时间:2012-05-20 11:03:08

标签: nlp

我目前正致力于自然文本的高级机器表示。 例如, “我有一只狗,但我把它交给了没有任何狗的Danny” 会是

I.have.dog =1
I.have.dog -=1
Danny.have.dog = 0
Danny.have.dog +=1
像这样......

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

2 个答案:

答案 0 :(得分:2)

代表自然语言的含义是 computational semantics 的范围。在该领域内,已经开发了许多框架,但基本框架仍然是一阶逻辑。

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

答案 1 :(得分:1)

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

在开始comp-sem世界之前,你需要了解一件重要的事情:那里的大多数人都使用花哨的高级语言。高级别我不是指C,而是更像LISP,Prolog或者最近的Haskell。计算语义非常接近逻辑,这就是为什么研究这个主题的人对功能和逻辑语言更加熟悉 - 他们更接近他们整天实际使用的东西。

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

为了给你一点看法,你的榜样很难治疗 当前的组合方法。并非不可能,但已经相当高了 难度。令人困难的是一部分的紧张(交易 紧张和方面通常会带你进入甚至语义,但也 您必须以某种方式定义给予关系 适用于此示例。 (一个更简单的例子就是说,“我 一条狗,但我把它交给了没有任何东西的丹尼。“你能明白为什么吗?”

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

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

(有一个对象x,这样x就是一只狗,并且它们之间存在有关系 “我”和x。)

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

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

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

Van Eijck and Unger在Haskell中提供了一个关于计算语义的好课程,这个课程有点近,但在我看来,在原始计算语义方面并不像Blackburn和Bos那样具有教育意义。