• 沒有找到結果。

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第三章 實作

首先簡短介紹本文使用的文集。《紅樓夢》又稱《石頭記》,是作者曹雪芹

(1715—1763)[11]撰於清乾隆年間的長篇章回小說,全書總回數有一百二十回。

文壇上曾對《紅樓夢》最後四十個章回的作者有爭議,有一說是曹本人所寫但遺 失之後,被程偉元與高鶚找到殘稿並綴補完成;也有一說是完全由高與程二人續 寫,胡適即為這種說法的支持者[12]。不過即使有爭議,前後段章節的寫作風格 仍被認為極為相似。本研究假設全文的用字遣詞風格一致,不考慮不同作者對斷 詞的影響。

《紅樓夢》的主角是賈寶玉其餘配角多為女性,書中有賈家、薛家、王家與 史家四大家,彼此因為婚姻或其他關係結合在一塊,形成以賈家為首的龐大且顯 赫的貴族。全書主要描寫大觀園內的生活故事,主配角間的情愛關係,及這一貴 族的興衰。《紅樓夢》最大的特色是角色眾多,四大家族內的主僕就達到四百餘 人,總人物數也有七百餘人。全書文言文、詩句與白話文交雜,對本斷詞方法來 說是種挑戰,因為不同文體的組成模式不同,可能影響詞彙使用機率的估計值。

紅樓夢已成書四百年,幾經流傳不免有不同版本,本研究採用《紅樓夢》版 本來自維基文庫(https://zh.wikisource.org/zh-hant/紅樓夢),共有 73 萬字

(不含句讀),約 11 萬句(文本),使用約 4,500 個不同中文字。

本研究使用電腦機型為 2018 Apple Macbook Pro 配備 2.3GHz CPU 與 8-GB RAM。三個方法的參數設定與套件來源如下:SeqWORDS 使用的參數為𝜏` = 10、𝜏a =

3、𝛿& = 10𝑒 − 10、𝛿( = 10𝑒 − 10、𝜆 = 0.1;TopWORDS 斷詞套件來自 Feng Qian

(https://github.com/qf6101/topwords),參數設定詞彙出現頻率不低於 3 次、

詞 彙 使 用 機 率 不 低 於 1e-8 ; Jieba 斷 詞 套 件 來 自 fxsjy

(https://github.com/fxsjy/jieba),使用精確模式。表一列出各方法的運算時 間以及斷詞統計數量。SeqWORDS 方法耗時約 26 分鐘,運算時間是三個方法中最 長的,SeqWORDS 在文集中共放置約 46 萬個斷詞間隔,間隔與標點符號共斷出約

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

57 萬個詞彙,是三個方法中斷出最多詞彙數,但也產生最少不同詞彙種類(約 1.3 萬個不同詞彙)。相對地,TopWORDS 共放置約 24 萬個斷詞間隔,斷出約 35 萬個 詞彙,是三個方法中斷出最少詞彙量的,而不同詞彙數有約 4.5 萬個,遠超過 SeqWORDS。可見 SeqWORDS 偏好較短的詞彙而 TopWORDS 斷詞的詞彙則偏長。Jieba 的斷詞結果則介於兩方法之間,全文共放置約 35 萬個斷詞間隔,斷出約 46 萬個 詞彙,其中約 5.5 萬個不同詞彙。值得一提的是 Jieba 運算只耗時約 10 秒鐘,

SeqWORDS 則需要大量計算時間,放寬模型假設的代價不小。

紅樓夢雖有七百餘名角色,然而,本研究盡最大努力只搜集到部分名單,其 中四大家族的主僕已盡可能全部網羅,並考慮到角色的字號、綽號或稱謂共有 603 個名字。TopWORDS 與 Jieba 分別在名單中找到 280 與 317 個人名,而 SeqWORDS 只找到 123 個,表現遜於前兩者。兩非監督式方法合力發現的 284 個人名中,有 62 個人名 Jieba 沒有發現到。見表一。

表一:SeqWORDS、TopWORDS 與 Jieba 斷詞後之詞彙數以及運算時間。

斷詞方法 SeqWORDS TopWORDS Jieba 計算時間 26 分鐘 3 分鐘 0.16 分鐘 斷詞間格數 461,237 243,319 352,486

總詞彙數 569,702 350,640 460,951 不同詞彙數 13,157 45,860 55,371

發現人名數 123 280 317

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

彙長度都在一到兩字之間,斷成的語句大致是單字詞彙與 2 字詞彙穿插,大致與 實際中文詞彙相符,但也會有詞彙被截斷得不大合理,斷詞的段落如下:

「王夫人|笑|道,倒|是|你|明白,就|難|為|你|親自|走|一趟|更好,

于是|寶釵|去|了,半日|回來|說,已遣|人|去,赶晚|就|有|回信|

的,明日|一早|去配|也|不|遲,王夫人|自是|喜悅」(紅樓夢第七十 七回),

有些被截斷出的詞彙不大合理,例如已遣、赶晚、去配等等,錯誤的詞彙對 理解文本的幫助不大。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

(a)

(b)

(c)

圖二:(a)SeqWORDS、(b)TopWORDS 與(c)Jieba 斷詞詞彙長度之長條圖。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

在 SeqWORDS 為紅樓夢斷出的 57 萬個詞彙中,約 70%的詞彙都是只有 1 個字 的單字詞彙,僅約 23%的詞彙都是 2 字詞彙。在 TopWORDS 斷出的 35 萬個詞彙 中,3 個字(含)以上的詞彙佔比多達 27%,顯示 TopWORDS 更傾向斷出長的詞彙。

Jieba 斷出的詞彙長度多落在 1 到 2 個字,兩種長度詞彙的數量接近約在 45%上 下,而 3 個字(含)以上的詞彙也有佔 7.5%。見圖三。

SeqWORDS 是基於 TopWORDS 之上嘗試使用更複雜的模型發展出來的方法,在 實作之前,預期兩者的斷詞結果應該要是相似的,但結果卻顯示兩者有著相反的 風格,SeqWORDS 考慮了前後詞彙的關係卻傾向斷出比較短的詞彙,TopWORDS 假 設詞彙之間獨立卻有斷出較長詞彙的趨勢。

SeqWORDS 斷出太多單字詞彙,部分二到三個字的詞彙可能都被截斷了,又

其發現的不同詞彙數與同為非監督式方法的 TopWORDS 相比少了三萬個之多,發 現的人名也不及 TopWORDS 的一半,表示發現詞彙的能力是不佳的。而兩個非監 督式方法在發現名字的部分合力找到 Jieba 沒有找到的 62 個名字,這點顯示了 非監督式方法能夠幫助到監督式方法擴展詞典的能力。

TopWORDS 傾向斷出比較長的詞彙,然而,以白話文而言,四個字以上的詞彙 並不多見,會長達四個字的詞彙可能是成語或俚語;以文言文來說,文言文中三 個字的詞彙就更少見了。SeqWORDS 斷出的詞彙多數只有一個字,如前文,很多詞 彙都被截斷了。雖然 SeqWORDS 斷出的詞彙雖然比較短,但紅樓夢中有很大部分 屬於文言文,所以 SeqWORDS 斷詞的結果不可謂不合理。Jieba 斷詞多屬一或二 個字的詞彙,符合普遍中文詞彙。雖然三個方法斷出長短詞的數量與比例不同,

但詞彙的內容更是評估方法優劣的關鍵,以下我們來探究 SeqWORDS 方法斷詞後 出現頻率較高的非單字詞彙。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

(a)

(b)

(c)

圖三:(a)SeqWORDS、(b)TopWORDS 與(c)Jieba 斷出詞彙長度比例圓餅圖。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

為 了 解 SeqWORDS 斷 詞 後 出 現 頻 率 高 的 非 單 字 詞 彙 , 我 們 在 表 二 列 出 SeqWORDS 結果最常出現的前 100 個非單字詞彙。這 100 個詞彙包含了 20 個人物 名,這些人物大致上是故事的核心人物。包括主角「寶玉」名列第一,與寶玉同 輩的女性有襲人、黛玉與寶釵等等,這些人不只是主角的玩伴,有些甚至是他的 情人。其他還有賈家長輩如賈母、鳳姐與薛姨媽,這些人是另一線劇情的核心。

而其餘詞彙則是稱呼或是小說會用到的常用句式。從這些高頻詞彙來看,

SeqWORDS 斷詞結果並不太差。

我們可以用詞彙雲來對常出現的詞彙做視覺化的呈現,詞彙雲的大小就是代 表詞彙出現的頻率。在圖四是三個方法的詞彙雲圖,三張圖中最大的詞彙雲都是 寶玉,且比較明顯的詞彙大致上是人名與小說會用到的句式。三個方法斷出的高 頻詞彙內容大致相似。

而在詞彙雲中各詞彙的位置是隨機呈現,並不表示詞彙之間的距離遠近關係,

所以為了瞭解詞彙之間的關係,我們接續使用其他工具來探究文章中詞彙之間的 相似性。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

(a)

(b)

(c)

圖四:(a)SeqWORDS、(b)TopWORDS 與(c)Jieba 的詞彙雲。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

經過斷詞,研究人員可進一步探索文本內容,例如文中兩詞彙之關聯性。若 斷詞結果不理想可能會影響到文本詞彙在語意上的關係,從而得到無法解釋的結 果,故這部分將研究經過不同斷詞方法處理後的資料分析之差異。2013 年時 Mi kolov 等人提出詞向量分析工具 Word2vec 方法[13][14]將詞彙以高維度實數向 量表達出來,則兩向量之間的餘弦值就可用來測量兩個相對應詞彙的相似度。我 們的 Word2vec 套件來自 gensim(https://radimrehurek.com/gensim/index.htm l),選用模型是 skip-gram model、設定詞彙向量 100 維。將三種斷詞方法的結 果進行詞向量分析。我們特別針對與「寶玉」最相關的 50 個詞彙,來探究這些 詞彙是否合理、與故事內容是否一致。

將 SeqWORDS 斷詞的結果進行詞向量分析後發現與「寶玉」最相似的前 50 個 詞彙有高達 42 個人名,見表三,其中包括主角的平輩們,如黛玉、襲人、寶釵 等等,與賈府長輩,如鳳姐、賈母、薛姨媽等等。同樣的分析中,TopWORDS 的得 到與寶玉最相近的前 50 個詞彙僅 12 個為非單字詞彙,其中有 5 個人名,見表 四。Jieba 的結果則有 21 個人名與寶玉最相似,是 SeqWORDS 的一半,剩餘的詞 彙多是形容詞與小說中的句式,見表五。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

我們利用主成分分析(principal component analysis, PCA)[15]將 100 維 向量投影到二維平面做視覺化,觀察詞彙之間的關係是否合理。

圖五中三個圖形顯示各方法斷詞後與寶玉最相近的 50 個詞彙向量之相對位 置圖。圖五(a)顯示 SeqWORDS 斷詞後 51 個詞彙之相對位置圖,我們發現與寶 玉較近的盡是與他最親暱的女性,稍遠的族群則是其侍女或是長輩,非人名的名 詞與寶玉距離較遠,與故事內容相符合,故利用 SeqWORDS 斷詞後進行文字探勘 是可行的。而 TopWORDS 的結果中與寶玉相關的詞彙多是常用的單字詞彙,非但 這些詞彙沒有特殊意義,由圖五(b)也無法看出詞彙之間的群集現象,故顯示 此文透過 TopWORDS 的斷詞結果搭配在 Word2vec 上效果並不好。我們在圖五(c) 上可觀察到 Jieba 與 SeqWORDS 有類似的趨勢,但寶玉與所有詞彙皆有相當距離,

而最近的詞彙是與其較親暱的角色,較遠的族群則是非人名的詞彙群。

綜上,雖然與其他兩個方法相比,SeqWORDS 的斷詞結果在有些面向不夠完 善,但 SeqWORDS 斷詞套用到文本探勘工具得到比其他方法更合乎文本內容的結 果,顯示了整體而言 SeqWORDS 斷詞的成果並不差勁,以 SeqWORDS 進行文本探勘 工作是可行的。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

(a)

(b)

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

(c)

圖五:(a)SeqWORDS、(b)TopWORDS 與(c)Jieba 與寶玉最相關的 50 個詞彙 向量利用 PCA 投影的結果。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

相關文件