首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >托卡器更改词汇表条目

托卡器更改词汇表条目
EN

Stack Overflow用户
提问于 2021-10-30 18:02:03
回答 2查看 805关注 0票数 3

我有一些文本,我想要执行NLP。为此,我下载了一个预先训练过的令牌器,如下所示:

代码语言:javascript
运行
复制
import transformers as ts

pr_tokenizer = ts.AutoTokenizer.from_pretrained('distilbert-base-uncased', cache_dir='tmp')

然后,我使用如下数据创建了自己的令牌程序:

代码语言:javascript
运行
复制
from tokenizers import Tokenizer
from tokenizers.models import BPE
tokenizer = Tokenizer(BPE(unk_token="[UNK]"))

from tokenizers.trainers import BpeTrainer
trainer = BpeTrainer(special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])

from tokenizers.pre_tokenizers import Whitespace
tokenizer.pre_tokenizer = Whitespace()

tokenizer.train(['transcripts.raw'], trainer)

现在我感到困惑..。我需要更新预置令牌器(pr_tokenizer)中的条目,其中的键与我的令牌器(tokenizer)中的键相同。我尝试过几种方法,以下是其中之一:

代码语言:javascript
运行
复制
new_vocab = pr_tokenizer.vocab
v = tokenizer.get_vocab()

for i in v:
    if i in new_vocab:
        new_vocab[i] = v[i]

那我现在该怎么办?我在想:

代码语言:javascript
运行
复制
pr_tokenizer.vocab.update(new_vocab)

代码语言:javascript
运行
复制
pr_tokenizer.vocab = new_vocab

两样都不管用。有人知道这样做的好方法吗?

EN

Stack Overflow用户

发布于 2021-11-02 02:07:57

如果你能在你的电脑里找到蒸馏器文件夹,你可以看到词汇表基本上是txt文件,它只包含一个列。你可以做你想做的事。

代码语言:javascript
运行
复制
# i download the model with pasting this line to python terminal (or your main cli)
# git clone https://huggingface.co/distilbert-base-uncased

import os
path= "C:/Users/...../distilbert-base-uncased"
print(os.listdir(path))

# ['.git',
# '.gitattributes',
# 'config.json',
# 'flax_model.msgpack',
# 'pytorch_model.bin',
# 'README.md', 'rust_model.ot',
# 'tf_model.h5',
# 'tokenizer.json',
# 'tokenizer_config.json',
# 'vocab.txt']
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69780823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档