序列标记测试框架
test-travis-neko的Python项目详细描述
seqeval
seqeval是一个用于序列标记评估的python框架。 seqeval可以评估命名实体识别、词性标注、语义角色标注等分块任务的性能。
通过使用perl脚本conlleval, 它可用于测量已处理conll-2000共享任务数据的系统的性能。
支持功能
SeqEval支持以下格式:
- IOB1
- IOB2
- IOE1
- IOE2
- IOBES
并支持以下指标:
metrics | description |
---|---|
accuracy_score(y_true, y_pred) | Compute the accuracy. |
precision_score(y_true, y_pred) | Compute the precision. |
recall_score(y_true, y_pred) | Compute the recall. |
f1_score(y_true, y_pred) | Compute the F1 score, also known as balanced F-score or F-measure. |
classification_report(y_true, y_pred, digits=2) | Build a text report showing the main classification metrics. ^{ |
用法
看,seqeval的力量:
>>>fromseqeval.metricsimportaccuracy_score>>>fromseqeval.metricsimportclassification_report>>>fromseqeval.metricsimportf1_score>>>>>>y_true=[['O','O','O','B-MISC','I-MISC','I-MISC','O'],['B-PER','I-PER','O']]>>>y_pred=[['O','O','B-MISC','I-MISC','I-MISC','I-MISC','O'],['B-PER','I-PER','O']]>>>>>>f1_score(y_true,y_pred)0.50>>>accuracy_score(y_true,y_pred)0.80>>>classification_report(y_true,y_pred)precisionrecallf1-scoresupportMISC0.000.000.001PER1.001.001.001microavg0.500.500.502macroavg0.500.500.502
凯拉斯回调
seqeval为keras提供回调:
fromseqeval.callbacksimportF1Metricsid2label={0:'<PAD>',1:'B-LOC',2:'I-LOC'}callbacks=[F1Metrics(id2label)]model.fit(x,y,validation_data=(x_val,y_val),callbacks=callbacks)
安装
要安装seqeval,只需运行:
$ pip install seqeval[cpu]
如果要在GPU环境中安装SeqEval,请运行:
$ pip install seqeval[gpu]
要求
- numpy=1.14.0
- TensorFlow(可选)