close

最近開始認真玩Python,雖然基本架構跟其他語言大同小異,但要玩出心得也不是那麼容易。被Python吸引其實是因為NLTK (Natural Language ToolKit)這個套件是建構在Python上的,其實就是用在自然語言處理。我的專業雖然不在此,但興趣一直都在的。小學生到底要學多少漢字?哪些是常用漢字?哪些是罕用漢字?一個成人生活上要用到多少漢字?就因為漢字無所不在,這樣的問題一直困擾著我。雖然從語言學的角度,漢字不是語言的基本單位,鄭錦全老師也說「詞涯八千」而非「字涯八千」,我還是認為漢字的定量研究非常重要。

研究漢字,不是要贊同漢字本位,反而是要破除迷思。活在漢字圈中,我們常常遇到「這個字怎麼唸?」的問題,至於這個字日常生活會不會用則不是那麼重要。有些字或許從小到大沒見過,或許只出現在康熙字典。研究這些罕見字的讀音,當然有其趣味,但這個趣味或許可以當作傳統漢學研究或是茶餘飯後的題材,而不用放到正規教育中。我有一個很極端的原則:「只要這個字我不會唸,它就是不重要的。」當然我不會唸不代表其他人也不會唸,但是不同人之間的差異,並不重要。重要的是,一個字如果在一個語言社群(linguistic community)中的大多數人都不認識,的確沒啥實用性,則學習這個字的唸法,就沒實用上的意義了。(註一)

日本於1946年公布當用漢字表,共計1850字。這個措施試圖對漢字的使用,做出限制。當然,對漢字做出限制,多少會影響到文化的傳承,但這就必須與語言的工具性取得平衡。語言是載體,也是工具,不過也有人把它當遺產,或是神主牌。不同的態度會產生不同的想法,不同的想法會產生爭論,爭論在沒有風度的人來說,就會產生衝突或是肢體暴力。這暫且不表。回到日本的當用漢字表,我很好奇的是,台灣自戰後對於語言政策的態度,除了強制性的國語政策外,是否有對漢字做出限制或規範?

我是一個老師,開學前從網路上印下來的學生點名單上總有幾個修課同學的名字出現亂碼或空白,留給我課堂上給同學填補。我一直很好奇,電腦都流行那麼久了,為何父母親在幫小孩取名字的時候不會先在電腦上打打看?後來我想了一下,二十年前雖然有電腦了,但畢竟還不是那麼普遍,自己當年還不是帶著磁片到計中打作業?此外,台灣人特愛算命,取名字也不例外,加上金木水火土五行的考量,最後的結果就是取了一些非常用字的名字。非常用字有兩種,一種電腦打不出來,造成行政人員困擾,另一種電腦打得出來,但不見得唸得出來,造成老師點名的困擾。老師不見得都是國學淵博,卻要在課堂上接受漢字能力考試。以前我還會努力查發音,現在都懶了,就等上課的時候問學生。

回到漢字問題本身,廣泛的漢字包含台灣與香港的正體(繁體)字,中國與新加坡的簡化(簡體)字,以及日本漢字。這些漢字大多數完全一樣,在Unicode中就可以給予同樣的編碼,有些各自語言特有的漢字,如日文「栃木(とちぎ)」是東京北方的一個縣名,第一個漢字是日文特有,因此中文也無法發音,這些漢字當然在Unicode都有自己的編碼。另外有些漢字,在不同語言中看起來很像,但實際上各有各的特殊寫法,所以會有一些false friends(這大概就是郭董說的「魔鬼藏在細節裡」吧!)。(註二) 像是日文的「温」跟中文的「溫」,不仔細看還真看不出不同。這些假朋友當然要給予不同的編碼。因此,Unicode基本上解決了不同字體(正體字、簡化字、日文漢字)在同一文件當中呈現的問題。

再回到Python,原來我是在Python 2.6當中執行NLTK的,這個版本對於Unicode的支援還不完整,因此雖然Python提供了一些轉換函式,但用了幾次後我就放棄了,因為這又牽涉到作業系統編碼,終端機編碼等問題。後來因緣際會,跑去裝了Python 3.1,沒想到所有Unicode的問題迎刃而解,因為Python 3可以說是Unicode-native,不論是漢字或是英文字母或數字,都視為一樣的符號,用len()去計算string或list的長度時,直接給你正確答案。總算找到處理漢字的理想環境了。(從漢字的角度來看,應該說:第一次有被尊重的感覺。)

不過可惜的是,兩個版本的Python沒有backward compatibility。因此,目前兩個版本並存且同時維護。也因此,NLTK只適用於Python 2,Python 3上面無法使用。有一好沒兩好,但兩個問題比較起來,Unicode比較困擾我,所以當然是跳到Python 3,自己寫些簡單的函式來處理問題囉!

註一:語言社群(linguistic community)是一個社會語言學術語,指一群分享相同語言特徵如詞彙/語音/語法等的人的組合。語言社群假設內部是均質(homogeneous)的,但很明顯地,這個假設過度簡化。台灣是一個語言社群,這個語言社群的主要語言是華語,但跟同樣以華語為主的中國有所區別,台灣的語言社群所使用的語言包含了漢語(特別是河洛語、客語)成分、南島語成分,以及日語成分。以語言社群來指台灣相信比較沒有爭議,特別當使用國家來稱呼台灣時,有些人會跳腳。

註二:false friends,法語faux amis,指的是兩個語言中,看起來或聽起來相似,但卻意義不同的兩個詞。這兩個語言可以是有血緣關係的語言如英語與德語,英語的gift,跟德語的Gift是false friends,前者是「禮物、天賦」之意,後者是「毒藥」之意。這個詞也可以用在無血緣關係(但是有鄰居關係)的語言如漢語與日語,中文的「勉強」跟日文的「勉強(べんきょう)」看起來很像,意義卻風馬牛不相及,也是false friends的例子。不過此處講的比較像是「異體字」,然而異體字一般是指同一個語言當中的類似字形,但此處牽涉到兩個不同的語言,因此還是用false friends稱之。

arrow
arrow
    全站熱搜

    hambao 發表在 痞客邦 留言(0) 人氣()