bert中的sep keras bert的簡單使用

2021-10-14 00:01:15 字數 2220 閱讀 8744

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任務的訓練資料來訓練網路,當...