fastnlp / fastNLP

fastNLP: A Modularized and Extensible NLP Framework. Currently still in incubation.
https://gitee.com/fastnlp/fastNLP
Apache License 2.0
3.05k stars 451 forks source link

创建词表的问题 #384

Closed yt-liang closed 2 years ago

yt-liang commented 2 years ago

最近在看分词和依存分析联合模型的论文以及代码,看到这样一句 vocab = Vocabulary().from_dataset(field_name=‘chars’, no_create_entry_dataset=list(data.datasets.values())) 这样第一个参数dataset没有传入,而是都传入no_create_entry_dataset。 这样和 vocab = Vocabulary().from_dataset(data.datasets['train'], field_name='chars', no_create_entry_dataset=[data.get_dataset('dev'),data.get_dataset('test')]) 有什么区别吗?

yhcc commented 2 years ago

有的,第一个vocab在之后使用StaticEmbedding的时候,如果出现了pretrained word2vec中没有出现的词的时候,不会随机初始化一个vector而是用unk的表示;后面一种是在pretrained word2vec中没有出现的词的时候,会随机初始化一个vector。

yt-liang commented 2 years ago

有的,第一个vocab在之后使用StaticEmbedding的时候,如果出现了pretrained word2vec中没有出现的词的时候,不会随机初始化一个vector而是用unk的表示;后面一种是在pretrained word2vec中没有出现的词的时候,会随机初始化一个vector。

感谢您的解答