自然语言与形式语言.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自然语言与形式语言

自然语言和形式语言 自然语言(Natural Language)就是人类讲的语言,比如汉语、英语和法语。这类语言不是人为设计(虽然有人试图强加一些规则)而是自然进化的。形式语言(Formal Language)是为了特定应用而人为设计的语言。例如数学家用的数字和运算符号、化学家用的分子式等。编程语言也是一种形式语言,是专门设计用来表达计算过程的形式语言。 形式语言有严格的语法(Syntax)规则,例如,3+3=6是一个语法正确的数学等式,而3=+6$则不是,H2O是一个正确的分子式,而2Zz则不是。语法规则是由关于符号(Token)和结构(Structure)的规则所组成的。Token的概念相当于自然语言中的单词和标点、数学式中的数和运算符、化学分子式中的元素名和数字,例如3=+6$的问题之一在于$不是一个合法的数也不是一个事先定义好的运算符,而2Zz的问题之一在于没有一种元素的缩写是Zz。语法规则的第二个范畴是结构,也就是Token的排列方式。3=+6$还有一个结构上的错误,虽然加号和等号都是合法的运算符,但是不能在等号之后紧跟加号,而2Zz的另一个问题在于分子式中必须把下标写在化学元素名称之后而不是前面。关于Token的规则称为词法(Lexical)规则,而关于语句结构的规则称为语法(Grammar)规则[ HYPERLINK /media/intro.naturalformal.html \l ftn.id2581838#ftn.id2581838 3]。 当阅读一个自然语言的句子或者一种形式语言的语句时,你不仅要搞清楚每个词(或Token)是什么意思,而且必须搞清楚整个句子的结构是什么样的(在自然语言中你只是没有意识到,但确实这样做了,尤其是在读外语时你肯定也意识到了)。这个分析句子结构的过程称为解析(Parse)。例如,当你听到“The other shoe fell.”这个句子时,你理解the other shoe是主语而fell是谓语动词,一旦解析完成,你就搞懂了句子的意思,如果知道shoe是什么东西,fall意味着什么,这句话是在什么上下文(Context)里说的,你还能理解这个句子主要暗示的内容,这些都属于语义(Semantic)的范畴。 虽然形式语言和自然语言有很多共同之处,包括Token、结构和语义,但是也有很多不一样的地方。 歧义性(Ambiguity) 自然语言充满歧义,人们通过上下文的线索和其它一些信息来解决这个问题。形式语言的设计要求是清晰的、毫无歧义的,这意味着每一个语句必须有确切的含义而不管上下文如何。 冗余性(Redundancy) 为了消除歧义减少误解,自然语言引入了相当多的冗余。结果是自然语言经常变得啰里啰嗦,而形式语言则更加紧凑,极少有冗余。 与字面意思的一致性 自然语言充斥着成语和隐喻(Metaphor),我在某种场合下说“The other shoe fell”,可能并不是说谁的鞋掉了。而形式语言中字面(Literal)意思基本上就是真实意思,也有些特殊情况,例如C语言的转义序列(Escape Sequence),但也都会明确规定哪些字面意思不是真实意思,它们所表示的真实意思又是什么。 说自然语言长大的人(实际上没有人例外),往往有一个适应形式语言的困难过程。某种意义上,形式语言和自然语言之间的不同正像诗歌和说明文的区别,当然,前者的区别比后者更明显: 诗歌 词语的发音和意思一样重要,全诗作为一个整体创造出一种效果或者表达出一种感情。歧义和非字面意思不仅是常见的而且是刻意使用的。 说明文 词语的字面意思显得更重要,而且结构能传达出更多的信息。诗歌只能看一个整体,而说明文更适合逐字句分析,但仍然充满歧义。 程序 计算机程序是毫无歧义的,字面和本意高度一致的,能够完全通过对Token和结构的分析加以理解。 现在给出一些关于阅读程序(包括其它形式语言)的建议。首先请记住形式语言远比自然语言紧凑,所以要多花点时间来读。其次,结构很重要,从上到下从左到右地读往往不是一个好办法,而应该学会在大脑里解析:识别Token,分解结构。最后,请记住细节的影响,诸如拼写错误和标点错误这些在自然语言中可以忽略的小毛病会把形式语言搞得面目全非。 [ HYPERLINK /media/intro.naturalformal.html \l id2581838#id2581838 3] 很不幸,Syntax和Grammar通常都翻译成“语法”,这让初学者非常混乱,Syntax的含义其实包含了Lexical和Grammar,还包含一部分语义(Semantic),例如变量应先声明后使用。即使在英文的文献中Syntax和Grammar也常混用,有些时候Syntax不包括Lexical。不过也没什么影响,

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档