BERT(Bidirectional Encoder Representations from Transformers)是一种预训练语言表示模型,在自然语言处理领域取得了显著的成果。以下是一些在 Python 中实现 BERT 的示例。

示例 1:使用 Hugging Face 的 Transformers 库

Hugging Face 提供了一个名为 transformers 的库,可以方便地使用 BERT 模型。

from transformers import BertTokenizer, BertModel

# 初始化分词器和模型
tokenizer = BertTokenizer.from_pretrained('bert-base-chinese')
model = BertModel.from_pretrained('bert-base-chinese')

# 加载文本
text = "BERT 是一种预训练语言表示模型。"

# 分词
tokens = tokenizer(text, return_tensors='pt')

# 传递给模型
outputs = model(**tokens)

# 获取输出
last_hidden_states = outputs.last_hidden_state

示例 2:使用 TensorFlow 的 Keras

TensorFlow 也提供了 BERT 模型的实现。

from tensorflow.keras.layers import Input, Embedding, GlobalAveragePooling1D, Dense
from transformers import TFBertModel

# 初始化模型
bert = TFBertModel.from_pretrained('bert-base-chinese')

# 创建输入层
input_ids = Input(shape=(None,), dtype='int32')
attention_mask = Input(shape=(None,), dtype='int32')

# 获取 BERT 模型的输出
outputs = bert(input_ids, attention_mask=attention_mask)

# 创建全连接层
output = GlobalAveragePooling1D()(outputs.last_hidden_state)
output = Dense(1, activation='sigmoid')(output)

# 创建模型
model = Model(inputs=[input_ids, attention_mask], outputs=output)

# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

扩展阅读

更多关于 BERT 的信息,可以参考以下链接:

BERT 模型结构图