6 python tokenize python-3.x bert-language-model huggingface-transformers
当我使用时(带有长 test_text 和短问题):
from transformers import BertTokenizer
import torch
from transformers import BertForQuestionAnswering
tokenizer = BertTokenizer.from_pretrained('bert-large-uncased-whole-word-masking-finetuned-squad')
model = BertForQuestionAnswering.from_pretrained('bert-large-uncased-whole-word-masking-finetuned-squad')
input_ids = tokenizer.encode(question, test_text)
print('Query has {:,} tokens.\n'.format(len(input_ids)))
sep_index = input_ids.index(tokenizer.sep_token_id)
num_seg_a = sep_index + 1
num_seg_b = len(input_ids) - num_seg_a
segment_ids = [0]*num_seg_a + [1]*num_seg_b
start_scores, end_scores = model(torch.tensor([input_ids]),
token_type_ids=torch.tensor([segment_ids]))
Run Code Online (Sandbox Code Playgroud)
我收到输出错误
令牌索引序列长度长于该模型指定的最大序列长度 (3 > 512)。通过模型运行此序列将导致索引错误
查询有 1,244 个标记。
如何将 test_text 分成最大长度的块,并且知道它不会超过 512 个标记?然后对每个文本块提出相同的问题,从所有文本中取出最佳答案,并使用不同的切片点对文本进行两次检查,以防答案在切片期间被剪切。
| 归档时间: |
|
| 查看次数: |
2433 次 |
| 最近记录: |