นี่คือห้องสมุดโมเดลที่ฉันได้ปรับแต่งและดัดแปลงบางส่วนตามห้องสมุด Pytorch_pretrained_bert ของ Meelfy
ความตั้งใจดั้งเดิมของโครงการนี้คือการตอบสนองความสะดวกของการทดลองส่วนบุคคลดังนั้นจึงไม่ได้รับการปรับปรุงบ่อยครั้ง
ติดตั้ง:
pip install torchKbertสำหรับตัวอย่างการใช้งานทั่วไปโปรดดูที่ไดเรกทอรีตัวอย่างอย่างเป็นทางการ
หากคุณต้องการใช้การเข้ารหัสตำแหน่งการสลายตัวแบบลำดับชั้นเพื่อให้เบิร์ตสามารถประมวลผลข้อความยาวเพียงแค่ผ่านพารามิเตอร์ is_hierarchical=True ใน model ตัวอย่างมีดังนี้:
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 เมื่อมีการใช้คำเป็นส่วน ๆ ค่าเริ่มต้นจะถูกใช้เป็นคำ หากคุณต้องการกู้คืนการใช้หน่วยคำเพียงแค่ผ่านในพารามิเตอร์ใหม่ pre_tokenize=False เมื่อ tokenize :
tokenzier.tokenize(text, pre_tokenize=False)
ฉันเคยเขียน pytorch_pretrained_bert ใน Meelfy มาก่อนและมันสะดวกมากที่จะเรียกนางแบบ pretrained หรือทำการปรับแต่งอย่างละเอียด ต่อมาเนื่องจากความต้องการส่วนบุคคลฉันต้องการเขียนเวอร์ชันที่รองรับการเข้ารหัสตำแหน่งการสลายตัวแบบลำดับชั้น
Bert4keras ของ Sushen ได้ใช้ฟังก์ชั่นดังกล่าว แต่เนื่องจากฉันคุ้นเคยกับการใช้ Pytorch ฉันไม่ได้ใช้ Keras มานานดังนั้นฉันจึงวางแผนที่จะเขียนใหม่ด้วยตัวเอง