pip install keras_bert
from keras_bert import tokenizer
#字典token_dict =
# 拆分單詞例項
tokenizer = tokenizer(token_dict)
print(tokenizer.tokenize('unaffable')) # ['[cls]', 'un', '##aff', '##able', '[sep]']
# indices是字對應索引
# segments表示索引對應位置上的字屬於第一句話還是第二句話
# 這裡只有一句話 unaffable,所以segments都是0
indices, segments = tokenizer.encode('unaffable')
print(indices) # [0, 2, 3, 4, 1]
print(segments) # [0, 0, 0, 0, 0]
import os
import codecs
from keras_bert import load_trained_model_from_checkpoint
from keras_bert import tokenizer
import numpy as np
# 設定預訓練模型的路徑
pretrained_path = 'chinese_l-12_h-768_a-12'
config_path = os.path.join(pretrained_path, 'bert_config.json')
checkpoint_path = os.path.join(pretrained_path, 'bert_model.ckpt')
vocab_path = os.path.join(pretrained_path, 'vocab.txt')
# 構建字典
# 也可以用 keras_bert 中的 load_vocabulary() 函式
# 傳入 vocab_path 即可
# from keras_bert import load_vocabulary
# token_dict = load_vocabulary(vocab_path)
token_dict = {}
with codecs.open(vocab_path, 'r', 'utf8') as reader:
for line in reader:
token = line.strip()
token_dict[token] = len(token_dict)
# 載入預訓練模型
model = load_trained_model_from_checkpoint(config_path, checkpoint_path)
tokenizer = tokenizer(token_dict)
text = '語言模型'
tokens = tokenizer.tokenize(text)
# ['[cls]', '語', '言', '模', '型', '[sep]']
參考:
bert實戰--基於keras - 那少年和狗 - www.cnblogs.com
bert中的sep 語言模型 BERT
今天我們想到 nlp 就會想到 bert,在 nlp 領域中 bert 到處屠榜。bert 主要應用於自然語言處理中的預訓練。這裡想說一件有趣的事,就是當下比較火的自然語言處理模型如 elmo 和 bert 都是動畫片芝麻街中角色。那麼什麼是 bert 呢?我們先從字面上解釋一下什麼是 bert。我...
bert中的sep 詳解BERT閱讀理解
bert的簡單回顧 google發布的 pre training of deep bidirectional transformers for language understanding 提到的bert模型重新整理了自然語言處理的11項記錄。算是nlp的里程碑事件,也開始了大公司之間的資料和算力的...
BERT的通俗理解
bert是乙個預訓練的模型,那麼什麼是預訓練呢?舉例子進行簡單的介紹 假設已有a訓練集,先用a對網路進行預訓練,在a任務上學會網路引數,然後儲存以備後用,當來乙個新的任務b,採取相同的網路結構,網路引數初始化的時候可以載入a學習好的引數,其他的高層引數隨機初始化,之後用b任務的訓練資料來訓練網路,當...