1. 长文本滑窗处理
In [285]: from transformers import BertTokenizerFast
In [286]: tokenizer = BertTokenizerFast.from_pretrained(model_path)
In [287]: q = '胆结石要手术治疗吗'
In [288]: context = "治疗胆囊结石,手术切除最可靠目前,治疗胆囊结石的主流治疗方法有胆囊切除术,其他方法还有保胆取石术、
...: 口服药物溶石、碎石治疗4种。其中,口服药物溶石和体外超声波碎石排石因疗效不能令人满意,已经被淘汰。手术成为治疗
...: 胆结石最安全有效的方法。"
In [289]: tokenized_examples = tokenizer(
...: q,
...: context,
...: stride=40, # 每次滑窗需要重叠的数量
...: max_length=64,
...: truncation='only_second',
...: return_overflowing_tokens=True,
...: return_offsets_mapping=True,
...: padding="max_length"
...: )
In [290]: for i in tokenized_examples['input_ids']:
...: print(tokenizer.decode(i))
...:
[CLS] 胆 结 石 要 手 术 治 疗 吗 [SEP] 治 疗 胆 囊 结 石 , 手 术 切 除 最 可 靠 目 前 , 治 疗 胆 囊 结 石 的 主 流 治 疗 方 法 有 胆 囊 切 除 术 , 其 他 方 法 还 有 保 胆 取 石 术 、 口 服 药 [SEP]
[CLS] 胆 结 石 要 手 术 治 疗 吗 [SEP] 可 靠 目 前 , 治 疗 胆 囊 结 石 的 主 流 治 疗 方 法 有 胆 囊 切 除 术 , 其 他 方 法 还 有 保 胆 取 石 术 、 口 服 药 物 溶 石 、 碎 石 治 疗 4 种 。 其 [SEP]
[CLS] 胆 结 石 要 手 术 治 疗 吗 [SEP] 主 流 治 疗 方 法 有 胆 囊 切 除 术 , 其 他 方 法 还 有 保 胆 取 石 术 、 口 服 药 物 溶 石 、 碎 石 治 疗 4 种 。 其 中 , 口 服 药 物 溶 石 和 体 外 超 [SEP]
[CLS] 胆 结 石 要 手 术 治 疗 吗 [SEP] , 其 他 方 法 还 有 保 胆 取 石 术 、 口 服 药 物 溶 石 、 碎 石 治 疗 4 种 。 其 中 , 口 服 药 物 溶 石 和 体 外 超 声 波 碎 石 排 石 因 疗 效 不 能 令 [SEP]
[CLS] 胆 结 石 要 手 术 治 疗 吗 [SEP] 、 口 服 药 物 溶 石 、 碎 石 治 疗 4 种 。 其 中 , 口 服 药 物 溶 石 和 体 外 超 声 波 碎 石 排 石 因 疗 效 不 能 令 人 满 意 , 已 经 被 淘 汰 。 手 术 [SEP]
[CLS] 胆 结 石 要 手 术 治 疗 吗 [SEP] 4 种 。 其 中 , 口 服 药 物 溶 石 和 体 外 超 声 波 碎 石 排 石 因 疗 效 不 能 令 人 满 意 , 已 经 被 淘 汰 。 手 术 成 为 治 疗 胆 结 石 最 安 全 有 效 [SEP]
[CLS] 胆 结 石 要 手 术 治 疗 吗 [SEP] 和 体 外 超 声 波 碎 石 排 石 因 疗 效 不 能 令 人 满 意 , 已 经 被 淘 汰 。 手 术 成 为 治 疗 胆 结 石 最 安 全 有 效 的 方 法 。 [SEP] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD]