Author name: 楊慶忠

多益文法與字彙之6~句型與補語

2-6:句型與補語 以前高中上英文課時,只要聽到老師講到「不完全不及物動詞」、「受詞補語」這些東西,就趕緊讓腦筋切換到休眠模式,以免傷及腦細胞。因為我們發現,即使聽不懂這些拗口的名詞,也不會妨礙對課文內容的理解。 及至年長,不免對老師的諄諄教誨感到歉意,但多少也有點抱怨,那種大範圍系統性的觀念,難道不能講得口語化一些,非得讓懵懵懂懂的青澀少年,聽得一頭霧水暈頭轉向? 英文分成五大句型,還運用到主詞補語、受詞補語等來解釋,應該是外國學者和教育界人士,經過長時間思考和討論的智慧結晶。目前大家英文都學到一定的歲月了,現在再回過頭來複習一下,說不定可收溫故知新、水到渠成之效。 要弄懂甚麼是「不完全不及物動詞」、「完全及物動詞」這一些,先要釐清甚麼是「及物動詞」,甚麼又是「不及物動詞」。 「完全不及物動詞」的句型是最簡單的,句子內只要有主詞和動詞就可以了,例如John cries.、Mary fainted.,哭泣cry、昏倒faint,這些動作都是自己做就可以,不需要有施予動作的對象,所以稱之為完全不及物動詞。 「不完全不及物動詞」,它是不及物動詞,但後面可以接名詞,這名詞並不是當作受詞用來承接動作,而是用來補充說明主詞,所以稱之為主詞補語,主詞補語在此就等同於主詞本身。例如John becomes a good student. 主詞補語是a good student,等同於主詞John,而不完全不及物動詞become,主要用來連結John和a good student兩者關係,稱為連綴動詞(linking verb)。 「完全及物動詞」的句型也很簡單,只要有主詞和動詞和受詞就可以了,例如 I like jogging.、He drives a bus.,這些句子都有主詞、動詞、受詞,是典型的完全及物動詞。 「不完全及物動詞」的句型,也是有主詞、動詞、受詞,但是語焉不詳,必須對受詞再做補充說明,語意才會完整。例如 I heard Jane. 、I let my hair.,都使用到不完全及物動詞,只是還不清楚其完整意思,但若加上分詞片語當作受詞補語,就可表示受詞主動或被動在進行一些動作,如 I heard Jane singing a song. I let my hair cut in the barbershop. 主詞(受詞)補語如果是形容詞,表示補語在呈現主詞(受詞)的樣貌或狀態,例如This apple tastes sweet. He made me crazy. 。受詞補語也可以是原形動詞或不定詞片語,甚至介系詞片語,例如 […]

多益文法與字彙之6~句型與補語 Read More »

強化式學習之4~Q-learning

3-4:Q-learning 增強式學習裡面,有一個很基本的技巧,叫做Q-learning。Q是Quality的意思,指在某種狀態下,採取某個行動的價值,或者說在幾個可供選擇的行動中,各個行動品質的量化評估。 Q-learning的演練例子當中,除了先前提過的迷宮遊戲之外,Open AI公司所提供的Gym Cart-Pole,「木棒平衡滑車」遊戲 ,是被引用次數相當多典型範例,它訓練滑車左右快速移動,來讓繞軸轉動的木棒可以維持平衡。 上圖的實驗是不容易複製的,除了程式設計之外,還要有精準的機械控制模組來協作,一般人是沒辦法模仿的。 所以變通的方式,就是純粹用電腦動畫遊戲來模擬看看。但模擬過程的計算還真不好處理,因為木棒的軌跡,除了移動還有轉動,要做得維妙維肖,除了程式語言,還要有力學的演算技巧。只是一般設計程式的人,往往連「角速度乘以曲率半徑等於線性速度」,這樣的物理基礎都沒有,所以設計出來的動畫遊戲,就如下圖這般形似而神異了。 Cart-Pole這個訓練遊戲的重點,是在決定整個環境(environment)有哪些狀態(state),代理人(agent)有哪些動作(action)。只不過它的四個狀態中,木棒角度和角速度就會難倒很多人,嚴格來講,這個練習並不適合讓初學者來嘗試。 值得慶幸的是它的代理人動作倒還很簡單,就是滑車在某個位置時,要決定下一步是朝左移一格、朝右移一格或靜止不動這三種。我們把這三種動作維持不變,場景改成類似個人版的乒乓球遊戲,狀態就可大幅簡化成三個物體的位置,如此,初學者就可以很清楚,在套用Q-learning的時候,Q-table的四軸陣列,應該要如何建立起來了。 https://mobile-learning-testing.com/wp-content/uploads/2024/12/pon.mp4 上圖的訓練遊戲,它的reward值,在球接觸到拍子的狀態,應該是一個大的正數,在球接觸到地板的狀態,應該是一個大的負數,其他的狀態,給予 -1的reward即可。它可據此算出各個狀態的最適行動Q值,來決定下一步應該採取的行動。 這整個場景像是一維半(1.5D)的乒乓球遊戲,因為兩個球都只能在垂直方向移動,如果可以讓一個球在二維平面(2D)上持續移動,那就是個人乒乓遊戲的AI版本了。

強化式學習之4~Q-learning Read More »

進階語法之6~串列、陣列與張量

2-6:串列、陣列與張量 我們前面的單元,有提到串列(list)搭配迴圈的計算,所使用到的是一維串列。串列也可以是二維、三維或更高維,在統計分析和繪製圖表經常會接觸到,它的功能就類似別種語言的陣列。 但它在某些方面卻有迥然不同的運算方式,即以最簡單的加法而言,它的結果也出乎一般初學者的預料。比如我們把兩個一維串列(向量)相加,[1,2,3]+[4,5,6],竟然會得到[1,2,3,4,5,6]。 這樣的運算是有它的用意的。第一,它可以把分次得到的資料整理在一起;第二,它可以擁有記憶的功能。 下圖是我們先前提到的循環神經網路RNN,在右邊展開的三個時序圖中,我們可以看到,前面時序處理過的訊息,會和最新輸入的訊息結合在一起後,再做下一步的處理。這兩個訊息結合在一起,使用的就是類似這種串列加法的連接運算(concatenate),這種運算可以把新舊記憶連結起來。 如果堅持一定要使用線性代數的計算方式,就要使用到Python裡面運算功能強大的套件模組–Numpy,Numerical python。它的核心是使用C語言來開發的,很適合快速處理大量資料。 下圖第5行先匯入numpy模組並簡化其命名為np,第6、7行利用np的array函式,將串列轉換成陣列,經過加總後再輸出,就可以得到一般線性代數計算的結果。 但numpy的功能遠不止於這些,它在數學觀念上的轉變,和程式碼裡面符號的處理,是有相當程度的躍升了。 早在Matlab最活耀的時代,它已經把矩陣的符號轉換成適合程式碼輸入的形式。例如一個最簡單的3×3影像矩陣,將其灰階值表示成[25  33  120;18  95  212;130  77  255],這種矩陣表示方式可稱之為二維陣列。很顯然的,這樣的數據要輸入程式碼中是沒有問題的。相較之下,傳統的矩陣符號,是不太適合寫成程式碼的, 圖2-6-4. 傳統的矩陣表示方式,把數據夾在兩個大型中括弧內,並不適合寫成程式碼。 到了numpy的階段,它把上式二維陣列,再進一步轉換,寫成更精準的模樣,這就是所謂的ndarray(n-dimensional array),[[25  33  120]  [18  95  212]  [130  77  255]]。 這種寫法,極具擴充性,我們可以把它擴充成四維陣列,[[[[25]  [33]  [120]]  [[18]  [95]  [212]]  [[130]  [77]  [255]]]]。增加的外層維度(藍色)意思是說,除了這張影像,還可以再置入其他影像;增加的內層維度(橘色)意思是說,裡面的灰階值,可以從單一灰階值,擴充成紅綠藍三種灰階值。 嚴格來講,這邊的維度應該叫做軸度(axis)。在numpy裡面,維度(dimension),指的是向量裡面元素的個數。經常聽到的名詞「降維」(dimensionality reduction),其實是減少元素個數,來提取特徵。 最後,必須提到上圖TensorBoard中張量(tensor)的概念。tensor在很多方面都類似ndarray,但它是專為深度學習而設計,可運行在GPU上面,而ndarray比較常使用到CPU。 Google的深度學習框架(framework),叫做TensorFlow,數據在上一神經層運算完畢後,再進入到下一神經層處理,好像張量在流動一樣。 在實務工作上,TensorFlow常是深度學習工程師必備工具,但它跨入門檻不低,所以在學術研究上,很多人喜歡用臉書公司開發的技術Pytorch來發表論文。

進階語法之6~串列、陣列與張量 Read More »

進階語法之5~資料處理視覺化

2-5:資料處理視覺化 我們在分析資料的時候,如果數據整理的結果能用圖形表示,不但可以讓一般讀者快速抓住問題重點,也可以讓有經驗的人看出其中的技術細節。 早期這方面的相關軟體,最具代表性的就是Matlab,Matrix Laboratory。它第一版是用FORTRAN編寫,著重在矩陣向量的運算,第二版改以C語言開發,加入了資料圖形視覺化的功能。 時至今日,由於大數據和人工智慧的需求,Python裡面Matplotlib.pyplot繪圖模組,結合其Pandas資料處理能力,和Numpy的陣列運算功能,形成一套很有效率的深度學習組合。 上圖上第2行匯入繪圖模組並改命名為plt,第3行讀入csv檔案後,在第4行取其中”CPM”欄位值和”CTR”欄位值,分設為x座標和y座標,繪製出上圖中之2D散佈圖。可以看得出來,搭配第1行匯入的pandas模組,整欄資料的取用計算變得非常簡便。 下圖是取用所有6個欄位的資料值,繪製出3D散佈圖。這3D圖不僅能顯示3個座標軸,還可引用另外3個變數,顯示出總共6種不同資料訊息。 第15行中,除了x,y,z等3軸座標外,還用顏色來分類”CLASS”這個欄位,而且使用數據點的大小,來顯示”ROAS”這個欄位值的多寡。甚至,還可以把”公司名”這個欄位內容,用第16、17行的敘述直接標記在數據點旁邊。 如果只比較繪圖精美的程度,Matlab因為發展既久,明顯勝過Matplotlib,但兩者處理的對象和數學的觀念,並不完全一致。 Matlab的Matrix(矩陣),主要針對科學工程可以量測的物理量,如時間、位置、頻率、強度等,做變化趨勢的計算,而Matplotlib很多是在做數據分佈的統計分析。 兩者在數學上的觀念差異,從使用的符號也可看得出來。Matlab所強調的矩陣著重在2、3維變數,很難擴充至4維以上;但Matplotlib卻很容易從陣列(Numpy Array)的操作,視需要增減它的維度。 模組搭配Python程式語言運作,在實務上比較佔優勢。Matlab因為是C語言的API,不是直接撰寫C/C++語言,在影像視訊類的第一線工作場所,有時不為基層主管所喜。 圖2-5-3. Matlab的繪圖顯示相當精美。 前面提到的FORTRAN語言,那是五年級前段班生的共同記憶。當時個人電腦並不普遍,電腦實習課都需要輸入程式至大型主機,進行分批次處理作業,再靜待編譯結果。所以不時可看到電腦教室終端機前,一群人在那裏慌慌張張、手忙腳亂,在有限時間壓力下,匆匆輸入錯誤指令。但這夢魘不會馬上終止,你還必須過一個禮拜等報表出來之後,再繼續輸入指令、然後繼續錯誤…….。 聽說早期的情況還更慘,學生是用卡片打孔方式輸入程式,有時卡片打錯了,還會有人用膠帶把打錯的孔貼起來,實行「掩耳盜鈴」政策,讓計算機老師相當頭疼,不知道該不該責備這些天真浪漫的學生。 圖2-5-4. 整張卡片代表一個指令敘述,每一行代表一個字元,最多可輸入80個字元。黑色的小框,是被打孔的位置。 圖2-5-5. 1963年,一部IBM打孔機電腦,用牛車搬運至台北羅斯福路,一路穩步向前,被戲稱為”mobile computing”的先驅。

進階語法之5~資料處理視覺化 Read More »

進階語法之4~資料處理模組

2-4:資料處理模組 我們最熟悉的試算表軟體,大概非Excel莫屬了。這個軟體,火紅到有人光憑上傳教學影片至Youtube,教導各種日常活用Excel的場景,就可以獲利上百萬美元、賺進第一桶金,簡直讓人大呼不可思議。 Excel的各項設計,讓人工處理二維表單,變得視覺化又直覺化,可以快速正確得到數值運算的結果,為使用者節省大量時間成本。 隨著大數據時代的來臨,微軟也開始多方促銷開發既久的VBA,Visual Basic Applications,用來輔助Excel程式能力之不足。但囿於試算表先天框架所限,資料必須在儲存格、表格、視窗、檔案各種物件間轉換,讓VBA程式寫起來總算差強人意。 圖2-4-1. Excel試算表裡面,附有VBA程式設計的功能。 值此同時,越來越多人使用的Python,其資料處理模組Pandas,Python and data analysis,則以快速處理大量數據的能力,攫獲學界和業界的青睞。這個模組,可將外部的csv資料檔案,讀取至程式碼裡面,再以其內建的處理函式,運算各項統計數據。 下圖是簡短程式執行第1~4行的結果,第5~8行先用註解行略過。第1行匯入pandas模組,給予簡易名稱pd;第2行使用pd的read_csv類別,輸入ads3.csv資料檔,建立二維表格資料物件df;第3行將df內容全部輸出;第4行只輸出df的兩個欄位”Coms”和”CPM”。資料有8筆,由0編號至7。 下圖則是完整程式執行第5~8行的結果,第1~4行用註解行略過。第5行是用mean( )指令,求取”CPM”欄位的平均值;第6行是用std( )指令,求取”CPM”欄位的標準差;第7行搜尋”ROAS”欄位值為5的所有紀錄;第8行則是依”ROAS”的大小,將全部紀錄做排序。 平均值、標準差、搜尋、排序,是資料統計分析最基本的運算,在pandas裡面,都可以用簡單的指令快速處理。所以有人就把pandas,比喻為Python裡面的Excel。 在DOS作業系統時代,銷量最大的試算表Lotus 1-2-3,幾乎壟斷了IBM相容電腦市場,後來IBM乾脆花天價買下此產品,引發各界議論。但如前文提到的,微軟參與蘋果麥金塔的開發,取得圖形化介面的先機,讓Excel得以蠶食視窗作業系統市場,最終迫使IBM Lotus 1-2-3於2013年停產。 個人電腦試算表原本就存在有強勁的市場需求,早在蘋果電腦Apple 2推出時,上面就搭售廣受歡迎的VisiCalc,在記憶體有限的年代,它充分利用每一位元之精妙,宛若在雕琢藝術珍品一般。但市場競爭太激烈,這個產品風光了五、六年,在摩爾定律奏效之後,就被Lotus 1-2-3大幅超越了。 圖2-4-4. VisiCalc在Apple 2螢幕上的編輯畫面,它是品項數目乘以單價加總後再課稅的運算。

進階語法之4~資料處理模組 Read More »

進階語法之3~物件與視窗

2-3:物件與視窗 我們每天接觸電腦,在處理檔案資料夾的時候,習慣用滑鼠點選圖示或選單,來進行開啟、複製、貼上、刪除等動作,這種視窗操作設計,稱之為「圖形化使用者介面」(Graphical User Interface, GUI)。 早期DOS(Disk Operating System)作業系統時代,那些複製、刪除的動作,都要一行一行輸入英文指令來執行,十分費事,又容易出錯。圖形化介面的出現,是技術上相當大的進步,讓操作電腦變得十分直覺, 執行Python程式,如果只能在特定軟體中得到輸出,其實用性會有所侷限。但它其實是可以做成視窗面板的形式,再轉換成.exe執行檔,在Windows作業系統中直接開啟使用。 上圖中,第2行匯入製作視窗的模組tkinter,並簡化其命名為tk。第3行取用tk中的面板類別Tk,建立一個面板物件win,接著再取用win物件的各個函式,在第4~6行設定其外觀,後執行mainloop( )指令得到的結果,就是上圖下方500×300像素的青色面板。 下圖是完整程式執行後得到的視窗面板,它是用按鈕、文字方塊、選項鈕等元件,顯示「天增歲月人增壽」的下聯,以及顯示台南、高雄、嘉義的景點。這視窗只要再經過pyinstaller模組的打包,就可以在一般Windows電腦開啟執行了。 視窗作業系統,其發展過程風風雨雨,有牽涉到兩家電腦巨擘,蘋果和微軟。他們GUI的技術,都是源自於全錄公司(Xerox)位於加州帕洛奧圖的研究中心,全名為「Palo Alto Research Center」,簡稱PARC,該中心在個人電腦發展過程貢獻良多。 有部影集叫「Pirates of Silicon Valley」(矽谷海盜群),就是在描述賈伯斯和比爾蓋茲之間,既生瑜何生亮的複雜情結。他們本是大哥帶小弟的關係,但微軟參與蘋果技術開發取得視窗訣竅,後來甚至從PARC直接挖角人才,建立自己的Windows作業系統,導致彼此反目,片中有一段精采的交鋒。 比爾蓋茲認為他和賈伯斯沒有兩樣,都好比是從有錢人鄰居Xerox夜不閉戶的住宅中,偷竊到人家的電視機,不管誰先來後到,兩人扮演的,都是竊賊的角色。 比爾蓋茲的說法其實是相當有問題的。當蘋果公司營業上億時,微軟每年營收不過八百萬美金,而且其中有一半,是來自搭配於蘋果麥金塔電腦的Word、Excel。最重要的,當時全錄公司有投資蘋果一百萬美金,所以賈伯斯才有機會進入PARC參觀。 蘋果在Sculley執行長任內,曾對微軟提起訴訟但敗訴。賈伯斯二度回鍋蘋果之後,本可以其掌握的第一手資料重擊微軟,但他是個惜才的人,他只要求比爾蓋茲投資蘋果一億美金,藉此讓外界瞭解,蘋果的技術遠較微軟優異。 相同的劇情,在手機世代又重演一次,但賈伯斯這次真的生氣了。他痛斥Google的Android作業系統,是剽竊自iOS的垃圾產品,並將Google在蘋果的一席董事Schmidt,於2006年逐出董事會。

進階語法之3~物件與視窗 Read More »

進階語法之2~物件與遊戲

2-2:物件與遊戲 在個人電腦興盛之前,一般人常玩的電子遊戲機有幾款熱門的機型,包括賽車遊戲、太空大戰,以及乒乓球遊戲等,深受美國社會各階層歡迎。 設計這些電玩遊戲的工程師技藝高超,不需要寫一行程式碼,光憑電子電路,就可以做出令人廢寢忘食的電子遊戲。在這當中,乒乓球遊戲的發展過程,特別具有戲劇性。 當時矽谷的傳奇電玩公司雅達利(Atari),其老闆布許聶爾在商展的電視遊樂器中,發現了一款乒乓球遊戲,沒有音效、沒有計分,而且球還是正方形的,卻居然有不少人喜歡玩。於是他把它改良後再推出,想不到一炮而紅。 可這種遊戲有個小缺點,就是必須要有兩個人一起玩才行。但很多電玩怪咖都是獨來獨往的,有迫切需要再開發一套個人版來滿足這些人,所以更加傳奇的蘋果電腦創業夥伴,賈伯斯和渥茲尼克這時候粉墨登場了。這哥倆好肩負起重責大任,而且還真的不辱使命,打造出來的個人版乒乓球遊戲,正就是後來大家熟悉的”打磚塊”。 打磚塊這個遊戲,一直到個人電腦普及後,仍舊深受歡迎。在程式設計上面,也很適合拿它來說明物件與類別的建立與使用。 https://mobile-learning-testing.com/wp-content/uploads/2024/10/Clipchamp7.mp4 提起蘋果創辦人賈伯斯,他的生平事蹟真的三天三夜也講不完,但他極浪漫的一面倒是鮮為人知。 他很崇拜美國歌手Bob Dylan,崇拜到竟然追求其前妻,另一位知名歌手Joan Baez,女方大他十幾歲,兩人還一度論及婚嫁。Bob Dylan後來以歌詞上的創作,獲得諾貝爾文學獎。 Joan Baez則以其感傷又具人文關懷的歌聲,撫慰了多少在外求學就業的年輕心靈,尤其一首”Five hundred miles away from home“,更是娓娓訴說了離鄉背井的無奈與難捨。 電腦遊戲,在迷你電腦時代,為程式設計的發展,製造了推波助瀾的效果。迷你電腦或稱小型電腦(minicomputer),它的體積並不特別小,而是介於大型電腦和個人電腦之間,迪吉多公司的PDP-8是其中的代表性產品。 當年創立Artificial Intelligence一詞的先驅,達特茅斯學院的助理教授麥卡錫,後來跳槽至麻省理工學院建立人工智慧實驗室,他和另一位AI要角閔斯基,兩人旗下聰明又愛搞怪的徒子徒孫們,用PDP-1設計出太空大戰電腦遊戲,並在其他電腦中心流行起來,且各方狂熱開始欲罷不能。搞到後來,迪吉多公司每次要出貨電腦前,一定要先把太空大戰安裝在PDP內,以滿足不同顧客的共同「需求」。 網際網路的發展也有類似的情節,它一開始也是使用迷你電腦來處理介面訊息,當時主要功能是在傳遞電子郵件,後來到傳遞圖片甚至影片的階段,頻寬的需求就越來越多。當一些電腦宅男高手,開始在傳送色情圖片影片的時候,各種擴充頻寬的技巧,更是一發不可收拾。 圖2-2-4. 第一代電腦遊戲Spacewar,使用PDP-1設計。

進階語法之2~物件與遊戲 Read More »

進階語法之1~物件與類別

2-1:物件與類別 類別(class)和物件(object),這兩者是緊密相關連的,在進階一點的程式碼中,不時可看到其活躍的身影。 類別是一種複合式的資料型態,裡面可包含有數種屬性,以及處理這些屬性的函式;物件就是變數,只不過其資料型態為某種類別,此類別的屬性值一旦被指定,物件即在當時被建立完成,一個類別可以建立許多類似的物件。 我們以下列的程式碼,來說明這看似莫測高深的名詞,其實可以很直覺的來理解它。 在上圖第1~3行中,等號 = 的左手邊是變數名稱,右邊是變數值。由變數值可以看得出來,變數name的資料型態是字串(str),height的資料型態是整數(int),而weight的資料型態是浮點數(float)。 第4行等號左邊的bigball,和第5行的smallball,看起來也像是變數,但等號右邊的ball(50)、ball(25),實在看不出來是甚麼資料型態。 在這裡,我們刻意將ball的資料型態設定為類別,在主程式之前就應該先幫它做好定義,所以變數bigball、smallball,就是指定不同屬性值50、25給ball的類似物件。 在上圖中,我們用關鍵字class定義一個圓形類別ball,裡面用def宣告三個函式。 第一個函式_ _init_ _必然要存在,它叫做建構子,負責在建立物件時,將傳遞過來的變數值,指定成為自己的屬性值。在此做這個動作的,就是第3行的self . rad=rad,其中self是物件自己,它用點運算符 . 來連結其半徑屬性rad。等號右邊的rad,即將承接由第10、11行傳來的50、25。 第二個函式area(self),其功能是使用半徑屬性self.rad,來計算該圓形物件面積。因為self就是物件自己,所以不需要再另外傳遞參數給它。 第三個函式draw(self,x,y,a,b,c),是要將此圓形物件繪製出來,所以必須傳遞其位置座標x,y,以及圓形顏色的三個灰階值a,b,c給它。 接著,主程式在第10行指定半徑值50給類別ball,以建立一個大的圓形物件bigball;並在第11行指定半徑值25給類別ball,建立另一個小的圓形物件smallball。 上圖是定義類別、建立物件、呼叫物件函式的完整過程。主程式中第12行、15行,物件是經由點運算符來取用計算圓面積的函式area;第13行、16行函式draw繪圖的結果,出現在上圖右上及右下。 圓的半徑大小是在建立物件時就指定的,是不宜再頻繁改變了;但其位置和顏色的值是在呼叫繪圖函式時,才傳遞給它,卻是可以再視情況調整的。請注意這兩者的區別。 這個章節,我們先探討物件的建立及其含義,下一次就可以用它來設計複雜一點的電腦遊戲了。屆時將可發現,很多遊戲中的角色和物體的重複建立,使用的多是物件類別的技巧。

進階語法之1~物件與類別 Read More »

多益文法與字彙之5~分詞構句

2-5:分詞構句 讀高中上到「分詞構句」這個章節的時候,英文老師告訴我們說,有位學長考取大學之後,因為懂得活用分詞構句來寫作,獲得了教授的讚賞。老師的意思是在強調,即使上了大學,能夠善用高中進階文法的人,其實並不很多。 分詞構句可以用其所省略的連接詞來分類。連接詞分對等連接詞和從屬連接詞,前者包括and、or….等,通常放在句子中間;後者有although, because, when….等,可視情況將其放在句首或句中。 對等連接詞的情況比較單純,如下例所示,「John stood on the street and waited for a taxi.」,兩個動詞stood、waited,經由and共用一個主詞John,可將其改成分詞構句「John stood on the street, waiting for a taxi.」,前一個動作的目的,有點是在引導下一個動作。 從屬連接詞所引導的句子稱為副詞子句,大多是在句首做轉換,例如「When I walked along the river, I met an old friend .」,可省略連接詞和主詞轉換成現在分詞片語,改成「Walking along the river, I met an old friend .」。 被動語態的副詞子句,如「Because John was hit by a car, he looked very uncomfortable.」,可保留過去分詞片語,改為「Hit by a car, John looked very uncomfortable.」。 句子變長了,一定會引用到連接詞和代名詞,適當使用分詞片語取代,可以讓句子結構變精簡,口語表達也更能強調重點。 以前在大同技術學院教書的時候,有個夜間部年齡稍長的同學跑來旁聽英文,那位女生在課堂上告訴我,說她高職上英文課的時候,只要校長在巡堂當中,有看到老師把黑板寫滿,那堂課就皆大歡喜了。 她在同學面前談到這件事情,語氣雖和緩但情緒是波動的,對於還有心想再學習的人來說,那種情況真是糟透了。 不要小看學生的潛能,只要耐心足夠且適當引導,高職生還有很大的成長空間。他們隨著年齡漸增,理解力會慢慢提升,原先生吞活剝、死記強背的東西,開始會比較清楚它背後的涵義。 但就是不要一直教授新的、複雜的內容,打擊學生的信心。若能適時的放緩腳步,將基本的東西反覆熟練,同學也會越來越開竅的。

多益文法與字彙之5~分詞構句 Read More »

多益文法與字彙之4~假設語氣

2-4:假設語氣 我們上了高中才會開始學假設語氣,因為它結合不同的時態有不同的句型,並不很好掌握。因此我們在這部份,也只討論現在式和過去式兩種,這是最常出現的時態。 「If I knew Quantum Mechanics, I could teach in the college.」這是和現在事實相反的假設語氣,表示我不懂量子力學,所以無法在學院教書。 「If I had known Quantum Mechanics, I could have taught in the college.」這是和過去事實相反的假設語氣,表示我以前不懂量子力學,所以並沒有在學院教過書。 在過去式假設語氣中,包含了第一個子句過去完成式,和第二個子句現在完成式,通常比較會出現在文字敘述中,在口語上,很少人這樣講,因為文謅謅又囉嗦。 對話中常出現的情境,多半是用第二個子句就好,語意常是用來表達檢討、懊惱、後悔等情緒。例如「You should have left your house earlier this morning.」,「I could have won the gold medal.」,這樣的句型,在日常聊天的時候,幾乎都可脫口而出。 描述臉書發跡過程的影片「社群網戰」,中間有一場戲,是賈斯汀飾演的Sean Park,用”房間有蛇”嚇唬他女友「格雷女郎」,從浴室衝出來的橋段。 女友抱怨他,「I could have been killed, …..by running too fast and getting twisted in

多益文法與字彙之4~假設語氣 Read More »

Shopping Cart