掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3256|回复: 12

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

[复制链接]

该用户从未签到

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

% ^* G  h5 z  k0 A. K9 `, A+ h6 ~7 X  Y8 x" G) l, e; n  r; w) e

本帖被以下淘专辑推荐:

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

    该用户从未签到

    发表于 2019-12-27 11:07:17 | 显示全部楼层
    王垠的文章,不能说不好,确实讲得很通俗易懂嘛,只是……单单这些内容,就冠以「解谜英语语法」的标题,是否太……自大?(王垠的个性确实如此)2 E: d; B0 L2 e* K
    0 J3 g8 N7 O$ V" |
    我来举个未必恰当的例子:英語常用詞疑難用法手冊:) E. [+ N0 K, K; o9 G0 {
    * q- ]  ?! D, p1 c* X" d  C  i1 t
    ■ not 所否定的范围
    ( ?" _. J6 v) O2 K8 V9 S( }1 J
    1 G6 E4 d! ?, c# {9 [就谓语和状语而言(暂时不论宾语),not 可能有三个不同的否定范围(参见 not... because...):1 h6 D1 I( a) X) o8 b8 V# O4 y
    ( s. h9 |3 l& k4 i7 m! Q8 M; K' y
    1) 只否定谓语动词,不否定谓语动词后的状语。3 d) X! B: L; Z" C4 m  O2 l/ n

    1 _0 _3 b4 C8 _( H1 L1 NThe police didn't release his name because of his age. 由于他的年龄,警察没有公布他的名字。7 e# y! i$ f( q9 D  x; @- `& g) B& Z
    2) 不否定谓语动词,只否定谓语动词后的状语。
    $ A# L' B! a  j) f2 s- k( X
      V+ r3 Q1 o' c$ a) xThey had not gathered in this remote wooded area forty miles west of Moscow to relive the past. 他们到莫斯科以西四十英里这处偏僻的森林地带来聚集,并不是要重温过去。  q/ s2 y  O. m  G2 o

    ' m" q; g# L9 K6 s6 \3) 把谓语动词连同其后面的状语合在一起作为一个整体加以否定。( B/ C; _2 |, w& p2 {8 `
    & f) J% Z& ~( R
    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. 在一个源头开放的世界里活动,总是免不了遇到种种麻烦。东西不灵了,就不能像买来原装的软件那样有免费电话号码可以查询。
    ' C9 i8 l7 S2 l, T) y- U% k0 r! l+ D4 `% w; d2 W3 A& z) h& n6 t( h" u' x+ t
    这里有时候会出现歧义。
    : L9 |8 B* R' m0 L* n. [7 X
    0 q7 _3 X. I0 x4 j8 x$ v……
    ( A0 p; B; _3 v
    英语常用词疑难用法手册的作者,特别爱讲传统语法术语,所以有的地方挺叫人头疼的。' L, R4 P5 d. V0 J2 I- o1 _" p
    ! f- E1 J( `$ l
    不用谓语、状语这种术语,能不能把英语里复杂的现象、面貌说清楚?应该是可以的。问题是:
    $ W/ x8 K; N: v" F, ^5 t
    & Y/ R9 ]# J6 t1. 市面上不少号称「超简单的、一看就明白的英语语法」,并不触及复杂的问题,高阶读者格外需要解惑的地方,「超简单」语法都不说0 o9 s& g  A3 M, m) h0 @6 C
    2. 想要找足够丰富、全面的语法,很难抛弃传统术语。王垠是否有意写一本「深入本质」又「全面丰富」的语法教材呢?应该有人比我更了解他,可以说说
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-12-27 12:21:32 | 显示全部楼层
    klwo2 发表于 2019-12-27 11:07& G+ d) L7 b  O! `% Z. M
    王垠的文章,不能说不好,确实讲得很通俗易懂嘛,只是……单单这些内容,就冠以「解谜英语语法」的标题,是 ...
    ( G+ ]9 r- R( f% ]; s4 T
    方法都有其局限性,但在其适用的范围内可能完全够用。等在这个范围里,已经到了拔剑四顾心茫然的地步,可能就不仅满足于此,而会去寻求更深入更适合的方法或策略了。
    , E* p+ f' a" R3 B8 f$ x7 Fps:上面提到的open-source的翻译… 大概就体现了某种内容上的局限性吧…哈 大概王垠不会犯这种错误。
  • TA的每日心情
    开心
    2022-1-21 00:52
  • 签到天数: 699 天

    [LV.9]以坛为家II

    发表于 2019-12-27 12:28:58 | 显示全部楼层
    语法是对语言现象的总结,或者说是简化的模型,不同角度方式都是可以的。
    $ t0 x; g5 C9 m6 l语法一点不懂不行,但很多国人和语法书往往是失之于过深。; G- |8 k5 c$ j$ y
    推荐旋元佑的语法书,一开头介绍了5种基本句型,比此文全面但不过分复杂。* K* x( H! a8 C+ T
    旋元佑文法 2019 介绍2 D2 P1 m3 i, u/ i1 d
    https://www.pdawiki.com/forum/thread-35988-1-1.html?x=1805079 g; w+ {, j/ B) U' q9 C
  • TA的每日心情
    奋斗
    2023-9-14 00:05
  • 签到天数: 1290 天

    [LV.10]以坛为家III

    发表于 2019-12-27 13:15:48 | 显示全部楼层
    看了上面的啥 “语法树”, 可以反映出作者的计算机背景;% h' h9 P" m2 a0 m" C/ T/ l
    - Y  ?% o+ M+ d6 s9 f
    本来计算机语言的很多东西都来源于自然语言的概念,比方说 N.乔姆斯基 的生成理论就对计算机语言方面的影响和应用尤为明显;
    . S$ C" c% o& x, P5 O" p+ T/ ]
    . D2 x* f4 P9 R/ N1 p作者又反过来,用计算机语言的思维反作用于自然语言... 至于对语言的学习有没有用?这全是主观意愿。  1 S2 o" y: y( I

    4 @& q$ U1 Z4 Z8 e个人感觉计算机语言的思维 可以 “来分析反作用于自然语言的部分” 恰恰是最初“自然语言输出给计算机语言的那部分子集”,那么大致就是用子集的属性来探讨研究自然语言这个大整体(部分---到---整体),这显然不合理吧?
    1 g: P" Z2 T8 {
    9 I: \8 H- B3 b* X6 b2 A( }/ K因为本身自然语言没有那么纯粹的规律,不像是计算机非1即0; 相比计算机,自然语言更像是一种模糊语言 .
    2 b' g- m( f+ r) r' s
    - O3 p5 {% k9 S) I个人认为只能作参考,但是“揭秘” ?有待商榷。
    6 q8 D( R8 e2 `$ b; K# D
    ) v6 x9 C; A1 h5 N( l! g( X以上纯属个人观点,如有谬误,多多包涵!
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-12-27 14:15:36 | 显示全部楼层
    本帖最后由 喬治兄 于 2019-12-27 15:00 编辑   Y% Q3 _$ G  Z# R! a
    % ]! p+ n3 [1 U: |
    Brother henices :
    2 k4 T0 C  ^+ k3 T4 ]前陣子在圖書館亂翻統計類的書
    ( N* Q% K1 J0 V9 \# z' t提及人工智慧, 後來發現人工智慧 N-Gram 和馬可夫鏈略有相關' W8 t" l) k  s) M/ j
    在某種程度上應也是涉及 贝叶斯概率(英语:Bayesian probability
    2 M8 u2 D3 n9 ]# W) D1 j3 _可視為數位電路的 State Machine + 馬可夫鏈 + 贝叶斯概率1 R, j" Y4 N$ v; x. \4 f" R
    樹狀結構 + 贝叶斯概率 ==>決策判斷模型, D1 D5 G5 ~, q4 ?0 v0 E( d' |; F- \
    State Machine + 马尔可夫链蒙特卡洛(英语:Markov chain Monte CarloMCMC)方法 ==> 可分析風險值........ k+ j9 z" C3 h* ?+ ?9 q4 E  y3 J+ X. T
    然而在 ( Operations Research 作業研究 ) 國內可能叫作 運籌學 吧, 也都會提及以上的模型和方法- G$ T" z  s- \' @; _/ K
    9 N) u0 W% _: k  a
    MCMC方法是使用马尔科夫链的蒙特卡罗积分,其基本思想是:构造一条Markov链使其平稳分布为待估参数的后验分布,通过这条马尔科夫链产生后验分布的样本,并基于马尔科夫链达到平稳分布时的样本(有效样本)进行蒙特卡罗积分。设为某一空间n为产生的总样本数m为链条达到平稳时的样本数则 MCMC方法的基本思路可概括为:
    : h! X6 ^  `1 X) ]! D
      0 R) s4 o7 ]9 \) `# v! @$ X

      & W& X# o; `  |% O5 G
    • 构造Markov链。构造一条Markov链,使其收敛到平稳分布;===>此無非就是二維或多維隨機變數的聯合動差......因計算頗為複雜因而一般採用 MCMC 摹擬可更為快速求得答案
    • 产生样本:由中的某一点出发,用i中的Markov链进行抽样模拟,产生点序列:
    • 蒙特卡罗积分。任一函数的期望估计为:* c  [# |" h! @, u; e# }) r( t$ F
    在采用MCMC方法时马尔科夫链转移核的构造至关重要,不同的转移核构造方法将产生不同的MCMC方法,当前常用的MCMC方法主要有两种Gibbs抽样和Metropo-Lis-Hastings算法。

    + |5 J+ A7 F0 I( e" lhttps://zh.wikipedia.org/wiki/N%E5%85%83%E8%AF%AD%E6%B3%959 P: @" t& M+ G+ q

    " m7 _3 [3 b. A
    https://zhuanlan.zhihu.com/p/32829048
    + P; W7 L/ p2 v$ g) ~  C$ q
    8 Z8 h* ~2 B/ 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-10ac622aab7a6 h2 ~/ U4 a, ~$ Y& z  g0 V, v, ?/ N

    4 x7 m( A  m: a在學習自然語言處理 (Natural Language Processing) 時,經常會從語言模型 (Language Model) 開始學起,N-gram 便是一個入門常見語言模型。在這篇文章將帶你一探究竟 N-gram,並且利用 N-gram 實作一個模型,能夠像似搜尋引擎根據使用者的輸入推薦相關的字詞。( x" S' t9 S! [6 ?( J
    語言模型 (Language Model) 與 N-gram 原理
    6 K% J0 a" N5 Z! H; x1 ~) _# _語言模型這 4 個字看似很博大精深,但是它僅僅指的就是「一個句子的機率」,在一個句子中的每個字,我們可以給它 P(S),代表每個字的機率。) i, J+ w7 M1 H% O+ E% T
    假設我們給定一個句子「花博即將在台中__ 」,在留空的地方一般人都會想到該填入「舉行」,也就是當出現「花博即將在台中」,電腦能夠推斷出在這句話的後方出現「舉行」的機率最高。# v) [2 T; A( U& g* P
    所以我們假設第 i 個字會跟第 1 個字到 i-1 個字有關,這時你會發現如果這個句子很長,該機率計算量將會變得非常大,因此我們可以利用 Markov 假設,也就是當前的這個字僅僅與前幾個有限的字相關,如此一來,將不必追溯至第 1 個字,可以減少該機率的計算量:$ N3 A" B7 h" o4 ?( k

    * U  C: j" m" h: t) K當 m = 3 時,也就是第 i 個字與前 3 個字有相關,稱作 3-gram 或 trigram。用上述的例子舉例,我們要找一個字會令 P(w|在台中) 的機率最高,假設推算出 P(舉|在台中) 的機率最高後,再繼續找出另一個字讓 P(w|台中舉) 的機率最高。$ h: k9 `, T5 P3 g/ a8 S  i/ t
    這時你會想該如何計算 P(w|在台中) 這種條件機率?我們可以使用最大似然估計 (Maximum Likelihood Estimation ),詳細推導可以看這篇 ????文章:0 p+ o+ J2 o2 _5 F, u) O- A
    4 G  G" }% d2 R. d
    藉由計算字詞出現的次數來推估 N-gram 的機率,所以我們要做的事情是計算「在台中 w」與「在台中」分別出現的次數,再相除得到 P(w|在台中) 的機率。
    ! l+ ?  _+ _, ]  |( e從零開始實現 N-gram* o+ i2 F- Q9 v- W- r# [$ k
    在這個範例中,我們會使用 Open data 作為資料集,並且利用 N-gram 訓練一個語言模型。- D# `' W: E  j5 C3 f) [0 ]
    我們會用到 Collections 中的 namedtuple 與 Counter。namedtuple 提供的功能是像 C 語言的 struct,能夠清楚表達一個資料的結構;而 Counter 則是能夠快速地幫助我們計算數量,例如 list 中每個元素的數量各有幾個。& n) L, }5 n7 P' x! O8 T

    # i8 O4 h8 s0 R* {, B1 o. I引入資料集+ i6 \/ K$ B7 |& i  G
    在這篇文章中使用的資料集是政府資料開放平台提供的 ????桃園市官網市政新聞,由於 N-gram 所產生的結果會根據資料集而有所不同,因此在選擇資料集時必須評估該資料集是否合適。假設使用的資料集中包含許多火星文,根據 N-gram 產生的語言模型,其結果將會與火星文相關。: A# O- @' T( C- e7 k

    0 H5 ]9 V0 ^  ~資料前處理( X9 n8 Z. |% P+ Q! \* ?2 q
    桃園市官網市政新聞包含了許多的資料欄位,而我們需要的僅有報導文章的部分,因此將報導單獨取出。& D3 |  z" {8 I: ^9 x/ O+ L
    而報導中包含許多許多英文、數字與表點符號,為了實作方便,將除了繁體中文字以外的字用正規表達式 (Regular Expression) 去除。
    ; l5 m) |# u' j# J1 q7 r& `) g9 o; O
    4 P  T. }+ }7 ]- Z" s* U8 NN-gram 實作- E$ T% i9 K0 h
    在實作 N-gram 時,首先,我們要將每一篇文章做 tokenize;而我們想知道一篇文章的開頭與結尾,所以在 tokenize 之後,在前後分別加上 <s> 和 </s> 作為標示。
    " _7 s# w& I" k3 s  b  r' [而在計算每個字出現的機率後,可以利用 set,將重複的字與機率去除,例如計算出兩次在「桃園」後出現「縣」的機率都是 1,我們可以只保留一組。, L. K2 L8 R9 n7 l- M# ?9 [
    2 }; E/ z, W3 t4 ~8 h) Z
    訓練模型與排序7 c) S; y! e0 O
    我們使用的模型是 trigram,也就是計算接在兩個字之後第三個字的機率。接著,可以對結果進行排序,因此在預測下一個字時,能夠直接取得前幾個最高機率的字。: L: l; }3 L& {7 H* M8 C6 ~
    2 g% `9 j* X! t
    預測輸入的下一個字
    " ^) h  G+ y5 v! a3 N最後,我們使用模型來預測接下來可能會出現的文字,輸入「韓國」後出現的下一個字為「仁、及、地、超、文」最高機率的這 5 個字。
    ! Z3 z& a) Q0 K; N+ ^. R1 A! V
    : b! ^; k/ s" H/ D& @結論" a' G1 ]8 M% t$ h: |
    N-gram 是一個理論較為簡單,而且容易實作的語言模型,可以花少量的程式碼達到不錯的效果。1 m+ N" e/ ~$ R/ w
    但是,也許你會思考在預測下一個字時,得出字組合起來沒有特別的意思,因為 N-gram 只是單純利用統計得出機率比較大的字詞組合,所以在預測時看似會較沒有邏輯。4 U3 j, V+ t( _+ K1 d* g1 g
    如果想要得出更好的結果可以嘗試使用較為複雜的模型,例如 Transformer 或是 ConvS2S 等 Google 與 Facebook 曾經發表的模型。
    - I1 U6 c: N! Z7 @7 n9 d4 s& i
    6 t3 T# y+ V5 _& B3 m7 {" k: U
      z) n! S( P+ W% ?6 w5 ]* q5 o3 `& A, k4 ]) I) i/ n

    评分

    1

    查看全部评分

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

    [LV.6]常住居民II

    发表于 2019-12-27 16:01:24 | 显示全部楼层
    喬治兄 发表于 2019-12-27 14:15" y6 i8 ~  j7 X% N  r: W! c# V
    Brother henices :/ \$ `/ Y# P0 U* @1 U
    前陣子在圖書館亂翻統計類的書
    7 y# }$ S% K0 f提及人工智慧, 後來發現人工智慧 N-Gram 和馬可夫鏈略有 ...

    ! ~! M3 G; A: p8 n* h9 L* Y乔治兄的这个评论好,完美科普了N-Gram,受益匪浅,感谢!
    ; k/ Y: s. L7 s" w4 c# I- U# V& G
  • 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 {4 D7 d3 h1 h! X不过看到上面说的中国人自己编写的语法书往往看了可能不好,有些无语。有时候为了辅助教学,
    7 N5 C6 W3 x& m; h3 ~造些实际不那么好的句子无可厚非,不过感觉要说清楚,告诉读者实际不要这么说。
  • TA的每日心情
    奋斗
    2021-4-9 12:40
  • 签到天数: 93 天

    [LV.6]常住居民II

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

    本版积分规则

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

    GMT+8, 2024-4-30 00:06 , Processed in 0.059873 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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