- 论坛徽章:
- 780
|
本帖最后由 Herowinter 于 2014-04-24 13:49 编辑
回复 48# Herowinter
上午开会,现在写好了,好像我昨天想复杂了。
我刚翻回去看了下你需求,关于002的AP计算你这么描述的。- 002这个query的AP为(1/50)*(1/1+2/2+3/3+4/24)
复制代码 好像不需要计算实际出现的个数4,最后都是除以指定的上限50?
我现在是这么做的。如果要根据实际记录个数而不是统一除以50,
请跟贴,我再修改。结果我没怎么验证,你看一下是不是合理,
我就验证了下002和你上面手算的一样。- awk 'BEGIN{n=50} NR==FNR{a[$1" "$3];c[$1];next} {if(++c[$1]<=n){if(c[$1]==1)sn=0;if($1" "$3 in a){A[$1]++;sn++;APtmp[$1" "sn]=sn/++$4}else B[$1]++;b[$1" "$3]}} END{for(i in a){split(i,key," ");k=key[1];if(!(i in b))C[k]++};for(i in APtmp){split(i,key," ");k=key[1];AP[k]+=APtmp[i]} print "key\t准确率\t召回率\tF1\tAP";for(i in c){P=A[i]/(A[i]+B[i]);R=A[i]/(A[i]+C[i]);F1=(P+R)>0?2*P*R/(P+R):0;APi=AP[i]/n;printf "%s\t%.4f\t%.4f\t%.4f\t%.4f\n",i,P,R,F1,APi}}' training.qrels TF_IDF_0.res|sort -n -k1
- key 准确率 召回率 F1 AP
- 001 0.0400 1.0000 0.0769 0.0400
- 002 0.0800 1.0000 0.1481 0.0633
- 003 0.0200 1.0000 0.0392 0.0100
- 004 0.0200 0.0588 0.0299 0.0010
- 005 0.0600 1.0000 0.1132 0.0150
- 006 0.0200 1.0000 0.0392 0.0040
- 007 0.0600 1.0000 0.1132 0.0324
- 008 0.0800 1.0000 0.1481 0.0689
- 009 0.1400 1.0000 0.2456 0.1180
- 010 0.1400 1.0000 0.2456 0.0576
- 011 0.1000 1.0000 0.1818 0.0299
- 012 0.2200 1.0000 0.3607 0.1912
- 013 0.1400 1.0000 0.2456 0.1123
- 014 0.0400 1.0000 0.0769 0.0400
- 015 0.1000 1.0000 0.1818 0.0428
- 016 0.1800 1.0000 0.3051 0.1382
- 017 0.0800 1.0000 0.1481 0.0800
- 018 0.0400 1.0000 0.0769 0.0209
- 019 0.0800 1.0000 0.1481 0.0215
- 020 0.1400 1.0000 0.2456 0.0601
- 021 0.1200 1.0000 0.2143 0.1100
- 022 0.0400 1.0000 0.0769 0.0136
- 023 0.0200 1.0000 0.0392 0.0067
- 024 0.0600 1.0000 0.1132 0.0600
- 025 0.1000 1.0000 0.1818 0.0659
- 026 0.0600 0.7500 0.1111 0.0268
- 027 0.1200 1.0000 0.2143 0.0599
- 028 0.0600 0.5000 0.1071 0.0233
- 029 0.0000 0.0000 0.0000 0.0000
- 030 0.0200 1.0000 0.0392 0.0200
- 031 0.2400 1.0000 0.3871 0.1858
- 032 0.0200 0.5000 0.0385 0.0050
- 033 0.0200 1.0000 0.0392 0.0200
- 034 0.0200 1.0000 0.0392 0.0100
- 035 0.0400 1.0000 0.0769 0.0400
- 036 0.1000 0.8333 0.1786 0.0519
- 037 0.1000 1.0000 0.1818 0.0421
- 038 0.0200 1.0000 0.0392 0.0200
- 039 0.1600 1.0000 0.2759 0.1535
- 040 0.1000 1.0000 0.1818 0.0168
- 041 0.0200 1.0000 0.0392 0.0050
- 042 0.3400 1.0000 0.5075 0.3252
- 043 0.0400 1.0000 0.0769 0.0300
- 044 0.0400 1.0000 0.0769 0.0244
- 045 0.1800 1.0000 0.3051 0.1674
- 046 0.0600 1.0000 0.1132 0.0550
- 047 0.1000 1.0000 0.1818 0.0500
- 048 0.0000 0.0000 0.0000 0.0000
- 049 0.1000 1.0000 0.1818 0.0628
- 050 0.1200 1.0000 0.2143 0.0986
- 051 0.2200 1.0000 0.3607 0.1859
- 052 0.0600 1.0000 0.1132 0.0600
- 053 0.0600 1.0000 0.1132 0.0287
- 054 0.1000 1.0000 0.1818 0.0967
- 055 0.1200 1.0000 0.2143 0.0460
- 056 0.0600 1.0000 0.1132 0.0283
- 057 0.0200 1.0000 0.0392 0.0200
复制代码 |
|