掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3245|回复: 12

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

[复制链接]

该用户从未签到

发表于 2019-12-27 10:17:05 | 显示全部楼层 |阅读模式
解谜英语语法
我发现很多人仍然在为语法的枯燥繁琐而头痛。市面上好像不存在一本深入本质的语法教材。语法对于我来说已经早就不是问题,所以我萌生了写这样一篇文章的念头,帮助那些正在为学习语法而痛苦挣扎的人们。
这篇文章里包含了一些我自己保留多年的关于英语学习的秘密。我曾经想过把这写成一本完整的语法书,可是后来发现似乎一篇文章足矣。
句子的核心地位
直到几百年前,各个不同大陆上的人还从来没见过面,他们的语言里却不约而同出现了同样的结构:句子。这似乎说明句子的出现是一种自然规律,必然结果,而不只是巧合。
句子是人类语言最核心的构造。为什么呢?因为人和人说话终究是为了一个目的:描述一件事。
这件事也许只有一个字:吃!
也许可以很长:昨天晚上在上海某路边餐厅吃的鹅肝我吃遍全世界最好的
一个句子表达的就是一件事,或者叫一个“事件”。人与人交流,无非就是讲述一个个的事件。
许多人学英语,一来就背单词,背了很多单词,仍然写不出像样的句子来。只见树木不见森林,因为他们没有意识到句子才是最关键的部分。我们应该一开头就理解句子是什么,如何造出句子,而不是背单词。单词是树木,句子才是森林。
你需要的能力
所以掌握一门语言,基本就是要掌握句子。有了句子就有了一切。
掌握句子包括两种能力:
  • 能够迅速地造出正确的句子,准确地表达自己的意思。
  • 能够迅速地分析别人的句子,准确地理解别人的意思。
    ; n  v4 n! V1 Q, }; e; v
这两件事,一个是表达(发送),一个是理解(接收)。因为语言是沟通(或者叫“通讯”)的工具,所以它就只包含这两件事。
句子的本质
假设我们是原始人,还没有语言。我想告诉同伴“我吃苹果”这件事,该怎么表达呢?没有语言,那我可以先画个图嘛:
画图是很麻烦的,笔画太多不说,还可能有歧义。到后来,部落里的人聪明了一点,发明了“符号”这种东西,只需要几笔就能表示一个概念。他们给事物起了简单的符号名字,不再需要画图了。于是我们有了 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 C5 u3 {9 D" d+ J$ m
意思是:A 使得 B 具有性质 C。
比如 Coffee makes me happy,其中 A 是 coffee,B 是 me,C 是 happy
再来一个例子:
I told you everything. (我告诉了你一切)
这里动词 tell 也有三个参数,它的模板是这样:
A tell B C.5 Y# \2 O. @# j
意思是: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。如果把句子写成一行,你就需要通过一阵子分析才能知道主干是什么。
这就是为什么我跟你讲语法树这个概念,因为它可以简化你对句子结构的理解。帮助你造句,帮助你理解复杂的句子。如果有长句看不懂,你可以使用语法树对其进行分解。
如何培养真正的语言能力
这一章我只是介绍了你需要的两种能力,可是如何培养这两种能力呢?其实它们两者是相辅相成的。造句的能力可以帮助你理解别人的句子,而阅读别人的句子,分析其结构,可以帮助你获得造出类似句子的能力。
所以我给你开的处方是这样:
  • 练习造句。每学一个动词,要先看例句,然后用它造出多个句子来。这样你就获得了灵活运用的能力。
  • 分析句子。看到一个复杂的句子,觉得理解有难度,你就把它抄下来。按照我介绍的“造句方法”,把它分解成主干和修饰成分。不久,你就会发现理解能力和造句能力都提高了。
    7 X' s, x3 V" j8 _" r0 b# D2 \* b
要注意的是,分析句子的时候,没必要去纠结一个句子成分“叫什么”,对应什么术语。比如它是表语还是宾语,还是宾补…… 这没有意义。
你可以理解任何英语句子,你可以成为很好的记者或者作家,却仍然不知道什么叫做“宾补”。你只需要造句的能力和理解句子的能力,而你不需要术语就能做到这两点。
另外,你分析的句子来源,最好是真正的,有良好风格的英文书籍,而不是来自中国人写的语法书。比如,你可以选一本通俗易懂的英文小说,比如《哈利波特》的第一部。或者你可以用英文杂志(比如《TIME》)上的文章。很有趣的是,中国人写的语法书里面,为了演示各种语法规则,经常是“没有困难,制造困难也要上”,造出一些外国人根本不会用的,容易让人误解的句子。这种句子,就算你分析清楚了,反而是有害的。这种丑陋的句子会破坏人的语感,而且让你觉得语法无比困难,打击你的信心。你受到影响之后,就会写出类似的,让外国人看了翻白眼的丑陋句子。
最后可能有人问,你这是提高实际的英语能力,可是我需要应付标准化考试,这样学能行吗?当然行,而且你做语法题的速度会非常快。托福,雅思,GRE 之类的考试,不可能变态到要你“找出句子里的宾补成分来”。实际上,题目里根本不可能出现“宾补”这类词。他们只会在某个位置留一个空,让你选择合适的内容填进去。也就是说,你不需要知道那个成分叫“宾补”,就能做对题。
实际上,做题的时候,你的头脑里根本不应该出现“宾补”这样的术语。具有了真正的英语能力,做语法选择题的时候,你会一眼就选对正确的答案,却说不出这道题在考你哪方面的能力。是时态呢,还是某种句子成分?我不知道,因为那毫无意义。我就是感觉其它答案都不“顺口”,我根本不会写那样的句子,而正确的选项一眼看起来就是“通的”。
所以不管是实际的交流还是做题,死抠语法术语都没有什么意义。你去问问每一个英国人,美国人,他们是怎么做对语法题的,你会得到同样的答案。你应该努力得到这种母语级别的能力,而不是记住一些纸上谈兵的术语。
(如果你觉得这篇文章有启发,可以点击这里付费
( U7 l& `+ }  L+ a2 {

  x" t: Q' L( \$ W; y, ^6 p

本帖被以下淘专辑推荐:

  • 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 | 显示全部楼层
            楼上文章感觉很好,讲解通俗易懂,逻辑清晰严密,不过似乎更适合于成人?
    3 I( n$ E; G6 m& M7 l$ S& w( T& |        学习语法大概因人而异。传统语法只是在欠缺母语环境时帮助你快速掌握语言规律的拐杖。而掌握传统语法框架,尤其是句子部分,应该不是太难。然后就可以让步于阅读写作等实践了。至于其他语法细节,可以在实践中慢慢补充。  u) s6 P9 \% Y1 o7 g
            这种在有一定基础时理性学习语法框架(尤其是句子部分),然后在阅读中积累对语言的感性认识,逐渐提升,大体也是上文所提倡的做法。

    该用户从未签到

    发表于 2019-12-27 11:07:17 | 显示全部楼层
    王垠的文章,不能说不好,确实讲得很通俗易懂嘛,只是……单单这些内容,就冠以「解谜英语语法」的标题,是否太……自大?(王垠的个性确实如此)# n3 s4 m" x- ?: a0 `
    , _1 y. ?( D* M2 S( @
    我来举个未必恰当的例子:英語常用詞疑難用法手冊:
    7 y* l; U5 H1 F. ~2 x9 Q+ s6 X$ a! m4 i3 f3 Y( }- M* O
    ■ not 所否定的范围  \( _, ?. |! Y: p

    , |; L( t3 [0 f  k$ K) w就谓语和状语而言(暂时不论宾语),not 可能有三个不同的否定范围(参见 not... because...):% W  h- M: ^' _

    ! J8 H. s7 |& M0 D1) 只否定谓语动词,不否定谓语动词后的状语。" T" O: H( z- ~6 V" _: B
    & ~$ k  U- M, A; i0 w
    The police didn't release his name because of his age. 由于他的年龄,警察没有公布他的名字。
    . L  Y2 T% A0 _9 {. |5 E7 D4 W2) 不否定谓语动词,只否定谓语动词后的状语。
    3 l' x2 O# l; Y4 O  n
    4 ~0 \, s" V+ P2 a' y4 KThey had not gathered in this remote wooded area forty miles west of Moscow to relive the past. 他们到莫斯科以西四十英里这处偏僻的森林地带来聚集,并不是要重温过去。
    # x5 E( [" a0 u+ O( v9 f4 g& K3 m3 V- t' p
    3) 把谓语动词连同其后面的状语合在一起作为一个整体加以否定。# `) F4 b3 \+ O5 t7 O. S5 }
    2 @( w7 @, h/ g( F, Z
    Working 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. 在一个源头开放的世界里活动,总是免不了遇到种种麻烦。东西不灵了,就不能像买来原装的软件那样有免费电话号码可以查询。
    - o$ \. E( g: r5 h- e5 E
    0 a' I& R1 P- B* \0 }这里有时候会出现歧义。
    ! b0 l" [2 \- r% y$ W3 W: q# p0 p* i) C4 ?, V/ B: E" H
    ……
    # z( Z+ e: \. L' _% F) W
    英语常用词疑难用法手册的作者,特别爱讲传统语法术语,所以有的地方挺叫人头疼的。
    4 `; K" F4 O7 O1 U6 @/ u
    # {: k1 X$ ]$ G9 Y不用谓语、状语这种术语,能不能把英语里复杂的现象、面貌说清楚?应该是可以的。问题是:1 m* v$ U# J, d% F/ u! V
    ' d1 I1 E( {& |- b$ D* d7 ]) o
    1. 市面上不少号称「超简单的、一看就明白的英语语法」,并不触及复杂的问题,高阶读者格外需要解惑的地方,「超简单」语法都不说5 Z5 e9 J' W3 ~1 V  S% u/ i2 q5 x
    2. 想要找足够丰富、全面的语法,很难抛弃传统术语。王垠是否有意写一本「深入本质」又「全面丰富」的语法教材呢?应该有人比我更了解他,可以说说
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-12-27 12:21:32 | 显示全部楼层
    klwo2 发表于 2019-12-27 11:07
    , _- z2 \- K- T  Y+ Z. [王垠的文章,不能说不好,确实讲得很通俗易懂嘛,只是……单单这些内容,就冠以「解谜英语语法」的标题,是 ...

    / ?$ \- ?7 |- a1 L7 W0 c7 x$ V9 F方法都有其局限性,但在其适用的范围内可能完全够用。等在这个范围里,已经到了拔剑四顾心茫然的地步,可能就不仅满足于此,而会去寻求更深入更适合的方法或策略了。
    $ H. b1 h1 m" ?* x8 D" bps:上面提到的open-source的翻译… 大概就体现了某种内容上的局限性吧…哈 大概王垠不会犯这种错误。
  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    发表于 2019-12-27 12:28:58 | 显示全部楼层
    语法是对语言现象的总结,或者说是简化的模型,不同角度方式都是可以的。
    + D/ g2 x- X' \2 K4 J) S语法一点不懂不行,但很多国人和语法书往往是失之于过深。
    8 i" F" k  C  H( E推荐旋元佑的语法书,一开头介绍了5种基本句型,比此文全面但不过分复杂。
    , E2 o) V) d0 O- [旋元佑文法 2019 介绍
    9 ~: ]9 k9 g+ H$ D3 ?3 {- phttps://www.pdawiki.com/forum/thread-35988-1-1.html?x=180507; |5 [/ K  _$ @" x
  • TA的每日心情
    奋斗
    2023-9-14 00:05
  • 签到天数: 1290 天

    [LV.10]以坛为家III

    发表于 2019-12-27 13:15:48 | 显示全部楼层
    看了上面的啥 “语法树”, 可以反映出作者的计算机背景;' b7 ~7 ^0 @; C$ z0 T. l
    & W6 m* b! Z" y1 I+ F% @
    本来计算机语言的很多东西都来源于自然语言的概念,比方说 N.乔姆斯基 的生成理论就对计算机语言方面的影响和应用尤为明显;" F' i, _4 j2 Q5 Q- f% e

    5 j) O  ^# W1 h$ r, ^& e) f作者又反过来,用计算机语言的思维反作用于自然语言... 至于对语言的学习有没有用?这全是主观意愿。  
    # x0 q" W  |6 t* ?# f) ~- C+ E: a1 j
    个人感觉计算机语言的思维 可以 “来分析反作用于自然语言的部分” 恰恰是最初“自然语言输出给计算机语言的那部分子集”,那么大致就是用子集的属性来探讨研究自然语言这个大整体(部分---到---整体),这显然不合理吧?
    : u" ~% n4 {9 E/ N$ P9 O1 q' M+ B4 A7 C- z, |' h! j! B; _' j6 u
    因为本身自然语言没有那么纯粹的规律,不像是计算机非1即0; 相比计算机,自然语言更像是一种模糊语言 .
      t8 n6 j9 l- W' M& G, d
    / b4 H, G# g9 D1 d4 b个人认为只能作参考,但是“揭秘” ?有待商榷。
    ) r/ ]5 n! t, N( o( P, E
    * Z( w: Y" i+ O/ Y( {$ O$ K以上纯属个人观点,如有谬误,多多包涵!
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-12-27 14:15:36 | 显示全部楼层
    本帖最后由 喬治兄 于 2019-12-27 15:00 编辑 # [* V% m( J% ]- }
    4 Z( P, b4 A2 t' Z% _. i
    Brother henices :  l  y6 c1 L5 i1 y" U- O+ U
    前陣子在圖書館亂翻統計類的書- U4 w: d5 ^( ^" P8 a9 c2 l
    提及人工智慧, 後來發現人工智慧 N-Gram 和馬可夫鏈略有相關
    5 l( z9 q9 q; q' C& E在某種程度上應也是涉及 贝叶斯概率(英语:Bayesian probability1 D* L* g/ p; t7 q
    可視為數位電路的 State Machine + 馬可夫鏈 + 贝叶斯概率- u0 H+ v' M$ S; X
    樹狀結構 + 贝叶斯概率 ==>決策判斷模型5 y3 Y- ^# w0 x8 e$ _: r
    State Machine + 马尔可夫链蒙特卡洛(英语:Markov chain Monte CarloMCMC)方法 ==> 可分析風險值.......
    7 V" i! C, e, }然而在 ( Operations Research 作業研究 ) 國內可能叫作 運籌學 吧, 也都會提及以上的模型和方法% T( M& R3 b6 V/ t; |

    9 Z* I# N( t: sMCMC方法是使用马尔科夫链的蒙特卡罗积分,其基本思想是:构造一条Markov链使其平稳分布为待估参数的后验分布,通过这条马尔科夫链产生后验分布的样本,并基于马尔科夫链达到平稳分布时的样本(有效样本)进行蒙特卡罗积分。设为某一空间n为产生的总样本数m为链条达到平稳时的样本数则 MCMC方法的基本思路可概括为:
    7 e$ ^# W, ?0 m2 p! G0 F5 ~
      ; N3 x3 r: {1 W; O. _

        n8 E5 R0 R( s! W, x5 d
    • 构造Markov链。构造一条Markov链,使其收敛到平稳分布;===>此無非就是二維或多維隨機變數的聯合動差......因計算頗為複雜因而一般採用 MCMC 摹擬可更為快速求得答案
    • 产生样本:由中的某一点出发,用i中的Markov链进行抽样模拟,产生点序列:
    • 蒙特卡罗积分。任一函数的期望估计为:1 o5 C! ]5 M  X) [
    在采用MCMC方法时马尔科夫链转移核的构造至关重要,不同的转移核构造方法将产生不同的MCMC方法,当前常用的MCMC方法主要有两种Gibbs抽样和Metropo-Lis-Hastings算法。
    / B$ e# [) ~3 k* W! r
    https://zh.wikipedia.org/wiki/N%E5%85%83%E8%AF%AD%E6%B3%95
    ( d& D, i- |) W% ]9 K! s0 n) U7 K* L) Q! V8 Q4 p0 g" b0 M, R
    https://zhuanlan.zhihu.com/p/32829048
    $ {2 o3 ?1 \8 L6 L
    ; v+ f# T( M5 @/ Mhttps://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- N6 J$ e5 K5 l- p8 S8 I( j

    8 q' B; p8 k& W" P! E$ v' M& ^在學習自然語言處理 (Natural Language Processing) 時,經常會從語言模型 (Language Model) 開始學起,N-gram 便是一個入門常見語言模型。在這篇文章將帶你一探究竟 N-gram,並且利用 N-gram 實作一個模型,能夠像似搜尋引擎根據使用者的輸入推薦相關的字詞。
    3 I) k, y% F4 e& T+ Q  B1 R8 o語言模型 (Language Model) 與 N-gram 原理3 F" b5 ]  |2 Q& P: m- Z
    語言模型這 4 個字看似很博大精深,但是它僅僅指的就是「一個句子的機率」,在一個句子中的每個字,我們可以給它 P(S),代表每個字的機率。% T6 P- _, a/ L) j
    假設我們給定一個句子「花博即將在台中__ 」,在留空的地方一般人都會想到該填入「舉行」,也就是當出現「花博即將在台中」,電腦能夠推斷出在這句話的後方出現「舉行」的機率最高。2 p1 Z' o+ R0 R' S- y5 _8 l$ {( Z
    所以我們假設第 i 個字會跟第 1 個字到 i-1 個字有關,這時你會發現如果這個句子很長,該機率計算量將會變得非常大,因此我們可以利用 Markov 假設,也就是當前的這個字僅僅與前幾個有限的字相關,如此一來,將不必追溯至第 1 個字,可以減少該機率的計算量:
    / y$ I1 i9 r3 l4 g8 Z! ]  Z
    9 g7 p) _/ f4 m' R當 m = 3 時,也就是第 i 個字與前 3 個字有相關,稱作 3-gram 或 trigram。用上述的例子舉例,我們要找一個字會令 P(w|在台中) 的機率最高,假設推算出 P(舉|在台中) 的機率最高後,再繼續找出另一個字讓 P(w|台中舉) 的機率最高。0 Q6 u8 L3 V9 Z1 i, z7 }# R5 I8 M) _
    這時你會想該如何計算 P(w|在台中) 這種條件機率?我們可以使用最大似然估計 (Maximum Likelihood Estimation ),詳細推導可以看這篇 ????文章:
    0 A6 R4 P7 y  z5 ^1 n
    , L0 w( I' f6 T藉由計算字詞出現的次數來推估 N-gram 的機率,所以我們要做的事情是計算「在台中 w」與「在台中」分別出現的次數,再相除得到 P(w|在台中) 的機率。
    9 D6 q$ i& x+ |2 o, w從零開始實現 N-gram7 ^9 [) T+ z5 t4 B
    在這個範例中,我們會使用 Open data 作為資料集,並且利用 N-gram 訓練一個語言模型。
    & I: ^0 k, E8 k, Y+ h* z: O我們會用到 Collections 中的 namedtuple 與 Counter。namedtuple 提供的功能是像 C 語言的 struct,能夠清楚表達一個資料的結構;而 Counter 則是能夠快速地幫助我們計算數量,例如 list 中每個元素的數量各有幾個。( v! S2 [, U9 W, e' c
    * \7 x( W+ ?" t" n9 Q' B
    引入資料集! c4 _  b8 d& V3 y
    在這篇文章中使用的資料集是政府資料開放平台提供的 ????桃園市官網市政新聞,由於 N-gram 所產生的結果會根據資料集而有所不同,因此在選擇資料集時必須評估該資料集是否合適。假設使用的資料集中包含許多火星文,根據 N-gram 產生的語言模型,其結果將會與火星文相關。
    0 K' s" K! i* Z6 u  d$ A7 @
    + j1 m$ ?7 X, o2 z資料前處理: U; I  ^7 V8 J; R
    桃園市官網市政新聞包含了許多的資料欄位,而我們需要的僅有報導文章的部分,因此將報導單獨取出。9 g* U1 v" D  C8 D% u2 @" E8 m* N2 K
    而報導中包含許多許多英文、數字與表點符號,為了實作方便,將除了繁體中文字以外的字用正規表達式 (Regular Expression) 去除。
    * U/ V6 p$ S* U' P9 R% T$ `" {
    ; N3 S% L. E0 K, q0 H- CN-gram 實作
    * D( j- N% a2 \- o: C  _在實作 N-gram 時,首先,我們要將每一篇文章做 tokenize;而我們想知道一篇文章的開頭與結尾,所以在 tokenize 之後,在前後分別加上 <s> 和 </s> 作為標示。
    ! k- U  G4 H) }, D" x" q2 ^: u4 S而在計算每個字出現的機率後,可以利用 set,將重複的字與機率去除,例如計算出兩次在「桃園」後出現「縣」的機率都是 1,我們可以只保留一組。
    . i& t1 o& u: ~3 g8 K1 y, Y6 y) p
    訓練模型與排序# V. m0 A* q2 f3 ^+ p# D
    我們使用的模型是 trigram,也就是計算接在兩個字之後第三個字的機率。接著,可以對結果進行排序,因此在預測下一個字時,能夠直接取得前幾個最高機率的字。0 N9 P, {9 m7 ^

    8 Y; V- ?  C. z2 p: P預測輸入的下一個字  i7 f8 N2 b3 |8 C" Y
    最後,我們使用模型來預測接下來可能會出現的文字,輸入「韓國」後出現的下一個字為「仁、及、地、超、文」最高機率的這 5 個字。3 V$ V7 g0 l0 ^. ^  b
    - M6 P# y% _5 g$ i- ^
    結論
    + B( ?3 {) f. T& v) P2 XN-gram 是一個理論較為簡單,而且容易實作的語言模型,可以花少量的程式碼達到不錯的效果。4 f0 `& o4 D6 S4 I, f9 W9 X/ X8 ^3 D
    但是,也許你會思考在預測下一個字時,得出字組合起來沒有特別的意思,因為 N-gram 只是單純利用統計得出機率比較大的字詞組合,所以在預測時看似會較沒有邏輯。" [0 u4 ^! y& E0 q$ D, |4 e/ l, q) J
    如果想要得出更好的結果可以嘗試使用較為複雜的模型,例如 Transformer 或是 ConvS2S 等 Google 與 Facebook 曾經發表的模型。
    3 r7 K6 @( ?2 J( k6 @/ d1 r2 [" _5 [- v3 {2 p8 T

    $ Z: B. E" W! [4 r' V0 n7 j2 K% t  s, t* Q" i- `8 \

    评分

    1

    查看全部评分

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

    [LV.6]常住居民II

    发表于 2019-12-27 16:01:24 | 显示全部楼层
    喬治兄 发表于 2019-12-27 14:15& P9 o+ s- w* r) r9 Q) f7 X
    Brother henices :
    2 \) b# E  ], a# E4 x前陣子在圖書館亂翻統計類的書
    6 I9 Y& k( m8 g& L% h) c4 K提及人工智慧, 後來發現人工智慧 N-Gram 和馬可夫鏈略有 ...

    ! W0 D. ^, E3 J( P+ O3 R乔治兄的这个评论好,完美科普了N-Gram,受益匪浅,感谢!
    ; Y' Z3 Y- n, J, `8 |; W
  • 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 | 显示全部楼层
    看到“语法对于我来说已经早就不是问题”,真是羡慕。& R3 b# B# y( l, X, }5 }
    不过看到上面说的中国人自己编写的语法书往往看了可能不好,有些无语。有时候为了辅助教学,  J. v6 ^( a( k% K
    造些实际不那么好的句子无可厚非,不过感觉要说清楚,告诉读者实际不要这么说。
  • TA的每日心情
    奋斗
    2021-4-9 12:40
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2020-9-20 07:31:16 | 显示全部楼层
    看了后,感觉这篇文章说得太过简单了。当然,作者的水平太高,很多东西可能在他看来太简单,没必要说吧,但是对于水平低的,就不是那么9 p. b3 r& {8 h+ Y- [3 K( T. _
    回事了。看后有收获,但是要提高还是多练习。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-24 22:19 , Processed in 0.058191 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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