我试图根据IOB /序列标签识别和分类实体类型。
例如:
Alex B-PER
Tan I-PER
is O
a O
president O
. O
我只能通过令牌对其进行分类,这意味着它将Alex B-PER和Tan I-PER归类为不同的类/实体类型。
所以我的问题是如何将Alex B-PER和Tan I-PER归类为PERSON的同一类?
谢谢。
答案 0 :(得分:3)
所有必需的信息已包含在BIO encoding。
中您只需要遍历所有令牌标签对:如果您找到BX标签,那么它是X实体的开头(在您的示例中 - 它是对var smooth = getSmooth(evo, meteo, usage);
function getSmooth(evo, meteo, usage){
evo *= 100;
meteo *= 100;
usage *= 100;
var meteo_decimal = meteo % 1;
var usage_decimal = usage % 1;
evo = Math.round(evo);
if( meteo_decimal > usage_decimal ) {
meteo = Math.ceil(meteo);
usage = Math.floor(usage);
} else {
meteo = Math.floor(meteo);
usage = Math.ceil(usage);
}
return {
evo: evo / 100,
meteo: meteo / 100,
usage: usage / 100
};
}
),因此创建新实体, token是带有B_X标签的令牌;当下一个标签是I-X时,将相应的标记附加到创建的X实体(在您的示例中 - 它是对[Alex_B-PER]
] - 所以您的实体是[Tan_I-PER
)。如果下一个标签是B-Y,则像以前一样创建新实体;如果下一个标签是O,那就再往前走吧。