掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3814|回复: 12

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

[复制链接]

该用户从未签到

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

本帖被以下淘专辑推荐:

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

    该用户从未签到

    发表于 2019-12-27 11:07:17 | 显示全部楼层
    王垠的文章,不能说不好,确实讲得很通俗易懂嘛,只是……单单这些内容,就冠以「解谜英语语法」的标题,是否太……自大?(王垠的个性确实如此)
    " Y/ C" o1 g" h  o( k. N9 `! u! @; ?3 ]* T
    我来举个未必恰当的例子:英語常用詞疑難用法手冊:
    7 Q7 {4 J3 Y# z7 I
    * ]  P( Q9 h0 a, e. L! g+ _
    ■ not 所否定的范围
    & Y7 H- P" Z) `  R1 D# E$ ~2 v6 R3 s$ M0 Y& k) Z) G8 O: {
    就谓语和状语而言(暂时不论宾语),not 可能有三个不同的否定范围(参见 not... because...):
    / ^2 g* W' C- ^! u6 T4 Y5 H% K6 C+ F
    1) 只否定谓语动词,不否定谓语动词后的状语。9 k$ P" s; r4 l, R
    2 {/ o9 h, T* `( L4 b! g
    The police didn't release his name because of his age. 由于他的年龄,警察没有公布他的名字。
    5 A. ~2 W1 k% O2) 不否定谓语动词,只否定谓语动词后的状语。+ T5 N: @5 G( o: _& G

    5 i# y: ]! e8 ^  u8 v+ q. IThey had not gathered in this remote wooded area forty miles west of Moscow to relive the past. 他们到莫斯科以西四十英里这处偏僻的森林地带来聚集,并不是要重温过去。
    $ I* o$ `8 {( G) Q7 Y4 c: k2 R5 q. r& s5 L! Q* \: q7 f
    3) 把谓语动词连同其后面的状语合在一起作为一个整体加以否定。
    7 X8 S% s" Y% c8 v
    3 C8 f$ H7 G- o$ H% n. @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. 在一个源头开放的世界里活动,总是免不了遇到种种麻烦。东西不灵了,就不能像买来原装的软件那样有免费电话号码可以查询。
    / Y4 k* E( F1 W8 k8 K0 }" t
    1 n" U4 h7 b9 e) Z2 \0 T! A这里有时候会出现歧义。
    " t+ c1 U- q" k% a& p+ A. f1 K
    3 c1 a" J+ H3 Z) U3 H8 m: w- Q* K" C! R……

    7 l* N. x0 s+ F. a. }2 {英语常用词疑难用法手册的作者,特别爱讲传统语法术语,所以有的地方挺叫人头疼的。
    9 N# [! Q* M; U6 h" V% a- C3 Q2 c" N: J/ o* N' l
    不用谓语、状语这种术语,能不能把英语里复杂的现象、面貌说清楚?应该是可以的。问题是:% c# ^/ ~. H" H, p
    ; P- R; M) |( U& j( X3 k' ?
    1. 市面上不少号称「超简单的、一看就明白的英语语法」,并不触及复杂的问题,高阶读者格外需要解惑的地方,「超简单」语法都不说
    6 j8 |  I( R8 e# L2 r2. 想要找足够丰富、全面的语法,很难抛弃传统术语。王垠是否有意写一本「深入本质」又「全面丰富」的语法教材呢?应该有人比我更了解他,可以说说
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-12-27 12:21:32 | 显示全部楼层
    klwo2 发表于 2019-12-27 11:071 s! D0 v7 l7 x' x' `
    王垠的文章,不能说不好,确实讲得很通俗易懂嘛,只是……单单这些内容,就冠以「解谜英语语法」的标题,是 ...

    , c! d" i7 B" K& G& B( Q5 Q方法都有其局限性,但在其适用的范围内可能完全够用。等在这个范围里,已经到了拔剑四顾心茫然的地步,可能就不仅满足于此,而会去寻求更深入更适合的方法或策略了。! t& K# L3 @- m" Y/ P9 Y1 r) I% [
    ps:上面提到的open-source的翻译… 大概就体现了某种内容上的局限性吧…哈 大概王垠不会犯这种错误。
  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    发表于 2019-12-27 12:28:58 | 显示全部楼层
    语法是对语言现象的总结,或者说是简化的模型,不同角度方式都是可以的。
    * o  c2 T/ p8 M$ k; y语法一点不懂不行,但很多国人和语法书往往是失之于过深。: ?: k) r% ]& Y
    推荐旋元佑的语法书,一开头介绍了5种基本句型,比此文全面但不过分复杂。' G# [' i$ p3 q0 U% U/ \
    旋元佑文法 2019 介绍
    # E/ b" L* y- G# R; Dhttps://www.pdawiki.com/forum/thread-35988-1-1.html?x=180507
    , T9 \1 s4 u! I% b; l( {7 A1 R
  • TA的每日心情

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

    [LV.10]以坛为家III

    发表于 2019-12-27 13:15:48 | 显示全部楼层
    看了上面的啥 “语法树”, 可以反映出作者的计算机背景;
    % D6 M$ Z! `+ ~' q) g. Z/ M
    - Z1 F4 F3 K7 [" Y- F. N本来计算机语言的很多东西都来源于自然语言的概念,比方说 N.乔姆斯基 的生成理论就对计算机语言方面的影响和应用尤为明显;- U3 Y- l/ X+ {* }0 |8 Q
    : Q. S6 H' e; m
    作者又反过来,用计算机语言的思维反作用于自然语言... 至于对语言的学习有没有用?这全是主观意愿。  
    2 O+ A# H# u" V4 x! b1 @& ]! \5 p1 ?2 g  Z2 `' C
    个人感觉计算机语言的思维 可以 “来分析反作用于自然语言的部分” 恰恰是最初“自然语言输出给计算机语言的那部分子集”,那么大致就是用子集的属性来探讨研究自然语言这个大整体(部分---到---整体),这显然不合理吧?- b* T  M5 _- P8 O; ?
    8 c; z: V4 N& ]% W' U9 ]! |' ~. [
    因为本身自然语言没有那么纯粹的规律,不像是计算机非1即0; 相比计算机,自然语言更像是一种模糊语言 .
    - K2 S$ J" R; x1 i4 f
    , t& P4 Z4 I. n8 ]' Q% M个人认为只能作参考,但是“揭秘” ?有待商榷。( t& W' y) |  M5 J$ D5 q
    ; f- R: O- i- e# U8 v/ V2 y+ i
    以上纯属个人观点,如有谬误,多多包涵!
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-12-27 14:15:36 | 显示全部楼层
    本帖最后由 喬治兄 于 2019-12-27 15:00 编辑
    ' V: D) g0 r" v  D/ G9 e0 ?' o* ^
      N% f  W- m# t! F3 K3 U) L1 {* LBrother henices :* S$ f' b+ g2 ^& x$ r, d( u
    前陣子在圖書館亂翻統計類的書
    1 i4 ]) x, b+ W/ S8 |6 @提及人工智慧, 後來發現人工智慧 N-Gram 和馬可夫鏈略有相關
    1 z& x* M3 |8 d# L( Y: w% i在某種程度上應也是涉及 贝叶斯概率(英语:Bayesian probability7 I; n) L+ d% W; I& `$ d4 C
    可視為數位電路的 State Machine + 馬可夫鏈 + 贝叶斯概率5 G0 @  b& I! B- v$ c/ K
    樹狀結構 + 贝叶斯概率 ==>決策判斷模型
    4 m' R3 w# `* X" F3 H9 L" a9 E/ fState Machine + 马尔可夫链蒙特卡洛(英语:Markov chain Monte CarloMCMC)方法 ==> 可分析風險值.......
    2 t& `' d; Y9 u$ C6 W7 z9 P7 g然而在 ( Operations Research 作業研究 ) 國內可能叫作 運籌學 吧, 也都會提及以上的模型和方法
    ) ~1 O( Z3 O8 R( y" N0 u5 Z/ w6 M; k8 _% c* I+ M! r
    MCMC方法是使用马尔科夫链的蒙特卡罗积分,其基本思想是:构造一条Markov链使其平稳分布为待估参数的后验分布,通过这条马尔科夫链产生后验分布的样本,并基于马尔科夫链达到平稳分布时的样本(有效样本)进行蒙特卡罗积分。设为某一空间n为产生的总样本数m为链条达到平稳时的样本数则 MCMC方法的基本思路可概括为:
    . [/ |6 e! b5 b/ z+ u) H
      # Z; j" Q4 X1 [" I2 `4 P% H; }
      ' \4 w0 A9 n& x+ r  w" _
    • 构造Markov链。构造一条Markov链,使其收敛到平稳分布;===>此無非就是二維或多維隨機變數的聯合動差......因計算頗為複雜因而一般採用 MCMC 摹擬可更為快速求得答案
    • 产生样本:由中的某一点出发,用i中的Markov链进行抽样模拟,产生点序列:
    • 蒙特卡罗积分。任一函数的期望估计为:
      ) ?4 o# ?7 o4 M7 K- C9 o
    在采用MCMC方法时马尔科夫链转移核的构造至关重要,不同的转移核构造方法将产生不同的MCMC方法,当前常用的MCMC方法主要有两种Gibbs抽样和Metropo-Lis-Hastings算法。

    5 G) H+ C- O7 V1 x# w# p/ i/ mhttps://zh.wikipedia.org/wiki/N%E5%85%83%E8%AF%AD%E6%B3%95
    " G, J" O7 ^: m- c5 I- K. J1 ^$ U
    https://zhuanlan.zhihu.com/p/32829048
    0 S4 e- ^  B. ^
    : e& r& ^$ o. C3 Shttps://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
    * O# s) H- N. }+ V$ b, U  h" x# T4 N
    5 X* C8 W8 G% R* O$ k$ W. Q: e: V在學習自然語言處理 (Natural Language Processing) 時,經常會從語言模型 (Language Model) 開始學起,N-gram 便是一個入門常見語言模型。在這篇文章將帶你一探究竟 N-gram,並且利用 N-gram 實作一個模型,能夠像似搜尋引擎根據使用者的輸入推薦相關的字詞。
    ) p) w0 ]: ?+ {# A  B語言模型 (Language Model) 與 N-gram 原理
    , @5 e8 L! U$ ~0 K' V' v; o! z語言模型這 4 個字看似很博大精深,但是它僅僅指的就是「一個句子的機率」,在一個句子中的每個字,我們可以給它 P(S),代表每個字的機率。; W$ q! U3 N# ]& Z7 z7 P. d6 z; p( A+ h
    假設我們給定一個句子「花博即將在台中__ 」,在留空的地方一般人都會想到該填入「舉行」,也就是當出現「花博即將在台中」,電腦能夠推斷出在這句話的後方出現「舉行」的機率最高。4 F. {- ?( u( f* k6 I4 {
    所以我們假設第 i 個字會跟第 1 個字到 i-1 個字有關,這時你會發現如果這個句子很長,該機率計算量將會變得非常大,因此我們可以利用 Markov 假設,也就是當前的這個字僅僅與前幾個有限的字相關,如此一來,將不必追溯至第 1 個字,可以減少該機率的計算量:% P; m; U2 U2 E
    ) u% y) |& ]: K! v/ C, d- U! R" o5 ]
    當 m = 3 時,也就是第 i 個字與前 3 個字有相關,稱作 3-gram 或 trigram。用上述的例子舉例,我們要找一個字會令 P(w|在台中) 的機率最高,假設推算出 P(舉|在台中) 的機率最高後,再繼續找出另一個字讓 P(w|台中舉) 的機率最高。, \9 c5 s, l, d* m3 Z4 q
    這時你會想該如何計算 P(w|在台中) 這種條件機率?我們可以使用最大似然估計 (Maximum Likelihood Estimation ),詳細推導可以看這篇 ????文章:8 l7 Z, X0 D. g1 T! {5 k
    3 k' J$ R% x! Z! f7 a
    藉由計算字詞出現的次數來推估 N-gram 的機率,所以我們要做的事情是計算「在台中 w」與「在台中」分別出現的次數,再相除得到 P(w|在台中) 的機率。$ A1 R3 e/ {4 ^
    從零開始實現 N-gram2 l4 ^0 F8 ?% P$ t( n7 H
    在這個範例中,我們會使用 Open data 作為資料集,並且利用 N-gram 訓練一個語言模型。
    . P2 M: J1 r* o& G! v  Y我們會用到 Collections 中的 namedtuple 與 Counter。namedtuple 提供的功能是像 C 語言的 struct,能夠清楚表達一個資料的結構;而 Counter 則是能夠快速地幫助我們計算數量,例如 list 中每個元素的數量各有幾個。
    ! N- n5 l, [+ b) a) Q) x7 R5 R5 i  D# ~; j/ d: i$ R/ n
    引入資料集+ q4 p! C4 T$ O' a$ G/ \. \3 y
    在這篇文章中使用的資料集是政府資料開放平台提供的 ????桃園市官網市政新聞,由於 N-gram 所產生的結果會根據資料集而有所不同,因此在選擇資料集時必須評估該資料集是否合適。假設使用的資料集中包含許多火星文,根據 N-gram 產生的語言模型,其結果將會與火星文相關。
    7 V% `: `( w7 D3 O( Z# P
    ) Z0 _( y! h6 l6 H資料前處理$ p% l2 l/ q4 z5 T( {, _
    桃園市官網市政新聞包含了許多的資料欄位,而我們需要的僅有報導文章的部分,因此將報導單獨取出。6 I+ @% m. z: G& R
    而報導中包含許多許多英文、數字與表點符號,為了實作方便,將除了繁體中文字以外的字用正規表達式 (Regular Expression) 去除。" W5 b6 ~6 w0 K; s# w) _

    9 o) q* x. w( v$ tN-gram 實作
    $ C$ \/ y, R: F& ?$ ]在實作 N-gram 時,首先,我們要將每一篇文章做 tokenize;而我們想知道一篇文章的開頭與結尾,所以在 tokenize 之後,在前後分別加上 <s> 和 </s> 作為標示。& |, e* I  {4 _! b1 W' r
    而在計算每個字出現的機率後,可以利用 set,將重複的字與機率去除,例如計算出兩次在「桃園」後出現「縣」的機率都是 1,我們可以只保留一組。4 |. `* v7 [$ l9 b( P

    1 h/ K) S: P- w4 i% C, x4 W訓練模型與排序3 }2 n0 `8 c$ R) O# q
    我們使用的模型是 trigram,也就是計算接在兩個字之後第三個字的機率。接著,可以對結果進行排序,因此在預測下一個字時,能夠直接取得前幾個最高機率的字。. n% R# F) Y! L4 @1 b) z" d5 I
    5 U6 B* f$ d( ^8 I5 e7 B
    預測輸入的下一個字
    & o3 ^# {% H6 F' j" \% V最後,我們使用模型來預測接下來可能會出現的文字,輸入「韓國」後出現的下一個字為「仁、及、地、超、文」最高機率的這 5 個字。
    0 p) q2 o$ ^2 u9 Q8 S5 y. G( q3 S  o" N9 q: i
    結論! u  f4 [, S$ k% O
    N-gram 是一個理論較為簡單,而且容易實作的語言模型,可以花少量的程式碼達到不錯的效果。
    , _6 U7 V4 i3 A' f% P+ F. J但是,也許你會思考在預測下一個字時,得出字組合起來沒有特別的意思,因為 N-gram 只是單純利用統計得出機率比較大的字詞組合,所以在預測時看似會較沒有邏輯。- o$ T8 k3 O5 |$ |; ~8 \% K# [
    如果想要得出更好的結果可以嘗試使用較為複雜的模型,例如 Transformer 或是 ConvS2S 等 Google 與 Facebook 曾經發表的模型。9 Q0 A6 C6 N# P( g$ i5 W: Q
    & y; Z& e, A3 {, j
    6 L: n  l# e1 ^% }* r
    * A! g7 P  g- I7 P

    评分

    1

    查看全部评分

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

    [LV.6]常住居民II

    发表于 2019-12-27 16:01:24 | 显示全部楼层
    喬治兄 发表于 2019-12-27 14:15+ c; n; h; w% P2 v( z0 K
    Brother henices :5 j' ~5 H* Z! z0 |( |" Q
    前陣子在圖書館亂翻統計類的書
    ; [/ |. a: D5 |6 Z8 L提及人工智慧, 後來發現人工智慧 N-Gram 和馬可夫鏈略有 ...

    * u  Q& Q7 A5 f0 \- V2 O, W+ u乔治兄的这个评论好,完美科普了N-Gram,受益匪浅,感谢!
    ( ]1 \7 \8 J" I' l7 ]9 O% o' }
  • 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 | 显示全部楼层
    看到“语法对于我来说已经早就不是问题”,真是羡慕。6 T$ v% g2 j! s. G9 N5 @4 k
    不过看到上面说的中国人自己编写的语法书往往看了可能不好,有些无语。有时候为了辅助教学,, H& p/ F: K' `' y4 W
    造些实际不那么好的句子无可厚非,不过感觉要说清楚,告诉读者实际不要这么说。
  • TA的每日心情
    奋斗
    2021-4-9 12:40
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2020-9-20 07:31:16 | 显示全部楼层
    看了后,感觉这篇文章说得太过简单了。当然,作者的水平太高,很多东西可能在他看来太简单,没必要说吧,但是对于水平低的,就不是那么6 c* U/ s% j$ \7 f+ h6 t4 t
    回事了。看后有收获,但是要提高还是多练习。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-4-23 12:32 , Processed in 0.028079 second(s), 22 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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