可以使用一组语法规则来概括英语吗?

人工智能 人工智能设计 自然语言处理 语义
2021-11-02 22:31:08

在编程语言中,有一组语法规则来管理有效语句和表达式的构造。这些规则有助于解析用户编写的程序。

是否有一套功能完整的语法规则可以准确地解析任何英语(特定于语言环境)的语句,并且可以在基于人工智能的项目中使用?

我知道网上有很多可用的 NLP 工具包,但它们并不是那么有效。他们中的大多数是使用特定的语料库进行训练的,这些语料库有时无法推断出表达式各个部分之间的一些复杂相关性。

换句话说,我要问的是,计算机是否有可能解析一个精通英语的句子,就好像它是由一个说英语的成年人解析的一样?

编辑:如果不能用简单的语法规则来表示,可以用什么样的语义结构来概括它?

EDIT2:本文证明了自然语言中不存在上下文无关性。我正在寻找解决方案,即使它太复杂。

4个回答

是否有一套功能完整的语法规则可以准确地解析任何英语(特定于语言环境)的语句,并且可以在基于人工智能的项目中使用?

解析它是的,准确地说很可能不是。

为什么 ?

根据我对我们如何从声音中获取意义的理解,有两种互补的策略:

语法规则: 一种基于规则的系统,用于对单词进行排序以促进交流,这里的含义来自离散声音及其独立含义的相互作用,因此您可以根据规则书解析句子。

EG “This was a triumph”:解析器会提取出具有相应含义(特定的人或事物)的代词( This );具有相应含义的动词()(发生);( a ) 在这里我们从一些解析问题开始,解析器会提取什么,名词或不定冠词?因此,我们查阅语法规则书,并确定其含义(不定冠词中的任何一个),但您必须解析下一个单词并引用它,但现在让我们忽略它,最后(胜利)一个名词(它也可以是动词,但是由于语法规则书,我们选择了一个有意义的名词:(胜利,征服),所以最后我们有了(加入意义):

胜利发生了一件特别的事情。足够接近,我正在掩盖其他一些规则,但这不是重点,另一个策略是:

词汇词典(或词典) ,其中单词或声音与特定含义相关联。这里的意义来源于一个或多个单词或声音作为一个单位。这会将问题引入解析器,因为它不应该解析任何东西。

EG "Non Plus Ultra"所以 AI 解析器会识别出这个短语不被解析,而是与含义相匹配:

最高点或顶点

词法单元引入了另一个问题,因为它们本身可能是第一个示例的一部分,因此您最终会遇到递归。

计算机是否有可能解析一个精通用英语写的句子,就好像它是由一个说英语的成年人解析的一样?

我相信这是可能的,我见过的大多数示例都有效地处理了语法规则书或词典部分,但我不知道两者的结合,但就编程而言,它可能会发生。

不幸的是,即使你解决了这个问题,你的 AI 也不会真正理解严格意义上的事物,而是为你提供非常复杂的同义词,此外,上下文(如评论中所述)在语法和词典策略中发挥作用。

如果不能用简单的语法规则来表示,可以用什么样的语义结构来概括它?

一种混合的方式,其中既有语法规则,也有词典,两者都可以根据 AI 特定的上下文和经验以及处理这些对象的系统进行更改和影响,这可能是一种方法。

我强烈不同意之前的所有评论。不是因为它们是错误的——它们不是——而是因为它们具有误导性——尽管是无意的。

例如:如果从学术的角度来看这些问题,这些问题似乎总是无法克服的。这是因为一切都是孤立地冷评估和计算的。

答案主要在于单词联想您必须编写一个程序来处理庞大的数字图书数据库,以记录每个单词以及该语言中与之相关联的所有单词。加上每个相关单词及其相关标点符号的所有统计信息。

然后,这将为您提供 AI 可以决定几件事的基础:

  1. 给定句子的结构是否正确。
  2. 如果结构不好,确定所说内容的上下文和意图的概率是多少。
  3. 根据统计数据,多面词(Triumph)的正确含义和应用是概率。
  4. 确定对话可能的去向。
  5. 正确的语法和标点应该是什么。

所以,总而言之,你有两件事要寻找:关联和概率。

当对语言模型进行数字化数据库时,单词和句子“字符串”的可能性会出现,因此任何给定句子中语言结构的每一个变化都可以在文本样本被抄写之前、期间和之后确定。这种对语言模型模式的密切控制意味着可以通过代码轻松确定敏感组件,例如“主题”和“对象”。

我很确定从最严格的意义上来说答案是“否”,因为英语根本没有正式的定义。也就是说,没有人控制英语并发布每个人都必须遵守的正式语法。英语是通过体验过程建立起来的,它有矛盾和缺陷,但人类思维的概率性质使我们能够解决这些问题。

例如,这个“句子”:

这句话没有动词

从技术上讲,它根本不是一个句子,因为它没有动词。但是有没有人理解它的意思有什么问题?疑。不过,请尝试为此制定正式规则。这只是一个例子。

现在,你能想出一个正式的语法,它可能涵盖 90% 的情况,并且对于大多数实际用途来说“足够好”了吗?可能,甚至可能。但我很确定不可能达到 100%。

我们已经得出结论,这是一个两方面的循环问题:没有上下文就无法推断结构,但了解结构也有助于推断上下文。所以,这是你的复杂解决方案:从上下文开始,它由句子中的单词组合决定(组合学和搜索问题),从那里确定你的结构,或者“解析”(在这一步你也可以过滤掉一些无关紧要的词或至少给它们分配较小的权重),回到上下文,回到解析,一直到你到达意思为止。因此,通过迭代、递归归约,可以解决整个问题。