参考资料:
序列标注算法评估模块 seqeval 的使用
https://mp.weixin.qq.com/s/PUwGp4fTJj1d38_ZasjBPQ
准确率: accuracy = 预测对的元素个数/总的元素个数
查准率:precision = 预测正确的实体个数 / 预测的实体总个数
召回率:recall = 预测正确的实体个数 / 标注的实体总个数
F1值:F1 = 2 *准确率 * 召回率 / (准确率 + 召回率)
pip install seqeval
这个包将accuracy、precision、recall、f1的计算方法进行了封装,只需要调用对用的函数即可。
y_true = np.array(
[line.split()[1] for line in open("temp.txt", 'r', encoding='utf-8').read().splitlines() if
len(line) > 0])
y_pred = np.array(
[line.split()[2] for line in open("temp.txt", 'r', encoding='utf-8').read().splitlines() if
len(line) > 0])
从文件中获取标注序列和预测序列
accuracy = accuracy_score([y_true_def, tag], [y_pred_def, tag])
precision = precision_score([y_true_def, tag], [y_pred_def, tag])
recall = recall_score([y_true_def, tag], [y_pred_def, tag])
f1 = f1_score([y_true_def, tag], [y_pred_def, tag])
classification_report_ = classification_report([y_true_def, tag], [y_pred_def, tag])
输出如下:
accuary: 0.9894749374508668
p: 0.9047759433962265
r: 0.8541608683551349
f1: 0.8787401574803149
classification report:
precision recall f1-score support
Bid 0.89 0.70 0.78 2107
Pro 0.90 0.85 0.88 5724
Pur 0.88 0.96 0.92 3445
Win 0.95 0.84 0.89 3096
micro avg 0.90 0.85 0.88 14372
macro avg 0.91 0.84 0.87 14372
weighted avg 0.91 0.85 0.88 14372