中文是以「字詞」為意義的單元,在閱讀時,我們下意識地,不是一個字一個字的讀,而是一個詞一個詞的讀,亦既已經先斷好詞了,這樣才理解句子的意義。例如:「電視台獨家報導中研院生化所的新冠疫苗研發已有成效」以上這句話被斷詞成「電視台─獨家─報導─中研院─生化所─的─新冠─疫苗─研發─已─初具─成效」。
一般而言,中文的閱讀者從前後文,斷詞並不困難,雖然有的時候,不同的斷詞方式,有不同的意義,會產生誤解。熟知的例子如:「下雨天留客天天留我不留」不同的斷詞,語意可能完全相反。文字探勘,要電腦幫我們閱讀,首先就得正確的斷詞,斷詞正確與否,會影響其後的分析。斷詞的工具使用上,目前有著多種不同著名的斷詞工具能夠提供使用,分別為以下表所列:
名稱 | 釋出年 | 語言 | 研發單位 |
Jieba 結巴 | 2012 | 簡體與繁體 | Github 開放原始碼協力製成 |
Monpa 罔拍 | 2019 | 繁體 | 臺北醫學大學自然語言處理實驗室 |
NLTK | 2001 | 英文 | 賓夕法尼亞大學電腦與資訊科學系 |
CKIP | 2003 | 繁體 | 臺灣中央研究院中文詞知識庫小組 |
HanLP | 2015 | 簡體 | 自然語義(中國青島)科技有限公司 |
因本書使用之教學範例資料為中國共產黨的官方媒體-《人民日報》,其主要語言以簡體中文為主,經過比較最終選用結巴(Jieba)套件來針對本文當中的主要斷詞系統,因為效果最好。
《人民日報》本身媒體分類上有分為國內版及海外版,針對不同的族群有著不同的報導內容,而其兩者版本上又分為電子網站及實體報紙。本書所使用的《人民日報》資料為國內的官方報紙版本,從人民日報創報1946年之資料至2022年本書截稿,有著百萬筆非常龐大的資料內容。
由於人民日報資訊龐大,處理斷詞頗費時間。我們事先將所有的文章都斷詞好,儲存於Google Drive,資料夾colab>people>jieba中 , 一個年度一個檔案,以excel 格式儲存,大家只要點選下面聯結,即可看到原始文本與斷詞的結果,以及其他其本資訊https://drive.google.com/drive/folders/17I0SBaQzTOwRqQV_R3Q0y0yMhbQZbx4P?usp=share_link 本書後續各章的學習包,均會直接讀取斷好詞的檔案,以節省時間。另外,
原始檔案存於(colab>people>excel)資料夾當中,以備不時之需。
已經斷好詞的excel 檔的欄位如下:
欄位名稱 | 說明 |
filename | 檔名,一則報導一個檔,檔名不重覆 |
corpus | 年份 |
timeseq_not_before | 年月日 |
era | 年月 |
compilation_vol | 版次 |
docclass | (暫時沒用到) |
doctype | (暫時沒用到) |
compilation_name | 來源 |
author | 作者,人名 |
title | 標題 |
doc_content | 內文 |
token* | 斷詞好的文本,空白隔開的字串 |
pos* | 詞性標記,名詞、動詞、人名、地名等 |
tfidf* | tfidf 方法萃取關鍵字,逗點隔開的字串 |
textrank* | textrank 方法萃取關鍵字,逗點隔開的字串 |
tfidf_weight* | 關鍵字的權數,愈大表示愈重要 |
textrank_weight* | 權數字的權數,愈大表示愈重要 |
加 * 為斷詞後新增的欄位。
本學習包則介紹斷詞的方法,包括資料清理、自訂詞彙、斷詞、詞性、萃取關鍵字,以及製作成dataframe的方法。爾後讀者亦可依據自己需要自行斷詞,要注意的是doc_content欄是未斷詞的原始文本,大家可以比對斷詞的正確性。
現在請大家打開學習包,進入 colab 模式:
(進入聯結頁面後請按上方中央的「使用 google colaboratory 開啟」鍵)