使用StaticEmbedding将文本转化为向量¶
根据输入的文本从预训练的模型中提取相应的embedding。如果未找到embedding,则使用随机embedding对其进行初始化。
参数: vocab(Vocabulary): StaticEmbedding将只加载所包含单词的单词向量在单词列表中,如果在预训练的embeding中没有找到,则使用随机初始化。
model_dir_or_name(Union[str, None]):有两种方法调用预训练的静态embedding:第一种方法是传入本地文件夹(应该只有一个后缀为.txt的文件)或文件路径。第二个是传递的嵌入的名称。在第二种情况下,嵌入将自动检查模型是否存在于缓存中。如果没有,该embedding将会自动下载(在华为云计算实现)。如果输入为None,则使用维度
embeddding_dim随机初始化嵌入。
embeddding_path (Union[str, None]):嵌入文件的路径。
embeddding_dim (int):随机初始化嵌入的尺寸。如果值大于0,Model_dir_or_name将被忽略。
requires_grad (bool,可选):默认值:真的。
dropout(float,可选):dropout层表示嵌入的概率。
Examples:
>>> vocab = Vocabulary()
>>> vocab.update(["i", "am", "fine"])
>>> embed = StaticEmbedding(vocab, model_dir_or_name=None, embedding_dim=5)
>>> words = mindspore.Tensor([[vocab[word] for word in ["i", "am", "fine"]]])
>>> embed(words)
>>> Tensor(shape=[1, 3, 5], dtype=Float32, value=
[[[7.56267071e-001, -3.02625038e-002, 6.10783875e-001, 4.03315663e-001, -6.82987273e-001],
[3.35875869e-001, 2.93195043e-002, 2.17977986e-001, 9.68403295e-002, -4.01605248e-001],
[-2.35586300e-001, 4.89649743e-001, -2.10691467e-001, -1.81295246e-001, -6.90823942e-002]]]).