Dies ist eine Modellbibliothek, die ich basierend auf Meelfys Pytorch_Pretrained_bert -Bibliothek teilweise angepasst und modifiziert habe.
Die ursprüngliche Absicht dieses Projekts ist es, die Bequemlichkeit persönlicher Experimente zu befriedigen, sodass es nicht häufig aktualisiert wird.
Installieren:
pip install torchKbertFür typische Verwendungsbeispiele finden Sie im offiziellen Beispielverzeichnis.
Wenn Sie eine hierarchische Zerlegungspositionscodierung verwenden möchten, damit Bert einen langen Text verarbeiten kann, übergeben Sie einfach den Parameter is_hierarchical=True im model . Beispiele sind wie folgt:
model = BertModel(config)
encoder_outputs, _ = model(input_ids, token_ids, input_mask, is_hierarchical=True)
Wenn Sie den chinesischen Wobert basierend auf Wortgranularität verwenden möchten, geben Sie einfach neue Parameter ein, wenn Sie das BertTokenizer -Objekt erstellen:
from torchKbert.tokenization import BertTokenizer
tokenizer = BertTokenizer(
vocab_file=vocab_path,
pre_tokenizer=lambda s: jieba.cut(s, HMM=False))
Wenn nicht eingegeben wird, ist der Standard None . Bei Beteiligten ist die Standardeinstellung als Wörter zu verwenden. Wenn Sie die Verwendung von Word -Einheiten wiederherstellen möchten, geben Sie einfach den neuen Parameter pre_tokenize=False ab, wenn tokenize :
tokenzier.tokenize(text, pre_tokenize=False)
Ich habe schon einmal Pytorch_Petretrained_bert in Meelfy geschrieben, und es ist sehr bequem, vorbereitete Modelle anzurufen oder eine Feinabstimmung durchzuführen. Später wollte ich aufgrund persönlicher Bedürfnisse eine Version neu schreiben, die die hierarchische Zerlegungspositionskodierung unterstützt.
Sushens Bert4keras hat eine solche Funktion implementiert. Aber weil ich es gewohnt bin, Pytorch zu verwenden, habe ich schon lange Keras nicht mehr benutzt, also habe ich vor, selbst einen umzuschreiben.