一、背景
bert是一种基于transformer的结构,也就是比较经典的attention机制,bert的思维导图模型如下所示(其他人总结的):
二、bert使用
使用bert首先需要安装transformers以及bert的模型(可以在安装完bert后使用)
pip install transformers
transformers中的embedding是TFBertEmbedding,这里有一个Bert训练的Embedding,fastNLP,安装指令如下:
pip install fastNLP
除此之外,还有一种新型的封装pytorch和TensorFlow的NLP语言包allennlp
pip install allennlp
下面就会对分词、Embedding进行说明。
2.1 tokenizer
接下来就是直接使用bert
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
tokens = tokenizer.tokenize(text) # 分词
# tokens = list(filter(lambda x: x not in stop_word, tokens))
tokens = tokenizer.convert_tokens_to_ids(tokens) # 转化成id
2.2 Embedding的使用
from fastNLP.embeddings import BertEmbedding
from fastNLP import Vocabulary
from transformers import BertTokenizer
vocab = Vocabulary()
vocab.add_word_lst(tokenizer.vocab)
embed = BertEmbedding(vocab, model_dir_or_name='en-base-cased')
其他的就和通用bert的使用类似。