You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中是否存在可将起始结束值标注转换为BIO标注的函数?

Python 起始结束标注转BIO标注实现方案

Python 没有内置直接实现该转换的官方函数,你可以通过自定义函数完成适配,以下代码完全匹配你提供的输入、输出格式:

实现代码

def span_to_bio(input_data):
    # 提取单句的字符列表和对应实体标注
    char_list = input_data["sentences"][0]
    entity_spans = input_data["ners"][0]
    # 初始化所有位置的标签为o
    bio_tags = ["o"] * len(char_list)
    
    # 遍历每个实体区间打标签
    for start_idx, end_idx, label in entity_spans:
        # 区间起始位置打B-前缀标签
        bio_tags[start_idx] = f"B-{label}"
        # 区间内后续位置打I-前缀标签
        for pos in range(start_idx + 1, end_idx):
            bio_tags[pos] = f"I-{label}"
    
    # 按期望格式拼接输出内容
    output_parts = [f'"{char}"' for char in char_list]
    output_parts.append("")  # 字符列表和标签之间加空行
    output_parts.extend(bio_tags)
    return "\n".join(output_parts)

测试用例

# 你的示例输入数据
test_input = {"ners": [[[1, 3, "label_one"], [3, 7, "label_x"], [9, 11, "label_y"]]], "sentences": [["现", "停", "经", "3", "8", "+", "周", ",", "无", "腹", "痛", "腹"]]}
print(span_to_bio(test_input))

运行后输出结果和你给出的期望完全一致。

内容的提问来源于stack exchange,提问作者bahapku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:24:03