Nlp 自然语言图灵完备吗?

Nlp 自然语言图灵完备吗?,nlp,programming-languages,theory,turing-complete,Nlp,Programming Languages,Theory,Turing Complete,我非常确定人类语言(如英语)的强大程度足以模拟图灵机器,这将使其图灵完整。然而,这意味着自然语言的表现力并不比编程语言强或弱,这似乎是有疑问的 自然语言图灵完备吗?首先,“语言X图灵完备吗”仅仅是一个定义明确的问题,给出了语言X的定义明确的语义。由于自然语言的复杂性以及对上下文和直觉的依赖,几乎不可能为自然语言定义一个图灵完备的问题。大多数(全部?)自然语言甚至没有定义良好的语法 除此之外,您的主要困惑是基于这样的假设:计算模型不可能严格地比图灵机器更强大,即能够模拟图灵机器,但也能够表达图灵机

我非常确定人类语言(如英语)的强大程度足以模拟图灵机器,这将使其图灵完整。然而,这意味着自然语言的表现力并不比编程语言强或弱,这似乎是有疑问的

自然语言图灵完备吗?

首先,“语言X图灵完备吗”仅仅是一个定义明确的问题,给出了语言X的定义明确的语义。由于自然语言的复杂性以及对上下文和直觉的依赖,几乎不可能为自然语言定义一个图灵完备的问题。大多数(全部?)自然语言甚至没有定义良好的语法

除此之外,您的主要困惑是基于这样的假设:计算模型不可能严格地比图灵机器更强大,即能够模拟图灵机器,但也能够表达图灵机器无法表达的计算。事实并非如此。例如,我们可以用预言扩展图灵机,得到一个比普通图灵机更强大的计算模型

同样,我们可以定义一种编程语言MagicLang,它可以完成普通编程语言所能做的一切,并解决停止问题。定义这样一种语言的语义很容易:只需将我们使用的语言的语义作为基础,并添加一个函数
bool-halts(string-src,string-input)
“如果源代码
src
描述的程序在给定输入
input
的有限时间后成功终止,则返回true”。因此,这很容易。实现这种语言是困难的,或者说是不可能的

现在有人可能会说,自然语言也可以描述停止的问题,我们的大脑可以“执行”自然语言,也就是说,它可以回答“这个程序停止了吗?”所以,如果我们能建造一台计算机,它能做我们大脑能做的一切,它也应该能做到这一点。但问题是我们的大脑无法100%准确地解决停顿问题。我们的大脑甚至不能100%准确地执行常规程序。只要记住,你经常在头脑中经历一个程序,并得出与现实不同的结果。我们的大脑非常擅长学习、建立直觉联系和运用启发法,但这些事情总是伴随着给出错误结果的风险


那么计算机也能做同样的事情吗?是的,我们可以使用启发法和机器学习来处理其他无法解决的问题,通过这种方法,普通编程语言可以尝试解决所有可以用自然语言描述的问题(即使是不可判定的问题)。但就像大脑一样,这些程序有时会给出错误的结果。事实上,由于我们的机器学习算法和启发法远不如人脑的先进,它们会给出错误的结果。

如果软件语言足够复杂,可以用来定义对自身的任意扩展(例如定义任意新函数),那么它显然是图灵完成的


使用自然语言,如果有足够的时间,我可以教授另一个人的术语和概念,以扩展他们的理解和能力来讨论他们以前不能讨论的任意主题——例如,我可以教他们版权法或天体物理学(如果他们还不知道的话)。因此,虽然这可能更像是一个类比而不是一个确切的恒等式,但自然语言似乎确实存在一个图灵完整性属性:它们可以用来定义任意的扩展并将其传递给它们自己。(诚然,并不是每个人都适合学习天体物理学——但任何非理想化的旋转机器都只有有限的内存,因此总是有可能定义一个无法运行的程序,因为它没有足够的内存。)

图灵完整性更多地与可计算性有关,而不是作为语言的一个方面或属性。因此,这个术语不能像其他更正式的语言那样真正应用于自然语言(特别是口语语言)。我发现自然语言不能像编程语言那样直观地表达计算模型。但另一方面,我无法理解使用编程语言在计算机中操纵符号和使用人类语言在大脑中操纵符号之间的确切技术区别。