def load_char_vocab(): if os.path.exists("./checkpoint/word2id.pkl"): word2idx, idx2word = pickle.load(open("./checkpoint/word2id.pkl", "rb")) else: df = pd.read_csv("./data/train.csv",encoding="utf8") vocab = [] for ent in df["sentence1"].tolist()+df["sentence2"].tolist(): vocab.extend(list(ent)) with open(os.path.join("../../yidu-n7k/code.txt"),encoding='utf8') as f: for line in f.readlines(): code,name = line.strip().split('\t') vocab.extend(list(name)) vocab = sorted(set(vocab)) print(len(vocab)) word2idx = {word: index for index, word in enumerate(vocab,start=2)} word2idx["UNK"] = 1 idx2word = {index: word for word,index in word2idx.items()} pickle.dump((word2idx, idx2word),open("./checkpoint/word2id.pkl","wb")) return word2idx, idx2word是什么意思
时间: 2023-05-29 09:04:33 浏览: 155
这段代码定义了一个函数load_char_vocab(),其作用是加载字符级别的词汇表(vocab),并将其转换成word2idx和idx2word两个字典,用于后续的模型训练。如果已经存在保存的word2idx和idx2word,则直接从文件中读取;否则,从训练数据和外部词典文件中获取所有字符,并构建词典。其中,word2idx表示字符到索引的映射,idx2word表示索引到字符的映射。UNK表示未知字符。该函数返回word2idx和idx2word两个字典。
相关问题
if os.path.exists("./checkpoint/word2id.pkl"): word2idx, idx2word = pickle.load(open("./checkpoint/word2id.pkl", "rb")) else: df = pd.read_csv("./data/train.csv",encoding="utf8") vocab = [] for ent in df["sentence1"].tolist()+df["sentence2"].tolist(): vocab.extend(list(ent)) with open(os.path.join("../../yidu-n7k/code.txt"),encoding='utf8') as f: for line in f.readlines(): code,name = line.strip().split('\t') vocab.extend(list(name))是什么意思
这段代码是用于加载或创建词汇表的。如果存在保存的词汇表文件,则直接加载词汇表文件;否则,从训练数据和外部文件中读取数据,构建词汇表。具体地,先读取训练数据中的句子,将所有字符加入到词汇表中;然后从外部文件中读取编码和名称,将名称中的字符加入到词汇表中。最终,得到的词汇表是一个包含所有训练数据和外部文件中字符的列表。其中,word2idx是将词汇表中的词转化为索引的字典,idx2word是将索引转化为词汇表中的词的字典。
encoder_model = tf.keras.models.load_model('D:/PycharmProjects/asr_tts_recognization/resources/tts_model_1/pb/frame_encoder.h5') decoder_model = tf.keras.models.load_model('D:/PycharmProjects/asr_tts_recognization/resources/tts_model_1/pb/frame_decoder.h5') cghb_model = tf.keras.models.load_model('D:/PycharmProjects/asr_tts_recognization/resources/cghb_model_1/pb/cbhg_frame.h5') vocab_list = [] with open('D:/PycharmProjects/asr_tts_recognization/resources/vocab_4264.txt', 'r', encoding='utf-8') as f: for line in f.readlines(): line = line.replace('\n', '') vocab_list.append(line) vocab_list.append('BEGIN') vocab_list.append('END') vocab_list.append('UNK')
这段代码看起来像是加载了一些模型和词汇表。其中encoder_model、decoder_model、cghb_model是通过tf.keras.models.load_model()函数加载了一些预训练的模型,而vocab_list则是一个列表,包含了一些词汇表中的单词。在这段代码中,还向vocab_list中添加了三个特殊单词:'BEGIN'、'END'和'UNK'。这些特殊单词通常用于标识序列的开始、结束和未知单词。
阅读全文