File size: 1,079 Bytes
c9c7b01
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from tokenizers import Tokenizer
from tokenizers.models import BPE
from tokenizers.pre_tokenizers import Whitespace
from tokenizers.trainers import BpeTrainer

def train_tokenizer_from_file(input_file_list, vocab_size=50257, output_file="tokenizer.json"):
    """
    从文本文件训练分词器。

    参数:
    - input_file (str): 输入文本文件路径。
    - vocab_size (int): 分词器的词汇表大小。
    - output_file (str): 训练好的分词器保存路径。
    """
    # 初始化分词器
    tokenizer = Tokenizer(BPE())
    tokenizer.pre_tokenizer = Whitespace()

    # 定义 BPE 训练器
    trainer = BpeTrainer(
        vocab_size=vocab_size,
        special_tokens=["<|endoftext|>", "<pad>", "<unk>"]
    )

    # 开始训练
    tokenizer.train(input_file_list, trainer)
    tokenizer.save(output_file)
    print(f"分词器已保存到 {output_file}")

# 示例:从生成的文本文件训练分词器
train_tokenizer_from_file(["protein_4g.txt","dna_4g.txt","eng_4g.txt"], vocab_size=100000, output_file="gpt2_gene_eng_tokenizer.json")