免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wlyqiqi
打印 上一主题 下一主题

[文本处理] awk相关问题 [复制链接]

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
11 [报告]
发表于 2014-04-22 13:36 |只看该作者
回复 8# wlyqiqi

问题本不难,你又不举例,
描述又乱写,让人费疑猜?
   

论坛徽章:
0
12 [报告]
发表于 2014-04-22 13:48 |只看该作者
回复 10# Herowinter

未命名文件夹.zip (45.26 KB, 下载次数: 3)

召回率=A/(A+C)  召回率:检索到的相关文档 比 库中所有的相关文档
准确率=A/(A+B)  准确率:检索到的相关文档 比 所有被检索到的文档
A:检索到的,相关的 (搜到的也想要的)
B:检索到的,但是不相关的 (搜到的但没用的)
C:未检索到的,但却是相关的 (没搜到,然而实际上想要的)
D:未检索到的,也不相关的 (没搜到也没用的)

training.qrels是相关文件,TF_IDF_0.res是搜索得到的文件





   

论坛徽章:
0
13 [报告]
发表于 2014-04-22 13:54 |只看该作者
回复 10# Herowinter

我把附件上传了

   

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
14 [报告]
发表于 2014-04-22 14:06 |只看该作者
本帖最后由 Herowinter 于 2014-04-22 14:06 编辑

回复 12# wlyqiqi
可不可以这样理解,搜索得到的文件TF_IDF_0.res(file1)和 相关training.qrels(file2),
以$1 $3作为key
A 表示file1中key存在file2中的记录数
B 表示file1中key不存在file2中的记录数
C 表示file2中key不存在file1中的记录数
D 我真心连猜都不会了


   

论坛徽章:
0
15 [报告]
发表于 2014-04-22 14:25 |只看该作者
回复 14# Herowinter

对,是这样理解的。计算中不用考虑D。
召回率和准确率计算时不是计算整体文件,而是考虑同一$1。(001的召回率,002的召回率。。。)(001的准确率,002的准确率。。。)

最后是一个表列出57个query的准确率召回率
   

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
16 [报告]
发表于 2014-04-22 16:35 |只看该作者
本帖最后由 Herowinter 于 2014-04-22 16:39 编辑

回复 15# wlyqiqi
这是我写的,不知到为什么召回率大都是1,也许我哪里算错了?
按我的理解来看,training.qrels文件中的key在 TF_IDF_0.res文件中大都存在,
所以C大多数时候为0,然后按你的公式,A/A+C 召回率就是1了。
  1.   awk 'NR==FNR{a[$1" "$3];next} {b[$1" "$3]} END{for(i in b){split(i,key," ");k=key[1];if(i in a){A[k]++}else B[k]++};for(i in a)if(!(i in b))C[k]++;print "key\t准确率\t召回率";l=asorti(A,AA);for(i=1;i<=l;i++){k=AA[i];print k"\t"A[k]/(A[k]+B[k])"\t"A[k]/(A[k]+C[k])}}' training.qrels TF_IDF_0.res
  2. key        准确率        召回率
  3. 001        0.04        1
  4. 002        0.08        1
  5. 003        0.02        1
  6. 004        0.02        1
  7. 005        0.06        1
  8. 006        0.02        1
  9. 007        0.06        1
  10. 008        0.08        1
  11. 009        0.14        1
  12. 010        0.14        1
  13. 011        0.1        1
  14. 012        0.22        1
  15. 013        0.14        1
  16. 014        0.04        1
  17. 015        0.1        1
  18. 016        0.18        1
  19. 017        0.08        1
  20. 018        0.04        1
  21. 019        0.08        1
  22. 020        0.14        1
  23. 021        0.12        1
  24. 022        0.04        1
  25. 023        0.02        1
  26. 024        0.06        1
  27. 025        0.1        1
  28. 026        0.06        1
  29. 027        0.12        1
  30. 028        0.06        1
  31. 030        0.02        1
  32. 031        0.24        1
  33. 032        0.02        1
  34. 033        0.02        1
  35. 034        0.02        1
  36. 035        0.04        1
  37. 036        0.1        1
  38. 037        0.1        1
  39. 038        0.02        1
  40. 039        0.16        1
  41. 040        0.1        1
  42. 041        0.02        1
  43. 042        0.34        1
  44. 043        0.04        1
  45. 044        0.04        1
  46. 045        0.18        1
  47. 046        0.06        0.09375
  48. 047        0.1        1
  49. 049        0.1        1
  50. 050        0.12        1
  51. 051        0.22        1
  52. 052        0.06        1
  53. 053        0.06        1
  54. 054        0.1        1
  55. 055        0.12        1
  56. 056        0.06        1
  57. 057        0.02        1
复制代码

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
17 [报告]
发表于 2014-04-22 16:44 |只看该作者
回复 16# Herowinter
召回率我应该算错了,我再改改,等下有事做,
也许要比较晚。

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
18 [报告]
发表于 2014-04-22 16:55 |只看该作者
回复 15# wlyqiqi
用这个吧。
  1. awk 'NR==FNR{a[$1" "$3];next} {b[$1" "$3]} END{for(i in b){split(i,key," ");k=key[1];if(i in a){A[k]++}else B[k]++};for(i in a){split(i,key," ");k=key[1];if(!(i in b))C[k]++};print "key\t准确率\t召回率";l=asorti(A,AA);for(i=1;i<=l;i++){k=AA[i];print k"\t"A[k]/(A[k]+B[k])"\t"A[k]/(A[k]+C[k])}}' training.qrels TF_IDF_0.res
  2. key        准确率        召回率
  3. 001        0.04        1
  4. 002        0.08        1
  5. 003        0.02        1
  6. 004        0.02        0.0588235
  7. 005        0.06        1
  8. 006        0.02        1
  9. 007        0.06        1
  10. 008        0.08        1
  11. 009        0.14        1
  12. 010        0.14        1
  13. 011        0.1        1
  14. 012        0.22        1
  15. 013        0.14        1
  16. 014        0.04        1
  17. 015        0.1        1
  18. 016        0.18        1
  19. 017        0.08        1
  20. 018        0.04        1
  21. 019        0.08        1
  22. 020        0.14        1
  23. 021        0.12        1
  24. 022        0.04        1
  25. 023        0.02        1
  26. 024        0.06        1
  27. 025        0.1        1
  28. 026        0.06        0.75
  29. 027        0.12        1
  30. 028        0.06        0.5
  31. 030        0.02        1
  32. 031        0.24        1
  33. 032        0.02        0.5
  34. 033        0.02        1
  35. 034        0.02        1
  36. 035        0.04        1
  37. 036        0.1        0.833333
  38. 037        0.1        1
  39. 038        0.02        1
  40. 039        0.16        1
  41. 040        0.1        1
  42. 041        0.02        1
  43. 042        0.34        1
  44. 043        0.04        1
  45. 044        0.04        1
  46. 045        0.18        1
  47. 046        0.06        1
  48. 047        0.1        1
  49. 049        0.1        1
  50. 050        0.12        1
  51. 051        0.22        1
  52. 052        0.06        1
  53. 053        0.06        1
  54. 054        0.1        1
  55. 055        0.12        1
  56. 056        0.06        1
  57. 057        0.02        1
复制代码

论坛徽章:
0
19 [报告]
发表于 2014-04-22 17:37 |只看该作者
回复 18# Herowinter

好,我自己运行一下试试看,太感谢了~!!!

论坛徽章:
0
20 [报告]
发表于 2014-04-23 00:14 |只看该作者
回复 16# Herowinter


为何会出现calling undefined function asorti 。。。
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP