#
!/usr/bin/python
import sys;
import re;
def getPrecision(TP,TN,FP,FN):
result=0.0;
result=TP/(TP+FP);
return result;
def getRecall(TP,TN,FP,FN):
result=0.0;
result=TP/(TP+FN);
return result;
def getFvalue(TP,TN,FP,FN):
result=0.0;
p=getPrecision(TP,TN,FP,FN);
r=getRecall(TP,TN,FP,FN);
result=2*p*r/(p+r);
return result;
def getRI(TP,TN,FP,FN):
result=0.0;
result=(TP+TN)/(TP+FP+FN+TN);
return result;
if( __name__== " __main__ "):
filename=str(sys.argv[1]);
TP=0.0;
FP=0.0;
TN=0.0;
FN=0.0;
preturn=re.compile( ' (^\s+|\s+$) ');
doccollection=[];
fidsrc=file(filename, ' r ');
for line in fidsrc.readlines():
line=preturn.sub( '',line);
m=line.split( ' \t ');
if(len(m)==3):
doccollection.append((int(m[0]),int(m[1]),int(m[2])));
fidsrc.close();
for i in range(0,len(doccollection)-1):
for j in range(i+1,len(doccollection)):
elem1=doccollection[i];
elem2=doccollection[j];
if(elem1[2]==elem2[2] and elem1[1]==elem2[1]):
TP=TP+1;
if(elem1[2]==elem2[2] and elem1[1]!=elem2[1]):
FN=FN+1;
if(elem1[2]!=elem2[2] and elem1[1]==elem2[1]):
FP=FP+1;
if(elem1[2]!=elem2[2] and elem1[1]!=elem2[1]):
TN=TN+1;
p=getPrecision(TP,TN,FP,FN);
r=getRecall(TP,TN,FP,FN);
f=getFvalue(TP,TN,FP,FN);
ri=getRI(TP,TN,FP,FN);
print ' TP=%f,TN=%f,FP=%f,FN=%f '%(TP,TN,FP,FN);
print ' precision=%f,recall=%f,fvalue=%f,RI=%f '%(p,r,f,ri);
import sys;
import re;
def getPrecision(TP,TN,FP,FN):
result=0.0;
result=TP/(TP+FP);
return result;
def getRecall(TP,TN,FP,FN):
result=0.0;
result=TP/(TP+FN);
return result;
def getFvalue(TP,TN,FP,FN):
result=0.0;
p=getPrecision(TP,TN,FP,FN);
r=getRecall(TP,TN,FP,FN);
result=2*p*r/(p+r);
return result;
def getRI(TP,TN,FP,FN):
result=0.0;
result=(TP+TN)/(TP+FP+FN+TN);
return result;
if( __name__== " __main__ "):
filename=str(sys.argv[1]);
TP=0.0;
FP=0.0;
TN=0.0;
FN=0.0;
preturn=re.compile( ' (^\s+|\s+$) ');
doccollection=[];
fidsrc=file(filename, ' r ');
for line in fidsrc.readlines():
line=preturn.sub( '',line);
m=line.split( ' \t ');
if(len(m)==3):
doccollection.append((int(m[0]),int(m[1]),int(m[2])));
fidsrc.close();
for i in range(0,len(doccollection)-1):
for j in range(i+1,len(doccollection)):
elem1=doccollection[i];
elem2=doccollection[j];
if(elem1[2]==elem2[2] and elem1[1]==elem2[1]):
TP=TP+1;
if(elem1[2]==elem2[2] and elem1[1]!=elem2[1]):
FN=FN+1;
if(elem1[2]!=elem2[2] and elem1[1]==elem2[1]):
FP=FP+1;
if(elem1[2]!=elem2[2] and elem1[1]!=elem2[1]):
TN=TN+1;
p=getPrecision(TP,TN,FP,FN);
r=getRecall(TP,TN,FP,FN);
f=getFvalue(TP,TN,FP,FN);
ri=getRI(TP,TN,FP,FN);
print ' TP=%f,TN=%f,FP=%f,FN=%f '%(TP,TN,FP,FN);
print ' precision=%f,recall=%f,fvalue=%f,RI=%f '%(p,r,f,ri);