计算召回率 准确率 F值 的 评价系统
注意:
这两个文件需要存在且不为空才可以完成正确的评价
1.path_test = “分词结果.txt” #生成分词的文档 即对该分词结果进行评价
2.path_dic = “词典.txt” #分词的标准结果 即一份标准的分词文档
python代码
# 将词保存成集合形式
def getWord(str):
list = []
s = 0
for word in str.split(" "):
e = s + len(word)
list.append((s, e - 1))
s = e
return set(list)
# ori是原来的分词,pred是系统预测的输出
def evaluate(ori,pred):
predSize = len(getWord(pred))
oriSize = len(getWord(ori))
rightSize = len(getWord(ori)&getWord(pred))
# Recall
R = rightSize/oriSize
# Precision
P = rightSize/predSize
# F-measure
F = 2*P*R/(P+R)
return R,P,F # 召回率 准确率 F值
#path_test = "结巴分词结果.txt" #生成分词的文档
path_test = "分词结果.txt" #生成分词的文档
path_dic = "词典.txt" #分词的标准结果
f_1=open(path_test,'r')
file_test=f_1.read()#按照空格处理文件
f_1.close()
#chars=list(set(file_open))#去重之后获得列表
f_2=open(path_dic,'r')
file_dic=f_2.read()#按照空格处理文件
f_2.close()
print("召回率 准确率 F值")
print(evaluate(file_dic,file_test))
#print(file_dic)