
【人工智能概论】 文本数据处理——切词器
文章目录
- 【人工智能概论】 文本数据处理——切词器
- 一. 背景简介
- 二. Tokenizer的简要工作介绍
- 三. 创建并保存一个Tokenizer切词器
- 四. 简单使用已有的Tokenizer切词器
一. 背景简介
- 使用计算机处理文本时,输入的是一个文字序列,如果直接处理会十分困难。
- 因此希望把每个字(词)切分开,转换成数字索引编号,以便于后续做词向量编码处理。
- 这就需要切词器——Tokenizer。
二. Tokenizer的简要工作介绍
- 首先,将输入的文本按照一定规则切分成一系列的token;
- 然后,在字典中查表,将每个token用一个整数编号来表示;
- 最后,将字典中不存在的字(词)用特殊标识符(‘UNK’)表示,并赋予相应编号。
三. 创建并保存一个Tokenizer切词器
- Tokenizer无需自行实现,用现成的即可。
- 相关代码:
from tokenizers import models,normalizers,pre_tokenizers,trainers,Tokenizer
tokenizer = Tokenizer(models.WordPiece(unk_token="[UNK]"))
tokenizer.normalizer = normalizers.Sequence([normalizers.NFD(), normalizers.Lowercase() ])
tokenizer.pre_tokenizer = pre_tokenizers.WhitespaceSplit()"""---------------------"""
special_tokens = ["[UNK]","[PAD]","[CLS]","[SEP]","[MASK]"]
trainer = trainers.WordPieceTrainer(vocab_size=10000,special_tokens=special_tokens)
tokenizer.train(['./1.txt','./2.txt'],trainer = trainer)
tokenizer.save("./my_tokenizer.json")
四. 简单使用已有的Tokenizer切词器
from tokenizers import Tokenizer
tokenizer = Tokenizer.from_file('./my_tokenizer.json')
tokens = tokenizer.encode("我喜欢看流浪地球!")
print(tokens.ids,tokens.tokens)