Esempio n. 1
0
def update(weights, predicts, sentence, edge_feats):
    for i, word in enumerate(sentence):
        h_predict = predicts[i]
        h_gold = word.head
        if h_predict != h_gold:
            for fidx in edge_feats.get((h_predict, i), []):
                weights[fidx] = weights[fidx] - 1
            for fidx in edge_feats.get((h_gold, i), []):
                weights[fidx] = weights[fidx] + 1
    return weights


def main(args):
    if len(args) < 2:
        Log.w("Arguments Error")
        return
    path = args[0]
    iteration = int(args[1])
    Log.i("Training file: %s" % path)
    Log.i("----------------")
    sentences = c.readconllfile(path)
    featdict, weights = train(sentences, iteration)
    c.save(featdict, weights)


if __name__ == "__main__":
    Log.setConfig(loglevel=Log.DEBUG, verbose=True)
    main(c.readargs())
    Log.finalize()
Esempio n. 2
0
            total = total + 1
            result.append(line)
        results.append(result)
    return results, float(correct / total)


def main(args):
    if len(args) < 2:
        Log.w("Arguments Error")
        return
    path = args[0]
    mfile = args[1]
    Log.i("Training file: %s" % path)
    Log.i("----------------")
    sentences = c.readconllfile(path)
    Log.i("Model file: %s" % mfile)
    Log.i("----------------")
    featdict, weights = c.load(mfile)
    output, score = parse(sentences, weights)
    for each in output:
        for token in each:
            print(token)
        print()
    Log.i("[DONE] accuracy: {:.2%}".format(score))


if __name__ == "__main__":
    Log.setConfig(loglevel=Log.DEBUG, verbose=True)
    main(c.readargs())
    Log.finalize()