Spec2Vec中的bugs

Spec2Vec

前言:自己最近在做的工作是LC-MS解谱相关的工作,PLoS Computational Biology在今年2月也发表了发表了一篇题为 Spec2Vec: Improved mass spectral similarity scoring through learning of structural relationships 的文章。该文章介绍了一种新的计算质谱相似度的方法。新的算法Spec2Vec是基于自然语言处理中Word2Vec改进而来,与传统的余弦相似度相比,Spec2Vec提高了质谱相似度与结构相似度之间的相关性。该模块是使用Python编写的,但安装该模块运行后发现有几个bugs,因此发出来大家一起分享一下,希望自己踩过的坑别人就不要再踩了,毕竟还是很新的文章,在写这篇博客前还没搜到国内有相关的介绍……

安装

因为是Python,安装非常方便,使用pip或者anaconda都可以。

pip install spec2vec
pip install gensim

Bugs

直接运行文档中给出的demo后,报错了……

TypeError: __init__() got an unexpected keyword argument 'size'

当然实际运行下来错误不止这一个,折腾了我好久才弄好,总结起来都是几个参数名称的错误

找到自己安装Python的路径,进入安装spec2vec的文件夹
Python>Lib>site-packages>spec2vec

model_building.py中,
set_spec2vec_defaults(**settings)函数,107行,defaults里面的键 “size” 改为 "vector_size"

learning_rates_to_gensim_style(num_of_epochs, **settings)函数,135行,settings的键 “iter” 改为 "epochs"

Spec2Vec.py中,_get_word_decimals(model)函数,181行model.wv.vocab 改为 model.wv.key_to_index

vector_operations.py中,_check_model_coverage()函数,第51行,同样是 model.wv.vocab 改为 model.wv.key_to_index


为什么会有这种错误

因为Spec2Vec是基于Gensim的,在Gensim 3.X到4.X版本升级中,有几个参数的名字发生了变化,具体见下:
https://github.com/RaRe-Technologies/gensim/wiki/Migrating-from-Gensim-3.x-to-4
前面两个错误size和vector_size,iter和epochs,都是Spec2Vec 在内部两个模块调用之间出错的,估计是两个人写的模块,一个人按照3.X版本的接口名称来写,另一个按4.X来写。
至于vocab和key_to_index,就是在用3.X的接口来调用了4.X的Gensim
所以说但凡文章作者发出来前完整地把这玩意跑一遍,都不至于这会有这么简单的错误!!!

关于Spec2Vec的使用,请看楼主的另一篇博文:
Spec2Vec快速入门

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值