def build_vocab(file_path, tokenizer, max_size, min_freq): vocab_dic = {} with open(file_path, 'r', encoding='UTF-8') as f: for line in tqdm(f): lin = line.strip() if not lin: continue content = lin.split('\t')[0] for word in tokenizer(content): vocab_dic[word] = vocab_dic.get(word, 0) + 1 vocab_list = sorted([_ for _ in vocab_dic.items() if _[1] >= min_freq], key=lambda x: x[1], reverse=True)[:max_size] vocab_dic = {word_count[0]: idx for idx, word_count in enumerate(vocab_list)} vocab_dic.update({UNK: len(vocab_dic), PAD: len(vocab_dic) + 1}) return vocab_dic
时间: 2024-02-05 09:02:58 浏览: 96
orb_vocab.dbow2
这是一个Python函数,用于构建词汇表。它的输入参数包括文件路径、分词器、最大词汇量和最小词频。其中,文件路径指向一个文本文件,分词器将文本分割成单词,最大词汇量限制词汇表的大小,最小词频用于过滤出现频率较低的单词。函数的输出是一个字典,将词汇表中的每个单词映射到一个唯一的整数索引。其中,UNK和PAD是两个特殊的单词,用于表示未知单词和填充单词。
阅读全文