因为bert等预训练模型长度限制为512, 需要分块且块间有重叠部分,这样效果比没有重叠部分更好。代码如下:
# text:文本 split_len:每块最大长度 over_len:重叠长度
def get_split_text(text, split_len, overlap_len):
split_text = []
window = split_len - overlap_len
w = 0
while w * window + split_len < len(text):
text_piece = text[w * window: w * window + split_len]
w += 1
split_text.append(text_piece)
split_text.append(text[w * window:])
return split_text