gpt4 book ai didi

python - 在spaCy下使用BERT获取句子嵌入

转载 作者:行者123 更新时间:2023-12-04 01:02:03 26 4
gpt4 key购买 nike

我正在尝试使用 BERT 来获取句子嵌入。这是我的做法:

import spacy
nlp = spacy.load("en_core_web_trf")
nlp("The quick brown fox jumps over the lazy dog").vector
这会输出一个空向量!!
array([], dtype=float32)
我错过了什么吗?

最佳答案

Transformers 与其他 spacy 模型有点不同,但您可以使用doc._.trf_data.tensors[1] .
单个 BPE(字节对编码) token 片的向量在 doc._.trf_data.tensors[0] 中.请注意,我使用术语 token-pieces 而不是 token,以防止 spacy token 和 BPE tokenizer 生成的 token 之间的混淆。
例如,在我们的例子中,spacy-tokens 是:

for i, spacy_tok in enumerate(doc):
print(f"spacy-token {i + 1}: {spacy_tok.text}")
spacy-token 1: The
spacy-token 2: quick
spacy-token 3: brown
spacy-token 4: fox
spacy-token 5: jumps
spacy-token 6: over
spacy-token 7: the
spacy-token 8: lazy
spacy-token 9: dog
和 token 件是:
for i, tok_piece in enumerate(doc._.trf_data.tokens['input_texts'][0]):
print(f"token-piece {i + 1}: {tok_piece}")
token-piece 1: <s>
token-piece 2: The
token-piece 3: Ġquick
token-piece 4: Ġbrown
token-piece 5: Ġfox
token-piece 6: Ġjumps
token-piece 7: Ġover
token-piece 8: Ġthe
token-piece 9: Ġlazy
token-piece 10: Ġdog
token-piece 11: </s>

关于python - 在spaCy下使用BERT获取句子嵌入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67976977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com