torchKbert
1.0.0
這是筆者基於Meelfy 的pytorch_pretrained_BERT 庫進行部分定制化修改的模型庫。
本項目的初衷是為了滿足個人實驗的方便,因此不會經常更新。
安裝:
pip install torchKbert典型的使用例子請參考官方examples 目錄。
若想使用層次分解位置編碼,使BERT 可以處理長文本,在model中傳入參數is_hierarchical=True即可。示例如下:
model = BertModel(config)
encoder_outputs, _ = model(input_ids, token_ids, input_mask, is_hierarchical=True)
若想使用基於詞顆粒度的中文WoBERT,只需在構建BertTokenizer對象時傳入新參數:
from torchKbert.tokenization import BertTokenizer
tokenizer = BertTokenizer(
vocab_file=vocab_path,
pre_tokenizer=lambda s: jieba.cut(s, HMM=False))
不傳入時,默認為None 。分詞時默認以詞為單位,若想恢復使用以字為單位,只需在tokenize時傳入新參數pre_tokenize=False :
tokenzier.tokenize(text, pre_tokenize=False)
之前一直在用Meelfy 編寫的pytorch_pretrained_BERT,調用預訓練模型或進行微調已經十分方便。後來因個人的需求,所以就想改寫一個支持層次分解位置編碼的版本。
蘇神的bert4keras 已經實現了這樣的功能。但因個人慣於使用pytorch,已經很久不用keras 了,所以才打算自己改寫一個。