shibing624 / pycorrector

pycorrector is a toolkit for text error correction. 文本纠错,实现了Kenlm,T5,MacBERT,ChatGLM3,Qwen2.5等模型应用在纠错场景,开箱即用。
https://www.mulanai.com/product/corrector/
Apache License 2.0
5.61k stars 1.1k forks source link

macbert词表问题 #370

Closed EASTERNTIGER closed 1 year ago

EASTERNTIGER commented 1 year ago

老师您好,我在使用自己的数据训练macbert模型的时候发现,有未出现在vocab.txt中的生僻字,比如“鄄”,我把生僻字添加到vocab.txt中然后上传到../pycorrector/macbert/output/macbert4csc/路径下,但是一旦开始训练模型的时候,就会自动下载原始的vocab.txt,把我上传的vocab.txt替换掉了,又还原成原始默认的vocab了,请问这是不是训练后的模型无法识别自定义数据集中含生僻字的纠错的原因呢?

shibing624 commented 1 year ago

代码里面加就行了,会自动保存到vocab.txt, 示例:

# add custom word
tokenizer.add_tokens([',', '(', ')', '鄄'])
model.resize_token_embeddings(len(tokenizer))
EASTERNTIGER commented 1 year ago

代码里面加就行了,会自动保存到vocab.txt, 示例:

# add custom word
tokenizer.add_tokens([',', '(', ')', '鄄'])
model.resize_token_embeddings(len(tokenizer))

好的,谢谢。

EASTERNTIGER commented 1 year ago

老师,请问如果是macbert模型,没有办法调整嵌入层大小,报错AttributeError: 'MacBert4Csc' object has no attribute 'resize_token_embeddings',是不是就没法解决了

shibing624 commented 1 year ago

macbert4csc模型,用bert. resize_token_embeddings(***)