機器之心轉載
機器之心編輯部
fastHan 是基於 fastNLP 與 PyTorch 實現的中文自然語言處理工具,像 spacy 一樣調用方便,其內核為基於 BERT 的聯合模型。
簡介
fastHan 是基於 fastNLP 與 PyTorch 實現的中文自然語言處理工具,像 spacy 一樣調用方便。其內核為基於 BERT 的聯合模型,其在 13 個語料庫中進行訓練,可處理中文分詞、詞性標註、依存句法分析、命名實體識別四項任務。
fastHan 共有 base 與 large 兩個版本,分別利用 BERT 的前四層與前八層。base 版本在總參數量 150MB 的情況下各項任務均有不錯表現,large 版本則接近甚至超越 SOTA 模型。
項目地址:https://github.com/fastnlp/fastHan
安裝
fastHan 的安裝非常簡便。它存在如下包的依賴:
fastNLP>=0.5.0
pytorch>=1.0.0
執行指令 pip install fastHan 即可安裝。
使用
fastHan 的使用非常簡單,只需要兩步:加載模型、輸入句子。
加載模型
執行以下代碼即可加載模型:
用戶首次初始化模型時模塊將自動從伺服器下載參數。模型默認初始化 base 版本,可修改 model_type 參數值為』large』加載 large 版本。
輸入句子
輸入模型的可以是單獨的字符串,也可是由字符串組成的列表。如果輸入的是列表,模型將一次性處理所有輸入的字符串,所以請自行控制 batch size。模型對句子進行依存分析、命名實體識別的簡單例子如下:
其中,target 參數可在 'Parsing'、'CWS'、'POS'、'NER' 四個選項中取值,模型將分別進行依存分析、分詞、詞性標註、命名實體識別任務, 模型默認進行 CWS 任務。其中詞性標註任務包含了分詞的信息,而依存分析任務又包含了詞性標註任務的信息。命名實體識別任務相較其他任務獨立。
模型的輸出是在 fastHan 模塊中定義的 sentence 與 token 類。模型將輸出一個由 sentence 組成的列表,而每個 sentence 又由 token 組成。每個 token 本身代表一個被分好的詞,有 pos、head、head_label、ner 四項屬性,代表了該詞的詞性、依存關係、命名實體識別信息。
如果分別運行 CWS、POS、Parsing 任務,模型輸出的分詞結果等可能存在衝突。如果想獲得不衝突的各類信息,可以直接運行包含全部所需信息的那項任務。
模型的 POS、Parsing 任務均使用 CTB 標籤集。NER 使用 msra 標籤集。
正如上圖所示,模型基礎的使用流程非常簡單。此外,模型還可調整分詞風格、切換設備。
調整分詞風格
模型在 13 個語料庫中進行訓練,其中包含 10 個分詞語料庫。不同語料庫的分詞粒度均不同,如本模型默認的 CTB 語料庫分詞粒度較細。如果想切換不同的粒度,可以使用模型的 set_cws_style 函數,例子如下:
在分詞風格中選擇 'as'、'cityu' 可進行繁體字分詞,這兩項為繁體語料庫。由於各項任務共享詞表、詞嵌入,這意味著即使不切換模型的分詞風格,模型對繁體字也具有執行分詞及其他任務的能力。此外,模型對數字、英文字母也具有一定的識別能力。
切換設備
可使用模型的 set_device 函數,令模型在 cuda 上運行或切換回 cpu,示例如下:
模型表現
模型在以下數據集進行測試和訓練:
CWS:AS、CITYU、CNC、CTB、MSR、PKU、SXU、UDC、WTB、ZX
NER:MSRA、OntoNotes
POS & Parsing:CTB9
註:模型在訓練 NER OntoNotes 時將其標籤集轉換為與 MSRA 一致。
最終模型在各項任務中取得的 F 值如下:
表格中單位為百分數。CWS 的成績是 10 項任務的平均成績。Parsing 中的兩個成績分別代表 F_{ldep} 和 F_{udep}。SOTA 模型的數據來自筆者對網上資料及論文的查閱,如有缺漏請指正,不勝感激。這五項 SOTA 表現分別來自如下五篇論文:
[1] Huang W, Cheng X, Chen K, et al. Toward Fast and Accurate Neural Chinese Word Segmentation with Multi-Criteria Learning.[J]. arXiv: Computation and Language, 2019.
[2] Hang Yan, Xipeng Qiu, and Xuanjing Huang. "A Graph-based Model for Joint Chinese Word Segmentation and Dependency Parsing." Transactions of the Association for Computational Linguistics 8 (2020): 78-92.
[3] Meng Y, Wu W, Wang F, et al. Glyce: Glyph-vectors for Chinese Character Representations[J]. arXiv: Computation and Language, 2019.
[4] Diao S, Bai J, Song Y, et al. ZEN: Pre-training Chinese Text Encoder Enhanced by N-gram Representations[J]. arXiv: Computation and Language, 2019.
[5] Jie Z, Lu W. Dependency-Guided LSTM-CRF for Named Entity Recognition[C]. international joint conference on natural language processing, 2019: 3860-3870.
更多關於模型結構、模型訓練的信息,未來將在項目網站中進行更新。
知乎連結:https://zhuanlan.zhihu.com/p/147665538?utm_source=wechat_session&utm_medium=social&utm_oi=56560353017856
世界人工智慧大會線上活動(WAIC)是由上海市政府打造的國際頂級人工智慧會議。為進一步促進人工智慧技術與產業相融合,推動開發者技術生態建設,WAIC 2020年黑客馬拉松將於7月9日-11日期間舉辦。
機器之心聯合優必選科技與軟銀機器人公布兩大賽題,邀請全球開發者來戰。更多精彩賽題將於近期公布,歡迎關注。
原標題:《復旦邱錫鵬團隊最新成果fastHan:基於BERT的中文NLP集成工具》
閱讀原文