一、背景
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')