ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spec2Vec中的bugs

2021-04-17 22:31:54  阅读:218  来源: 互联网

标签:spec2vec bugs Spec2Vec wv model Gensim size


目录

Spec2Vec

前言:自己最近在做的工作是LC-MS解谱相关的工作,PLoS Computational Biology在今年2月也发表了一种新的计算质谱相似度的方法。新的算法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,bugs,Spec2Vec,wv,model,Gensim,size
来源: https://blog.csdn.net/Eumenidus/article/details/115802510

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有