掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5869|回复: 12

[经验心得] [转载] 解谜英语语法

[复制链接]

该用户从未签到

发表于 2019-12-27 10:17:05 | 显示全部楼层 |阅读模式
解谜英语语法
我发现很多人仍然在为语法的枯燥繁琐而头痛。市面上好像不存在一本深入本质的语法教材。语法对于我来说已经早就不是问题,所以我萌生了写这样一篇文章的念头,帮助那些正在为学习语法而痛苦挣扎的人们。
这篇文章里包含了一些我自己保留多年的关于英语学习的秘密。我曾经想过把这写成一本完整的语法书,可是后来发现似乎一篇文章足矣。
句子的核心地位
直到几百年前,各个不同大陆上的人还从来没见过面,他们的语言里却不约而同出现了同样的结构:句子。这似乎说明句子的出现是一种自然规律,必然结果,而不只是巧合。
句子是人类语言最核心的构造。为什么呢?因为人和人说话终究是为了一个目的:描述一件事。
这件事也许只有一个字:吃!
也许可以很长:昨天晚上在上海某路边餐厅吃的鹅肝我吃遍全世界最好的
一个句子表达的就是一件事,或者叫一个“事件”。人与人交流,无非就是讲述一个个的事件。
许多人学英语,一来就背单词,背了很多单词,仍然写不出像样的句子来。只见树木不见森林,因为他们没有意识到句子才是最关键的部分。我们应该一开头就理解句子是什么,如何造出句子,而不是背单词。单词是树木,句子才是森林。
你需要的能力
所以掌握一门语言,基本就是要掌握句子。有了句子就有了一切。
掌握句子包括两种能力:
  • 能够迅速地造出正确的句子,准确地表达自己的意思。
  • 能够迅速地分析别人的句子,准确地理解别人的意思。
    $ _2 ]. Z. a& l2 |0 b
这两件事,一个是表达(发送),一个是理解(接收)。因为语言是沟通(或者叫“通讯”)的工具,所以它就只包含这两件事。
句子的本质
假设我们是原始人,还没有语言。我想告诉同伴“我吃苹果”这件事,该怎么表达呢?没有语言,那我可以先画个图嘛:
画图是很麻烦的,笔画太多不说,还可能有歧义。到后来,部落里的人聪明了一点,发明了“符号”这种东西,只需要几笔就能表示一个概念。他们给事物起了简单的符号名字,不再需要画图了。于是我们有了 I, apple 这样的词用来指代事物。有了 eat 这样的词,用来代表动作。所以画面变成这个样子:
后来干脆连框也不画了,直接写出这些符号来,这就是我们现在看到的“句子”:
I eat apples.
注意,虽然没有了上面的框图,这句话其实隐含了这幅图。写这个句子的人假设阅读者能够从一串符号还原出一个画面(或者叫结构)来。
有些人不能理解别人的话,看书看不懂,就是没能从符号还原出结构来。很多语法书列举出千奇百怪的“组合情况”,为的只是帮助你从这串符号还原出结构来。在现代语言学和计算机科学里面,这个过程就叫做“语法分析”(parsing)。
动词是句子的核心
那么,你觉得“我吃苹果”这个事,里面最关键的部分是什么呢?是“我”,“苹果”,还是“吃”呢?
稍微想一下,你也许会发现,关键在于“吃”这个动作。因为那是我和苹果之间发生的事件。这句话是说“吃”这件事,而“我”或者“苹果”,只是“吃”的组成部分。
用 eat 这个词,你不但可以表达“我吃苹果”,还可以表达“他吃面条”,“猫吃老鼠”之类的很多事情。于是,聪明一点的人就把 eat 这个词提取出来,做成一个“模板”:
这个模板就是所谓“动词”。eat 这个动词给你留下两个空,填进去之后,左边的东西吃右边的。
句子是语言的核心,而动词就是句子的核心。动词是事件的关键,比如 eat。
A eat B.
我们可以选择空格里的 A 或者 B 是什么。但不管怎么换,事情仍然是“吃”。为了描述方便,我们把 A 和 B 这两个空格叫做参数(parameter)。
这跟数学函数的参数(f(x) 里面那个 x)类似,也跟程序函数的参数类似。用数学或者程序的方式来表示这个句子,就是这样:
eat(A, B)
其中 A 和 B,是动作 eat 的参数。我只是打个比方帮助你理解,当然我们不会这样写英语。如果你完全不懂数学或者编程,可以忽略这个比方。
动词决定了它可以有几个参数,它们可以在什么位置,参数可以是什么种类的成分。比如 eat,它可以有两个参数。这两个参数只能是某种“物体”。你不能放另一个动作(比如 walk)进去,也不能放一个形容词(比如 red)进去。这种动词对参数的约束,叫做参数的“类型”。
在这个例子里,eat 可以接受两个“名词”(noun),所以它的两个参数,类型都是 noun。
你可能注意到了,I eat apples 里面的“I”并不是名词,而是“代词”。我解释一下。我这里所说的“名词”,是泛指一切物体以及指代物体的名字。所以我叫做“名词”的东西,也包括了代词,比如 I, you, he, she, it。如果你回想一下代词的英文是 pronoun,就会意识到它和名词(noun)之间的关系。
你会发现这种扩展的“名词”,会大大方便我们的理解。在本书中除非特别指明,所谓“名词”包括了代词,以及一切可以被作为名词使用的结构(比如从句,动名词)。
一个句子除了动词,好像就只剩下动词的参数了。动词对它的参数具有决定性的作用,动词就是句子的核心。准确理解一个动词“想要什么参数”,什么样的结构可以出现在参数的位置,就是造出正确句子的关键。
使用不同的动词可以造出不同的句子。所以要理解语法,你在应该把大部分精力放在各种各样的动词身上,而不是花几个月时间去背名词和形容词。我并不是说名词和形容词不重要,只是它们并不是核心或者骨架。
没有人会怪你不认识某种恐龙的名字,但如果你不能理解“I am not used to eating garbage food.” 是什么意思,那你可能就有麻烦了。
具有三个参数的动词
现在举个复杂点的例子:
Coffee makes me happy. (咖啡使我快乐)
这里的动词是 make。跟 eat 不大一样,make 可以接受三个参数:coffee, me, happy。它的模板可以表示为:
A make B C
  z/ r. d3 O. ^意思是:A 使得 B 具有性质 C。
比如 Coffee makes me happy,其中 A 是 coffee,B 是 me,C 是 happy
再来一个例子:
I told you everything. (我告诉了你一切)
这里动词 tell 也有三个参数,它的模板是这样:
A tell B C.' F2 z) k% A, H* Y: [/ w! {
意思是:A 告诉 B 一件事 C。
比如 I told you everything,其中 A 是 I,B 是 you,C 是 everything
扯个淡:什么是宾补
说到这里我想扯个淡。初学者不知道什么是“宾补”的,可以跳过这一节,你不会损失什么。
在传统语法里,上面一节的 A make B CA tell B C 被看做是不同的语法现象,前者被称为含有“宾语补足语”,后者含有“双宾语”。可是在我们的框架下,这两者都不过是“接受三个参数的动词”。你只需要熟悉 A make B CA tell B C 是什么意思就可以了。
A make B C 里的 C 参数,其实就是传统语法叫做“宾语补足语”(宾补)的东西。然而跟传统语法不同,我不把它叫做“宾补”。这个成分没有任何特殊的名字和地位,而只是动词 make 的第三个参数。
有的动词可以有三个参数,有的动词只能有两个参数,有的动词只有一个参数。有的动词有时有两个参数,有时只有一个参数…… 就是这么简单,没有什么道理好讲,因为人们就是那么说话的。
人们约定俗成的说话方式,决定了 make 可以有三个参数,决定了这三者之间的关系:A 使得 B 变得 C。这就像数学的“定义”一样,是没有道理可讲的。你只需要多多练习,按照这个模板造句,知道它具体的意思就可以了。
模板“A make B C”,精确地决定了动词 make 可以产生的句型,定义了参数 A,B 和 C 之间的关系。你不需要把 C 叫做“宾补”就能明白这个句子在说什么。实际上,我认为“宾语补足语”,“补足语”这些术语,基本是子虚乌有的。它们来源于一种古板的观念,认为句子只有主谓宾三种成分,所以多出来一个东西,就只能叫做”补足语”了。他们没有意识到,有的动词可以有三个参数,就是这么简单。
如何造出正确的句子
我已经提到,对于人的语言能力,“造句”能力占了一半。很多人不知道复杂的长句是怎么造出来的,所以他们也很难看懂别人写的长句。
我并不是说一味追求长句是好事,正好相反。如果你能用短句表达出你的意思,就最好不要用长句。虽说如此,拥有造长句的“能力”是很重要的。这就像拥有制造核武器的能力是重要的,虽然我们可能永远不会用到核武器。
当然,长句不可能有核武器的难度。造长句其实挺容易。你先造出一个正确的短句,然后按照规则,一步步往上面添加成分,就可以逐渐“生成”一个长句。
这就像造一个房子,你首先打稳地基,用钢板造一个架子,然后往上面添砖加瓦。你可以自由地选择你想要的窗户的样式,瓦片的颜色,墙壁的材质,浴缸的形状…… 好像有点抽象了,我举个例子吧。
首先,我造一个最简单的句子。最简单的句子是什么呢?我们已经知道动词是句子的核心,有些动词自己就可以是一个句子。所以我们的第一个句子就是:
eat.
它适用于这样的场景:你在碗里放上狗粮,然后对狗儿说:“吃。” 当然,你体会到了,这句话缺乏一些爱意,或者你只是早上起来还比较迷糊,不想多说一个字,但它至少是一个正确的句子。
接下来,我们知道 eat 可以加上两个参数,所以我就给它两个参数:I 和 apples。
I eat apples. (我吃苹果)
这个句子适用于这样的场景:别人问我:“你一般吃什么水果呢?” 我说:“我吃苹果。”
有点单调,所以我再加点东西上去。
I eat Fuji apples. (我吃富士苹果)
Fuji 被我加在了 apples 前面,它给 apples 增加了一个“修饰”或者“限定”。它只能是富士苹果,而不是其它种类的苹果。
但我并不总是吃富士苹果,我有时不吃苹果。我想表达我只是“有时”吃富士苹果,所以句子又被我扩充了:
I sometimes eat Fuji apples. (我有时吃富士苹果)
你觉得这个 sometimes 是在修饰(限制)句子的哪个部分呢?它在修饰“我”,“苹果”,还是“吃”?实际上,它是在限制“吃”这个动作发生的频率,所以它跟 eat 的关系紧密一些,也就是说它是在修饰 eat,而不是 I 或者 apples。
以此类推,我们可以把它发展得很长:
I sometimes eat fresh Fuji apples from a nearby grocery store.
我有时候吃从附近杂货店买来的新鲜富士苹果。注意,虽然这句子挺长,但它的“骨架”仍然是 I eat apples.
我已经演示了一个长句是怎么“生成”的。先造一个短句,然后往上面添砖加瓦。正确的短句,按照规则加上一些成分,就成为正确的长句。从正确走向正确,这样你的语法就会一直是正确的。
当然,扩展句子的时候,你不能随意往上加东西,它们必须满足一定的规则才能正确的衔接。比如,你只能把 Fuji 放在 apple 前面,而不是后面,from 之类的词不可少。这就像造房子,你不能在该放窗户的地方放一道门,你不能用错配件,漏掉胶水。所谓语法,很多时候就是在告诉你这些部件要怎么样才能接的上,就跟做木工活一样。
如何理解句子
人与人交流的另一个部分就是“接收”。如果书上有很长一句话,你要怎么才能理解它呢?许多人看到长句就头痛,不知道该怎么办。这是因为他们不明白长句都是从短句扩展出来的,是有结构的。许多人理解长句失败的原因,在于他们总是从左到右,一个个的扫描单词。开头几个词感觉还认识,再多看几个词,就不知道是怎么回事了。
其实理解长句的方法,都隐含在了上一节介绍的造长句的方法里面。造句的时候我们先勾画出一个框架,然后往里面填修饰的成分。理解的时候如果有困难,我们可以用类似的办法。我们首先分析出句子的主干,把这个框架理解了,然后再把其它成分放回去,逐步把握整个句子的含义。
这个分析主干的过程,往往是“跳跃式”的,而不是“顺序式”的扫描单词。
比如之前的那个例子:
I sometimes eat fresh Fuji apples from a local grocery store.
你需要跳过修饰的成分,分析出句子的主干是短句“I eat apples”。如果你觉得一下子找不到主干,那么你可以挨个找到“修饰成分”,把它们逐个删掉,最后留下来的就是主干了。
注意,主干“I eat apples” 本身就是一个语法正确的句子,它满足所有的语法规则。于是你理解了它在说“我吃苹果”。然后你返回去再看几遍,逐渐加上细节,知道是什么样的苹果,从哪里买来的,什么时候吃。
漏掉或者误解了细节,你可能会误解一部分意思,但抓住了主干,你就不会完全不理解这个句子在说什么。
再次强调,每一个复杂的长句,里面都藏着一个非常短的,语法正确的短句。理解长句的关键,就在于找到这个核心的短句。
如何获得识别修饰成分,找到主干短句的能力,也在于你对具体的语法规则的理解。
句子的树状结构
之前,我们的原始人画了这样一个图:
它表示这样一个英语句子:
I eat apples.
很多人觉得后者是更简洁,更先进的方法。然而他们没有意识到,原始人的图片里,其实包含了关键而本质的东西。被转换成一串符号之后,里面的结构看不见了,反而需要费一些脑筋才能理解。这个简单的情况也许不能说明问题,等句子复杂起来之后,你就能体会到这一点。
从现代语言学,计算机自然语言处理(NLP)的观点看来,句子并不是一串符号,而是一个“树状”的结构。我们把这种树叫做“语法树”。
比如 I eat apples,其实表示的是下图这样的结构:
你可以把这个图看成是一棵倒着长的树。你把屏幕旋转 180 度,就会看到一棵树。树干 eat 发出两个“分支”,连接着它的两个参数:I 和 apples。为了表达清晰,我用红色圆圈来表示动词,而用蓝色方形表示名词。
动词 eat 需要两个名词参数,我们给它 I 和 apples,就成了一个完整的句子。再次声明,我这里的“名词”,包括了像“I”这样的“代词”。
扩展一棵树
之前我们通过扩充 I eat apples 这句话,得到了一个逐渐变长的句子。现在有了“语法树”的概念,我们来重新演示一下这个扩充句子的过程,看看它对应的语法树是怎么变化的。
首先,我们给苹果加上“富士”(Fuji)的修饰:
I eat Fuji apples.
Fuji 是对 apples 的修饰,或者说是它的“属性”,所以我们在树上把它和 apples 连在一起。
对于这种“修饰”成分,我们用绿色方框来表示。它们通过灰色箭头指向它们所修饰的部分。
接着,我们加上一个时间修饰 sometimes:
I sometimes eat Fuji apples.
由于 sometimes 是修饰 eat 动作的频率,我们把它指向 eat 动词节点。
最后那个复杂点的句子:
I sometimes eat fresh Fuji apples from a nearby grocery store.
它的语法树大概是这个样子:
之所以说“大概”,是因为我没有把“from a nearby grocery store”完全表示成一棵树结构。当我们觉得暂时没必要深入理解一个部分的时候,我们可以把它合在一起。所以“from a nearby grocery store”一起放在了一个节点里,表示对 apples 的另一个修饰成分。
树的作用
从上面的扩展过程,你也许发现了语法树在造句时用处。它帮助你快速的“定位”需要扩展的部分。如果你的句子只是一串字符,那么你得先用眼睛找到你需要的部分,把它和旁边的文字分离开。
在理解句子的时候,它的用处就更加明显了。树结构把句子之间相关的部分都直接连在了一起,所以你能清晰地看到它的结构。哪个词在修饰哪一部分,都一目了然。看看上面最复杂的那个句子,你可以一眼就能看出它的主干是什么:
对比一下原来短句的语法树,你发现虽然句子变长了,然而它的主干其实一点都没有变,仍然是 I eat apples。如果把句子写成一行,你就需要通过一阵子分析才能知道主干是什么。
这就是为什么我跟你讲语法树这个概念,因为它可以简化你对句子结构的理解。帮助你造句,帮助你理解复杂的句子。如果有长句看不懂,你可以使用语法树对其进行分解。
如何培养真正的语言能力
这一章我只是介绍了你需要的两种能力,可是如何培养这两种能力呢?其实它们两者是相辅相成的。造句的能力可以帮助你理解别人的句子,而阅读别人的句子,分析其结构,可以帮助你获得造出类似句子的能力。
所以我给你开的处方是这样:
  • 练习造句。每学一个动词,要先看例句,然后用它造出多个句子来。这样你就获得了灵活运用的能力。
  • 分析句子。看到一个复杂的句子,觉得理解有难度,你就把它抄下来。按照我介绍的“造句方法”,把它分解成主干和修饰成分。不久,你就会发现理解能力和造句能力都提高了。$ B  n. r9 M( ^6 h) e! v- g  Z, m
要注意的是,分析句子的时候,没必要去纠结一个句子成分“叫什么”,对应什么术语。比如它是表语还是宾语,还是宾补…… 这没有意义。
你可以理解任何英语句子,你可以成为很好的记者或者作家,却仍然不知道什么叫做“宾补”。你只需要造句的能力和理解句子的能力,而你不需要术语就能做到这两点。
另外,你分析的句子来源,最好是真正的,有良好风格的英文书籍,而不是来自中国人写的语法书。比如,你可以选一本通俗易懂的英文小说,比如《哈利波特》的第一部。或者你可以用英文杂志(比如《TIME》)上的文章。很有趣的是,中国人写的语法书里面,为了演示各种语法规则,经常是“没有困难,制造困难也要上”,造出一些外国人根本不会用的,容易让人误解的句子。这种句子,就算你分析清楚了,反而是有害的。这种丑陋的句子会破坏人的语感,而且让你觉得语法无比困难,打击你的信心。你受到影响之后,就会写出类似的,让外国人看了翻白眼的丑陋句子。
最后可能有人问,你这是提高实际的英语能力,可是我需要应付标准化考试,这样学能行吗?当然行,而且你做语法题的速度会非常快。托福,雅思,GRE 之类的考试,不可能变态到要你“找出句子里的宾补成分来”。实际上,题目里根本不可能出现“宾补”这类词。他们只会在某个位置留一个空,让你选择合适的内容填进去。也就是说,你不需要知道那个成分叫“宾补”,就能做对题。
实际上,做题的时候,你的头脑里根本不应该出现“宾补”这样的术语。具有了真正的英语能力,做语法选择题的时候,你会一眼就选对正确的答案,却说不出这道题在考你哪方面的能力。是时态呢,还是某种句子成分?我不知道,因为那毫无意义。我就是感觉其它答案都不“顺口”,我根本不会写那样的句子,而正确的选项一眼看起来就是“通的”。
所以不管是实际的交流还是做题,死抠语法术语都没有什么意义。你去问问每一个英国人,美国人,他们是怎么做对语法题的,你会得到同样的答案。你应该努力得到这种母语级别的能力,而不是记住一些纸上谈兵的术语。
(如果你觉得这篇文章有启发,可以点击这里付费
* m1 x$ [4 G0 B

5 @. F  O$ H' L9 _8 x9 j0 [7 I% L

本帖被以下淘专辑推荐:

  • TA的每日心情
    擦汗
    2023-2-15 04:29
  • 签到天数: 72 天

    [LV.6]常住居民II

    发表于 2019-12-27 16:31:42 | 显示全部楼层
    说实话,楼主你这套没多大用,语法想学就一定能学会,而且没准比用某些投机取巧的办法学得更好。
  • TA的每日心情
    擦汗
    2022-10-5 15:24
  • 签到天数: 614 天

    [LV.9]以坛为家II

    发表于 2019-12-27 18:40:18 | 显示全部楼层
            楼上文章感觉很好,讲解通俗易懂,逻辑清晰严密,不过似乎更适合于成人?
    . Q) l: W; J; z! ]        学习语法大概因人而异。传统语法只是在欠缺母语环境时帮助你快速掌握语言规律的拐杖。而掌握传统语法框架,尤其是句子部分,应该不是太难。然后就可以让步于阅读写作等实践了。至于其他语法细节,可以在实践中慢慢补充。
    $ W  `6 |" \6 O% I+ V        这种在有一定基础时理性学习语法框架(尤其是句子部分),然后在阅读中积累对语言的感性认识,逐渐提升,大体也是上文所提倡的做法。

    该用户从未签到

    发表于 2019-12-27 11:07:17 | 显示全部楼层
    王垠的文章,不能说不好,确实讲得很通俗易懂嘛,只是……单单这些内容,就冠以「解谜英语语法」的标题,是否太……自大?(王垠的个性确实如此)+ N2 o. y7 T6 M) d6 t2 k
    * {7 @. Z1 j& X, q
    我来举个未必恰当的例子:英語常用詞疑難用法手冊:
    + U/ `5 _3 l" u9 T2 F0 I9 ?
    1 G6 T& T, a& J& V1 y! b
    ■ not 所否定的范围
    " J& N6 A  K3 U4 {5 c+ e4 v1 n8 @; Q- V$ N1 u/ W% Z# W/ D
    就谓语和状语而言(暂时不论宾语),not 可能有三个不同的否定范围(参见 not... because...):: H: i& U5 |: @* D+ _, h3 o
    . w4 b# w: c; K  S* P+ K4 c1 m$ }
    1) 只否定谓语动词,不否定谓语动词后的状语。
    : }8 q' ?/ ]$ I) [  ^
    3 B- N& }5 X- `! Q: N/ R+ NThe police didn't release his name because of his age. 由于他的年龄,警察没有公布他的名字。+ u* Y. @# v$ J( S4 W
    2) 不否定谓语动词,只否定谓语动词后的状语。: a, C+ O  g6 ^, M1 o7 b! |

    ) w- w3 j- `5 @3 ]& Z2 fThey had not gathered in this remote wooded area forty miles west of Moscow to relive the past. 他们到莫斯科以西四十英里这处偏僻的森林地带来聚集,并不是要重温过去。
    . e$ z" W: H+ H! U4 Q9 ?  X6 c2 O. n( X8 v" d/ H" A" l5 {
    3) 把谓语动词连同其后面的状语合在一起作为一个整体加以否定。" l- d! a5 \9 v5 Y1 s

    : G' u, |+ m- O' I+ v4 k1 RWorking in an open-source world is not without its hardships. There is no toll-free number to call when things don't work, as is the case with packaged software. 在一个源头开放的世界里活动,总是免不了遇到种种麻烦。东西不灵了,就不能像买来原装的软件那样有免费电话号码可以查询。6 p, X6 e( y" d- o5 z( \4 L
    9 m2 Y; `. T# X5 N' M
    这里有时候会出现歧义。
    & E' W* r$ y" v( L& b; K( L
    9 I( l2 ^" i" X2 ?) @8 f4 k……
    " X; d! E! b( B: e. z0 a& n
    英语常用词疑难用法手册的作者,特别爱讲传统语法术语,所以有的地方挺叫人头疼的。, _0 H) _$ ]1 N

    / _$ v& ]- U5 G, d0 M不用谓语、状语这种术语,能不能把英语里复杂的现象、面貌说清楚?应该是可以的。问题是:' K5 ]0 [+ w4 M9 `9 T5 a

    ; L5 Y8 F3 p* X0 q* A8 S1. 市面上不少号称「超简单的、一看就明白的英语语法」,并不触及复杂的问题,高阶读者格外需要解惑的地方,「超简单」语法都不说
    & V- w. o: S7 Y! w- d* d6 \2. 想要找足够丰富、全面的语法,很难抛弃传统术语。王垠是否有意写一本「深入本质」又「全面丰富」的语法教材呢?应该有人比我更了解他,可以说说
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-12-27 12:21:32 | 显示全部楼层
    klwo2 发表于 2019-12-27 11:07: N  [1 J) o3 h: {+ ~
    王垠的文章,不能说不好,确实讲得很通俗易懂嘛,只是……单单这些内容,就冠以「解谜英语语法」的标题,是 ...
    ' b1 P6 m7 R) [( w' D' t
    方法都有其局限性,但在其适用的范围内可能完全够用。等在这个范围里,已经到了拔剑四顾心茫然的地步,可能就不仅满足于此,而会去寻求更深入更适合的方法或策略了。& h% j1 I" ?$ z3 b
    ps:上面提到的open-source的翻译… 大概就体现了某种内容上的局限性吧…哈 大概王垠不会犯这种错误。
  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    发表于 2019-12-27 12:28:58 | 显示全部楼层
    语法是对语言现象的总结,或者说是简化的模型,不同角度方式都是可以的。
    ) d- ?+ u( A0 A- r语法一点不懂不行,但很多国人和语法书往往是失之于过深。7 `; V5 H1 a; C/ {) Q
    推荐旋元佑的语法书,一开头介绍了5种基本句型,比此文全面但不过分复杂。
    / o) f3 |1 ^/ e" v/ W1 ~旋元佑文法 2019 介绍$ J6 j2 ]1 V. @2 H
    https://www.pdawiki.com/forum/thread-35988-1-1.html?x=180507
    2 j6 ~0 f6 G% E$ ?1 ?8 k: |% d( I
  • TA的每日心情

    2025-2-19 00:11
  • 签到天数: 1292 天

    [LV.10]以坛为家III

    发表于 2019-12-27 13:15:48 | 显示全部楼层
    看了上面的啥 “语法树”, 可以反映出作者的计算机背景;
    6 K' r7 j4 j6 }) K. {
    : D) N# s2 o% t% g$ a本来计算机语言的很多东西都来源于自然语言的概念,比方说 N.乔姆斯基 的生成理论就对计算机语言方面的影响和应用尤为明显;
    " O0 Z" ]  A6 j( c2 s. D( `+ r! k# `# y: }3 w
    作者又反过来,用计算机语言的思维反作用于自然语言... 至于对语言的学习有没有用?这全是主观意愿。  . \0 d5 N7 K3 }6 b

    & c( ~5 I- t; l个人感觉计算机语言的思维 可以 “来分析反作用于自然语言的部分” 恰恰是最初“自然语言输出给计算机语言的那部分子集”,那么大致就是用子集的属性来探讨研究自然语言这个大整体(部分---到---整体),这显然不合理吧?
    $ C9 t$ T2 S, l7 p9 x8 a$ m
    ; Q  t& R$ a  T5 g  B! j1 r' z  l因为本身自然语言没有那么纯粹的规律,不像是计算机非1即0; 相比计算机,自然语言更像是一种模糊语言 .  {! N; W5 R" U9 G' }3 c- m/ ]6 s
    4 s  P/ K7 |6 E
    个人认为只能作参考,但是“揭秘” ?有待商榷。
    , }( X0 A  t, L- z+ a- I3 {! G) ]0 D. w
    以上纯属个人观点,如有谬误,多多包涵!
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-12-27 14:15:36 | 显示全部楼层
    本帖最后由 喬治兄 于 2019-12-27 15:00 编辑 : R7 |" ?! b5 j8 H! J0 B
    % ]* U$ A. H  l. u7 `3 a
    Brother henices :* {+ H6 F# d: m7 X. u/ h, P; k
    前陣子在圖書館亂翻統計類的書. W/ V* G( N; S' `
    提及人工智慧, 後來發現人工智慧 N-Gram 和馬可夫鏈略有相關
    4 x, o2 \5 W  b  h在某種程度上應也是涉及 贝叶斯概率(英语:Bayesian probability
    6 S5 @/ M, |7 @可視為數位電路的 State Machine + 馬可夫鏈 + 贝叶斯概率# ]1 D. n/ ?8 f% `) S/ i) k
    樹狀結構 + 贝叶斯概率 ==>決策判斷模型! q+ Z; v& ?( X6 B; Z6 y5 [
    State Machine + 马尔可夫链蒙特卡洛(英语:Markov chain Monte CarloMCMC)方法 ==> 可分析風險值.......  x( ~' w) t( p* v2 A6 g' b. m. v
    然而在 ( Operations Research 作業研究 ) 國內可能叫作 運籌學 吧, 也都會提及以上的模型和方法+ V' a- v6 o4 w9 r1 r

    + U* H$ z. X, H* k5 m: LMCMC方法是使用马尔科夫链的蒙特卡罗积分,其基本思想是:构造一条Markov链使其平稳分布为待估参数的后验分布,通过这条马尔科夫链产生后验分布的样本,并基于马尔科夫链达到平稳分布时的样本(有效样本)进行蒙特卡罗积分。设为某一空间n为产生的总样本数m为链条达到平稳时的样本数则 MCMC方法的基本思路可概括为:6 Y6 h' @) Z7 e: q( C

      7 A- d" U0 [5 ]: C9 o( E
      + ?9 z) X/ G$ p, p1 x' X
    • 构造Markov链。构造一条Markov链,使其收敛到平稳分布;===>此無非就是二維或多維隨機變數的聯合動差......因計算頗為複雜因而一般採用 MCMC 摹擬可更為快速求得答案
    • 产生样本:由中的某一点出发,用i中的Markov链进行抽样模拟,产生点序列:
    • 蒙特卡罗积分。任一函数的期望估计为:
      " \9 f! a6 \4 I: d4 Z
    在采用MCMC方法时马尔科夫链转移核的构造至关重要,不同的转移核构造方法将产生不同的MCMC方法,当前常用的MCMC方法主要有两种Gibbs抽样和Metropo-Lis-Hastings算法。
    4 q  t( c* B7 z1 J6 A
    https://zh.wikipedia.org/wiki/N%E5%85%83%E8%AF%AD%E6%B3%95) f; L- T% v$ Z. W+ m2 b
    : ]+ Q3 I  b& z) d8 O
    https://zhuanlan.zhihu.com/p/32829048
    0 T1 v. C: J. ~5 Q& O" j5 b. Y3 g" O7 Q, P( K( X2 u  h) W
    https://medium.com/%E6%89%8B%E5%AF%AB%E7%AD%86%E8%A8%98/%E8%87%AA%E7%84%B6%E8%AA%9E%E8%A8%80%E8%99%95%E7%90%86-%E4%BD%BF%E7%94%A8-n-gram-%E5%AF%A6%E7%8F%BE%E8%BC%B8%E5%85%A5%E6%96%87%E5%AD%97%E9%A0%90%E6%B8%AC-10ac622aab7a
    1 b/ v, _5 N* Q2 @2 `- d# o' N3 r, |' M
    在學習自然語言處理 (Natural Language Processing) 時,經常會從語言模型 (Language Model) 開始學起,N-gram 便是一個入門常見語言模型。在這篇文章將帶你一探究竟 N-gram,並且利用 N-gram 實作一個模型,能夠像似搜尋引擎根據使用者的輸入推薦相關的字詞。( V3 a7 Z' Y. Y& O- ~
    語言模型 (Language Model) 與 N-gram 原理
    $ s: i5 b  p+ H( ^% x5 L% A語言模型這 4 個字看似很博大精深,但是它僅僅指的就是「一個句子的機率」,在一個句子中的每個字,我們可以給它 P(S),代表每個字的機率。
    , [" f4 p+ N  i& ]# O' y# d假設我們給定一個句子「花博即將在台中__ 」,在留空的地方一般人都會想到該填入「舉行」,也就是當出現「花博即將在台中」,電腦能夠推斷出在這句話的後方出現「舉行」的機率最高。
      `) A% |8 N  z3 Y' r所以我們假設第 i 個字會跟第 1 個字到 i-1 個字有關,這時你會發現如果這個句子很長,該機率計算量將會變得非常大,因此我們可以利用 Markov 假設,也就是當前的這個字僅僅與前幾個有限的字相關,如此一來,將不必追溯至第 1 個字,可以減少該機率的計算量:* T& y2 N7 N) ^

    / I6 [+ Z4 s0 }! x9 H$ q當 m = 3 時,也就是第 i 個字與前 3 個字有相關,稱作 3-gram 或 trigram。用上述的例子舉例,我們要找一個字會令 P(w|在台中) 的機率最高,假設推算出 P(舉|在台中) 的機率最高後,再繼續找出另一個字讓 P(w|台中舉) 的機率最高。9 r4 F! g" w# A6 J
    這時你會想該如何計算 P(w|在台中) 這種條件機率?我們可以使用最大似然估計 (Maximum Likelihood Estimation ),詳細推導可以看這篇 ????文章:
    0 u$ X+ |& U0 R
    ' Q+ l: a; e; t! J/ O8 ?6 c藉由計算字詞出現的次數來推估 N-gram 的機率,所以我們要做的事情是計算「在台中 w」與「在台中」分別出現的次數,再相除得到 P(w|在台中) 的機率。
    , D$ A, S' {% d8 u! |從零開始實現 N-gram* [- j3 A/ y5 u' }5 W; u' b
    在這個範例中,我們會使用 Open data 作為資料集,並且利用 N-gram 訓練一個語言模型。
    0 ?: x( H+ W5 j% a- K: R我們會用到 Collections 中的 namedtuple 與 Counter。namedtuple 提供的功能是像 C 語言的 struct,能夠清楚表達一個資料的結構;而 Counter 則是能夠快速地幫助我們計算數量,例如 list 中每個元素的數量各有幾個。
    . G( h+ ~4 p1 \' R) Q
    3 Z' ]5 Q. k, x引入資料集
    3 `4 |, x1 Q; N1 T在這篇文章中使用的資料集是政府資料開放平台提供的 ????桃園市官網市政新聞,由於 N-gram 所產生的結果會根據資料集而有所不同,因此在選擇資料集時必須評估該資料集是否合適。假設使用的資料集中包含許多火星文,根據 N-gram 產生的語言模型,其結果將會與火星文相關。
    : l0 m' ]2 {- u6 j* w9 V1 ~9 h  B% h' J. \
    資料前處理& i; b8 h2 r1 K* R6 m( \* S
    桃園市官網市政新聞包含了許多的資料欄位,而我們需要的僅有報導文章的部分,因此將報導單獨取出。
    ' R2 A$ e/ m$ f( N# Q7 L8 ]而報導中包含許多許多英文、數字與表點符號,為了實作方便,將除了繁體中文字以外的字用正規表達式 (Regular Expression) 去除。5 ?; b5 i6 G4 R) j/ T2 {
    0 Y( t: f5 W; ~7 e1 N
    N-gram 實作! ^9 b# V; w* N/ d# ~
    在實作 N-gram 時,首先,我們要將每一篇文章做 tokenize;而我們想知道一篇文章的開頭與結尾,所以在 tokenize 之後,在前後分別加上 <s> 和 </s> 作為標示。' g( I$ H- f  ~  m% y
    而在計算每個字出現的機率後,可以利用 set,將重複的字與機率去除,例如計算出兩次在「桃園」後出現「縣」的機率都是 1,我們可以只保留一組。% V% f  ]+ d7 j6 o1 K2 Z

    6 o0 Z% q' Z+ r, _/ Q) w+ A訓練模型與排序2 s$ Y! P" Y4 G  o
    我們使用的模型是 trigram,也就是計算接在兩個字之後第三個字的機率。接著,可以對結果進行排序,因此在預測下一個字時,能夠直接取得前幾個最高機率的字。2 Z% m$ x. e: t& T% Z- |; z. Z0 P
    ; ^+ s) c  S! h! v0 |) E. D; ~
    預測輸入的下一個字1 n2 `& I0 E4 B$ C4 q. J
    最後,我們使用模型來預測接下來可能會出現的文字,輸入「韓國」後出現的下一個字為「仁、及、地、超、文」最高機率的這 5 個字。
    2 b6 S; x! I  R0 ]/ E$ S# i
    0 T; o% u0 Y9 F! Q* B結論, Q" x* V/ _$ J- P
    N-gram 是一個理論較為簡單,而且容易實作的語言模型,可以花少量的程式碼達到不錯的效果。
    " x3 h# Y0 v% x4 o7 L但是,也許你會思考在預測下一個字時,得出字組合起來沒有特別的意思,因為 N-gram 只是單純利用統計得出機率比較大的字詞組合,所以在預測時看似會較沒有邏輯。
    ' T2 o) V* O( T$ t4 B0 l如果想要得出更好的結果可以嘗試使用較為複雜的模型,例如 Transformer 或是 ConvS2S 等 Google 與 Facebook 曾經發表的模型。& a7 u+ Y- d: {
    7 z6 a1 d  E( x1 X: ~7 q9 g' f
    # w1 ?6 d+ B& L& Q; i* L0 u7 j' B

    3 W2 N! @  @, V) i7 F/ r* `( F' w

    评分

    1

    查看全部评分

  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-12-27 16:01:24 | 显示全部楼层
    喬治兄 发表于 2019-12-27 14:154 V5 |( B! P9 K8 M2 B* a7 {  m1 x
    Brother henices :" Y1 \6 d% g& N  v4 ]
    前陣子在圖書館亂翻統計類的書
    ( r5 u1 u; e# G4 m5 D8 a7 M% w提及人工智慧, 後來發現人工智慧 N-Gram 和馬可夫鏈略有 ...

    ! [7 d3 I8 @- T/ \& \, d乔治兄的这个评论好,完美科普了N-Gram,受益匪浅,感谢!
    $ R5 e( D* @3 A, B% [3 i* N" x
  • TA的每日心情
    奋斗
    2018-5-18 05:02
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2019-12-28 05:39:08 | 显示全部楼层
    其实可以把英语和德语放一起学,这两种语言的相似度比较大。

    该用户从未签到

    发表于 2020-1-1 01:13:09 | 显示全部楼层
    俗话说,因材施教,遇到那种不可救药的讲啥都白搭。
  • TA的每日心情
    奋斗
    2021-4-9 12:40
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2020-9-20 07:18:21 | 显示全部楼层
    看到“语法对于我来说已经早就不是问题”,真是羡慕。: ]# S7 ]" b% z/ h
    不过看到上面说的中国人自己编写的语法书往往看了可能不好,有些无语。有时候为了辅助教学,
    + k; B/ w0 |* u! B8 t* y造些实际不那么好的句子无可厚非,不过感觉要说清楚,告诉读者实际不要这么说。
  • TA的每日心情
    奋斗
    2021-4-9 12:40
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2020-9-20 07:31:16 | 显示全部楼层
    看了后,感觉这篇文章说得太过简单了。当然,作者的水平太高,很多东西可能在他看来太简单,没必要说吧,但是对于水平低的,就不是那么
    + f; C( Z  P3 S& k- }# B回事了。看后有收获,但是要提高还是多练习。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2026-7-24 12:31 , Processed in 0.026875 second(s), 22 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表