如何获取tfhub ALBERT与指定BERT预处理器的词汇表字典或列表
如何获取TF Hub ALBERT及指定BERT预处理器的词汇表
获取ALBERT词汇表
- 从ALBERT对应预处理器层直接提取:官方发布的ALBERT配套预处理器均内置词汇表,运行以下代码即可提取:
import tensorflow_hub as hub # 加载对应版本的ALBERT预处理器 albert_preprocess = hub.KerasLayer("https://tfhub.dev/tensorflow/albert_en_preprocess/3") # 提取词汇表文件路径 albert_vocab_path = albert_preprocess.resolved_object.vocab_file.asset_path.numpy().decode("utf-8") # 读取为词汇列表 with open(albert_vocab_path, "r", encoding="utf-8") as f: albert_vocab_list = [line.strip() for line in f.readlines()] # 如需词汇到索引的映射字典 albert_vocab_dict = {word:idx for idx, word in enumerate(albert_vocab_list)}
- 如果你下载了离线ALBERT权重包,解压后根目录下默认存在
vocab.txt文件,直接读取即可。
获取指定BERT预处理器的词汇表
对应版本为https://tfhub.dev/tensorflow/bert_en_uncased_preprocess/3的预处理器,本身已内置英文uncased版本BERT词汇表,运行以下代码即可提取:
import tensorflow_hub as hub # 加载指定预处理器 bert_preprocess = hub.KerasLayer("https://tfhub.dev/tensorflow/bert_en_uncased_preprocess/3") # 提取词汇表文件路径 bert_vocab_path = bert_preprocess.resolved_object.vocab_file.asset_path.numpy().decode("utf-8") # 读取为词汇列表 with open(bert_vocab_path, "r", encoding="utf-8") as f: bert_vocab_list = [line.strip() for line in f.readlines()] # 如需词汇到索引的映射字典 bert_vocab_dict = {word:idx for idx, word in enumerate(bert_vocab_list)}
你也可以直接在TF Hub的本地缓存目录中找到对应预处理器的文件夹,直接获取其中的vocab.txt文件,无需运行代码。
内容的提问来源于stack exchange,提问作者user3970726
相关产品推荐
相关产品推荐

