跳到主要內容

Concise's Anatomy: MMSeg中文分詞


這些天一直在弄Concise中一項相當重要,卻又相當麻煩的功能——中文分詞。

在西方主導的語言學當中,單詞是語言的基本單位。英文、法文、德文等西方語言中的單詞多能以空格作為邊界來區分;但是熟悉中文的使用者都知道,在中文的書寫系統中,並不存在這種邊界。每個中文字、每個漢字都可能是一個單詞,甚至同樣的排列,依據不同的語氣來閱讀,會有不同的意思。從前在國中時,最常被拿來開玩笑的就是徐志摩的那句「數大便是美」,究竟是「數 | 大 | 便是 | 美」?或是「數 | 大便 | 是 | 美」?兩者的意思差了十萬八千里。



這個狀況讓我們在開始使用Concise之前就遇到了困境。那麼,到底怎麼樣算是一個單詞?這涉及中文分詞的技術。截至目前為止,還沒有研究團隊宣稱能完全掌握中文分詞,我只能夠從現有的幾個選擇中選出一個比較能接受的。

之前的Concise,我寫了一個介面連結到Yahoo的斷章取義,以及中央研究院的中文斷詞小組,借用遠端的服務來轉換成Concise的格式。這個方法是可行的,但是有一些限制在。首先,兩個系統都看不到分詞的過程是怎麼進行的,沒有詳細的演算法,就算對結果不滿意,也只能從傳回的資料再去想辦法。此外,對於多數研究要使用的專門語料庫,這兩個系統的API沒辦法載入外部的詞典。

為了處理這些東西,我決定找一個可用的分詞演算法,直接嵌入Concise當中。MMSeg成了我的選擇。如果你用C語言在寫程式,可以直接從演算法下方下載C語言的程式碼。至於Concise使用的Java,則可以從mmseg4j下手。

MMSeg的原理很簡單,先把文章斷成句子,再從句子裡頭去切分單詞。它的運作仰賴四個規則:

規則1:最大匹配。
規則2:最大平均單詞長度。
規則3:單詞長度的最小方差。
規則4:單字單詞的語素自由度的最大和。

詳細的介紹請看MMSeg的官方介紹,或自行下載程式碼看實際的運作過程。

MMSeg4j的另一個特點,就是能載入自訂的詞庫,比起泛用型的中文分詞服務,應當更適合專注於特殊領域的研究使用。原本內嵌於mmseg4j的辭典是搜狗(sogou)從網路環境擷取的,用在簡體中文的語境中好像滿OK的。但是用在繁體的語境,特別是台灣的中文語境當中,分詞好像怪怪的。於是我把裡面的字頻檔char.dic和辭典words.dic換成教育部所公佈的字頻和詞頻表。換過之後,好像好多了。不過還是不夠理想,比方說,名字似乎沒辦法辨識。最大的要素應當是教育部所收錄的常用單詞太少了,之後得增加一些詞庫來使用。

這個功能目前還在測試中,將會在下一個版本中嵌入。

留言

熱門文章

窺探洋蔥的秘密:顯微鏡下的洋蔥鱗葉表皮與細胞 Onion Bulb Leaf under a microscope

在這段嘗試使用顯微鏡來拍攝的期間,「洋蔥表皮」可以說是最容易製作的玻片標本,沒有之一。只要剝開來,攤平,滴上水,蓋上玻片,基本就完事了。怪不得學校的生物課本,都會拿洋蔥表皮來設計實驗。但是想要看到鱗葉的橫切面,那就得要練練刀功,並試試你的運氣了。 洋蔥表皮是比較容易處理的樣本,這次拍攝我們就從撕皮開始。只要不是最外面那層乾掉的表皮,用哪一層都無所謂。我也沒有拿整顆洋蔥,就拿做菜切下來的地方。這樣的大小對於顯微鏡觀察來講,已經相當足夠了。 洋蔥皮剝下來後,放在滴了水的玻片上,再滴一滴水,蓋上蓋玻片。這樣一來,觀察用的玻片標本就完成了。接著放上顯微鏡的載物台,調整鏡頭到適當的高度(大約一公分),然後調整標片標本位置,調整光源,最後再進行細微的對焦,就可以開始你的觀察了! 洋蔥表皮細胞 40x 先用顯微鏡的低倍鏡來看。這架顯微鏡最低的放大倍率是40倍,可以看出洋蔥表皮的排列狀況,而且也很清楚看到表皮有深淺不一的顏色。 洋蔥表皮細胞 100x 放大到100倍,可以看到細胞裡面還有東西。透明一點的細胞會比較清楚,可以看到細胞核。有的除了細胞核外,好像還有其他的東西。 洋蔥表皮細胞 600x 繼續放大到600倍,細胞核變得更明顯了。除此之外,可以看到細胞邊緣有兩層構成。生物課本裡面介紹過,外層的是細胞壁,內層的是細胞膜。然而,在有顏色的細胞中,細胞核就沒有那麼明顯。 洋蔥鱗葉剖面 40x 看過洋蔥表皮,現在把洋蔥的鱗葉做剖面,看看裡面的細胞構成。切了很多片,終於有一片切的比較成功,可以看到上面一層薄薄的紫色表皮。這層紫色表皮就是剛剛看了很久的洋蔥表皮。中間還有帶點綠色的部位,這應該是維管束。 洋蔥鱗葉剖面 600x 直接放大到600倍,可以明顯看出紫色的表皮細胞比較扁平,底下構成洋蔥肉的透明細胞則比較大顆。問題是紫色的花青素好像只集中在表皮而已,底下那些通通沒有。但畫面的右下角,也就是靠近維管束的周邊有綠綠的,移過去看看。 洋蔥鱗葉剖面 600x 靠近維管束 在細胞內可以看到一顆顆綠綠的小球,不知道這些是不是葉綠體,或者只是有綠色色素的有色體。仔細再想想,剝開洋蔥後確實有一條條綠色的紋路,這些綠綠的小球應該就是那些紋路出現的地方。 我能看懂的部分只有這個樣子!如果有哪些高手看到,還請多多指教。

差不多食譜:手工巧克力餅乾 Chocolate Cookies

又是手工餅乾,最近一連出了兩份餅乾食譜,這個「手工巧克力餅乾」已經是第三份了。會不會有更多呢?我可以告訴大家,這是肯定的。 要怪就怪這個陰鬱的冬季雨天,哪裡都不方便去,也懶得出去。餅乾櫃空在那邊已經很久了,雖然有時候會嘴饞,但也沒有迫切去補貨的必要。反正經常開伙,平常該有的材料都會有,自己弄個成分完全透明的零食,也是個不錯的選擇。再說,用烤箱進行烘焙時,房間會變得比較乾燥,也比較溫暖。在夏天是個折磨,但到了冬天,這種感覺還滿不錯的。 話不多說,開始進行這一道「手工巧克力餅乾」的準備工作。

觀音媽.com

期末快到了,大家都深陷於考試與報告的水深火熱之中!我卻突然想起電影《小孩不笨》裡頭的「觀音媽.com」片段。在這個網路化的年代,不僅是資訊要網路化,連神明的符咒都可以網路化。即使遠在太平洋對岸,只要透過網路把符咒印出來,一樣可以「即時」地受到保佑。 請觀音娘娘保庇 觀音娘娘指點 我有一個兒子他在美國念大學 明天就要考試 請觀音娘娘幫幫忙 讓他的考試能順順利利 好 觀音娘娘說 這三張符拿去燒 燒了喝就可以了 等一下你去號面拿一些碎花瓣回家沖涼 給他喝 他現在在美國 怎麼給他喝 要郵寄也來不及了 不用緊張不用緊張 現在很先進了 你知道什麼叫做電腦嗎 電腦 你叫你的兒子去這個網頁 www.guanyinma.com(觀音媽.com) 叫他把在裡面的第三張符 和第八張符印出來 燒了沖水喝就可以了 可以回了 電影《小孩不笨》的「觀音媽.com」這個片段,可能要讓臨時抱佛腳的成語重新定義,或者說,是將神明的神聖性重新看待。在這點上,我覺得沒什麼特定宗教概念的中國人特別能夠接受這點。比起「上帝」這個全知全能的存在,中國「舉頭三尺有神明」的說法顯然要親切的多,因為神明與世人同在。用「觀音媽.com」的例子來看,神明還會用電腦給指示,寺廟或神壇化身為網頁,可以透過網頁中的符咒點選來傳遞神諭。似乎這個「神」就和「人」一樣,活在同一個維度當中。 可惜剛剛查了一下,「www.guanyingma.com」已經被註冊了,連中文的「觀音媽.com」也都沒了,要不然我還真想花些小錢把那個網域名稱買下來,真的去開個「神壇」!搞不好還能去當個「神棍」廟公! 不過威寶電信已經搶先一步用了這個概念,推出「拜媽祖專線」,只要撥打電話,在全世界任何角落都可以向媽祖拜拜。可是和電影《小孩不笨》中的片段比較起來,整體的感覺差很多。看來,還是需要一個專業生動的「廟公」,才能讓神明鮮活起來!