示例#1
0
int crfsuite_instance_append(crfsuite_instance_t* inst, const crfsuite_item_t* item, int label)
{
    if (inst->cap_items <= inst->num_items) {
        inst->cap_items = (inst->cap_items + 1) * 2;
        inst->items = (crfsuite_item_t*)realloc(inst->items, sizeof(crfsuite_item_t) * inst->cap_items);
        inst->labels = (int*)realloc(inst->labels, sizeof(int) * inst->cap_items);
    }
    crfsuite_item_copy(&inst->items[inst->num_items], item);
    inst->labels[inst->num_items] = label;
    ++inst->num_items;
    return 0;
}
示例#2
0
void crfsuite_instance_copy(crfsuite_instance_t* dst, const crfsuite_instance_t* src)
{
    int i;

    dst->num_items = src->num_items;
    dst->cap_items = src->cap_items;
    dst->items = (crfsuite_item_t*)calloc(dst->num_items, sizeof(crfsuite_item_t));
    dst->labels = (int*)calloc(dst->num_items, sizeof(int));
    dst->weight = src->weight;
    dst->group = src->group;
    for (i = 0;i < dst->num_items;++i) {
        crfsuite_item_copy(&dst->items[i], &src->items[i]);
        dst->labels[i] = src->labels[i];
    }
}
示例#3
0
int crfsuite_instance_append(crfsuite_instance_t* inst,
        const crfsuite_item_t* item,
        const crfsuite_fuzzy_labels_t* labels,
        int lid)
{
    if (inst->cap_items <= inst->num_items) {
        inst->cap_items = (inst->cap_items + 1) * 2;
        inst->items = (crfsuite_item_t*)realloc(inst->items,
                sizeof(crfsuite_item_t) * inst->cap_items);
        inst->labels = (int*)realloc(inst->labels, sizeof(int) * inst->cap_items);
        inst->fuzzy = (crfsuite_fuzzy_labels_t*)realloc(inst->fuzzy,
                sizeof(crfsuite_fuzzy_labels_t) * inst->cap_items);
    }
    crfsuite_item_copy(&inst->items[inst->num_items], item);
    if (labels) {
        crfsuite_fuzzy_labels_copy(&inst->fuzzy[inst->num_items], labels);
    } else {
        crfsuite_fuzzy_labels_init(&inst->fuzzy[inst->num_items]);
    }
    inst->labels[inst->num_items] = lid;
    ++inst->num_items;
    return 0;
}