6. 中文斷詞工具:CkipTagger

柯頌竹
Programming with Data
3 min readNov 27, 2020
  • CkipTagger 為台灣中央研究院詞庫小組所開發的 NLP(自然語言處理) 套件,是個以深度學習模型為基礎而成的 NLP(自然語言處理) 應用。 其訓練的文本資料來源為中央社、wiki (用舊版套件先進行斷詞) 及 ASBC(Academia Sinica Balanced Corpus) (為期近 10 年人工標記)。
  • CkipTagger 模型主要的功能有:
  1. WS:斷詞
  2. POS:詞性標注
  3. NER:實體辨識

CkipTagger 優勢

  • 在繁體中文上斷詞與詞性標記的表現進一步提升,並超越結巴系統
  • 結合實體命名:目前 CkipTagger 能辨識 11 類一般領域專有名詞及 7 類數量詞
  • 結合詞性標注
  • 支援使用者自訂 參考/強制 詞典。
  • 支援不限長度的句子。
  • 不會自動 增/刪/改 輸入的文字。

CkipTagger 斷詞技巧

ChipTagger是綜合

Word-level approach

  • Maximum length (長詞優先)
  • 動態規劃查找最大概率路徑(Jieba)

Character-level approach

  • character Sequence Labeling

CkipTagger 則是綜合上面兩種方法,針對 word 及 character 同時進行分析

系統環境安裝

在安裝時通常會同時安裝tensorflow跟gdown一起,指令如下:

pip install -U ckiptagger[tf,gdown]

如果已經有tensorflow跟gdown則可用以下指令:

pip install -U ckiptagger

如果要安裝gpu版tensorflow跟gdown則指令如下:

pip install -U ckiptagger[tfgpu,gdown]

斷詞

要先下載預訓練權重,此模型需2GB的儲存空間

from ckiptagger import data_utils, WS

data_utils.download_data_gdown("./")

接著建構斷詞器,並使用Chiptagger進行斷詞

詞性標注

以 CkipTagger命名實體辨識

定義字典

將自定義字典加入斷詞器中

建構斷詞器

--

--

柯頌竹
Programming with Data

熱愛自由行、參觀各種形式的展覽,踏上過20個國家的領土。歡迎詢問各種在歐洲自由行的問題。偶爾分享一下資料分析的讀書筆記。