【发布时间】:2021-06-25 04:48:36
【问题描述】:
from bert_embedding import BertEmbedding
bert_embedding = BertEmbedding(model='bert_12_768_12', dataset_name='wiki_multilingual_cased')
output = bert_embedding("any")
我需要澄清 mBERT 嵌入的输出。我知道 WordPiece 标记化用于分解输入文本。我还观察到,在提供一个单词(比如“any”)作为输入时,输出的长度等于输入中的字符数(在我们的例子中为 3)。 output[i] 是一个列表元组,其中第一个列表包含位于第 ith 位置的字符,其前后有“未知”标记作为数组中的不同元素。紧随其后的是三个(= 输入字的长度)数组(嵌入),每个数组的大小为 768。为什么输出似乎是按字符标记的(而不是单词标记)?
还发现当输入在列表中给出时输出形式发生变化:bert_embedding(["any"])。现在的输出是一个以 ['[UNK]', 'state', '[UNK]'] 作为第一个元素的单个元组,后面跟着三个不同的嵌入,可能对应于上面列出的三个标记。
如果我需要为给定的输入词嵌入最后一个子词(不仅仅是最后一个字符或整个词),我该如何访问它?
【问题讨论】:
标签: python nlp pytorch bert-language-model