写在前面:如果你要单独用这个包(不在别的任务中嵌入,可以参照以下内容安装,否则千万不要用这个包!!!)
因为这个包用的依赖都是老古董,你的新任务一般不能用得上这种老古董!
最近需要用nlg-eval包来评估bleu分数,参照以下大佬的教程做的:
超详细!linux系统nlg-eval安装指南-CSDN博客
步骤没错的话,首先会遇到numpy报错:AttributeError: module 'numpy' has no attribute 'bool'
搜索之后的解决办法是将numpy变为1.22左右,此时再运行会报错另一个错误:
AttributeError: module 'numpy.distutils.__config__' has no attribute 'blas_opt_info'
而这个问题的解决办法是让你升级numpy版本
这时候发现第二层是theno出的错误,此时你可能会想更换theno版本,但是更换之后会报错:
这些就是编译报错,归根结底是theno、cython以及numpy的版本问题。
是编译生成C文件的时候,版本不对,新版本已经没有需要的变量了,需要把以下文件删除:(具体看自己的路径)
~/.theano/compiledir_*
然后需要去换版本,使用一些老古董版本,具体参照以下pip list:
另外有可能遇到类似调用 "jar spice.jar "的命令时出现错误, 这个是因为nlgeval的版本问题,在更新到2.4以上版本时新增了spice指标的计算,但是jar包好像还不太完善,可以去conda/envs/lib/python/site-packages/nlg-eval...-egg/nlgeval/__init__.py里修改相应的调用代码,将spice的相关内容注释掉即可(如果你不需要这个指标的话,具体如下图,有多处需要注释)
最后即可成功使用nlg-eval计算bleu分数