Linux安装NLG-Eval

最近在跑一个对话生成的代码,其中用到了NLG-Eval来进行模型评估,开始没在意,心想直接pip就好了

pip install NLG-Eval

但当我开始用它的时候:

nlg-eval --hypothesis=./predictions.txt --references=./reference.txt --no-skipthoughts --no-glove

1、报错了

Could not determine location of data.
Run `nlg-eval --setup DATA_DIR’ to download or set $NLGEVAL_DATA to an existing location

既然如此,那我执行就好了吧

nlg-eval --setup

结果有两个文件下不下来,还一直报错
在这里插入图片描述
在这里插入图片描述
于是我就根据报错中提到的网址,把文件下载了,然后上传到指定路径。
(受大小限制,数据包不能全部上传,这里只放了几个经常下不下来的,大家自取https://download.csdn.net/download/didadifish/86873006)

这下总该可以了吧,执行还是报同样的错!
难道是我没有设置DATA_DIR,重新来一次

nlg-eval --setup /自己的下载路径

还是不行。。。

2、问题查找

只能上官网看看了https://github.com/Maluuba/nlg-eval
在这里插入图片描述
查看bin目录里面的setup文件
在这里插入图片描述
如果设定了路径,那数据就是下载都到设定的路径,如果没有,就是下载到默认路径~/.cache/nlgeval
那问题出在哪儿了呢?继续往下看
在这里插入图片描述
找到这个get_data_dir()函数,终于找到了问题所在!
在这里插入图片描述
如果在环境变量中找到了NLGEVAL_DATA,并且这个路径确实存在,就会返回这个路径,但前面的setup()函数中并没有设置这个环境变量的值(大家可以通过os.environ.keys()查看系统中是否存在这个变量)
如果环境变量中没有这个值,就会从~/.config/nlgeval/rc.json这个文件中读取路径的值,我以为这是设置了DATA_DIR时,会保存下来的,但我查看目录里却没有找到这个文件,
所以才会报错,执行了except中的语句

3、问题解决
(1)最直接的,修改utils里的get_data_dir函数,直接返回我们数据保存的路径(utils文件在路径 nlg_eval安装环境/lib/pythonx.x/site-packages/nlgeval/ 下)
在这里插入图片描述
(2)添加环境变量NLGEVAL_DATA,并将值设置为数据保存的路径,如何设置环境变量,可以参考这篇博客https://www.cnblogs.com/Robert-huge/p/5546427.html

4、成功终于解决了困扰我两天的问题
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值