输入:文本序列,标记序列seg_labels。 输出:整合遮蔽区域的文本序列。 | |
1. for sent_index, token in enumerate(sent): | \\遍历文本序列 |
2. seg_label = seg_labels[sent_index] | \\将文本对应标记序列 |
3. if seg_label == -1: | \\如果为标点符号与占位符,进入判断 |
4. if pos == -1:continue | \\如果位置信息为空,跳过 |
5. else:遮蔽区域 = pos + num; pos = -1; num = 0 | \\如果位置信息不为空,将位置信息加计数的区域设为待遮蔽区域。清空位置信息,清空计数 |
6. if seg_label == 0: | \\如果为词首,进入判断 |
7. if pos == -1:pos = sent_index | \\如果位置信息为空,记录词首位置 |
8. else:遮蔽区域 = pos + num; pos = sent_index; num = 0 | \\如果位置信息不为空,将位置信息加计数的区域设为待遮蔽区域。更新位置信息,清空计数 |
9. if seg_label == 1: num += 1; continue | \\如果为非词首,计数加一,跳向下一字符 |