예제 #1
0
파일: cwi.py 프로젝트: kuruonur1/cwi
def evalu(rdnn, ddat, dset):
    cost, preds = rdnn.predict(ddat)
    preds = [p.argmax(axis=-1).flatten() for b in preds for p in b]
    correct = sum(np.sum(np.array(sent['lseq']) == pred) for sent, pred in zip(dset,preds))
    total = sum(len(p) for p in preds)
    cerr = 1-(correct/total)

    gold_labels = []
    pred_labels = []
    for sent, pred in zip(dset,preds):
        ls = get_ls(sent['wiseq'],pred)
        gold_labels.extend([sent['ls'][ii] for ii, interested in enumerate(sent['ii']) if interested])
        pred_labels.extend([ls[ii] for ii, interested in enumerate(sent['ii']) if interested])
    p, r, f = evaluate_system.evaluateIdentifier(gold_labels, pred_labels)
    return [cost, cerr, p, r, f]
예제 #2
0
파일: cwi.py 프로젝트: kuruonur1/cwi
def evalu(dset, yhat):
    # slens = [len(sent['ls']) for sent in dset]
    slens = [sum(sent['ii']) for sent in dset]
    offset = 0
    preds = []
    for slen in slens:
        preds.append(yhat[offset:offset+slen])
        offset+=slen
    assert len(preds) == len(dset)
    gold_labels = []
    pred_labels = []
    for sent, pred in zip(dset,preds):
        gold_labels.extend([sent['ls'][ii] for ii, interested in enumerate(sent['ii']) if interested])
        # pred_labels.extend([pred[ii] for ii, interested in enumerate(sent['ii']) if interested])
        pred_labels.extend(pred)
    logging.debug(tabulate(confusion_matrix(np.array(gold_labels), np.array(pred_labels)), headers=[0,1]))
    p, r, f = evaluate_system.evaluateIdentifier(gold_labels, pred_labels)
    return p,r,f