对于这个问题,我用了一下午加晚上的时间才解决,差点吊死这上面。由于我发现很多地方没有记录我这个问题具体怎么解决,所以我就简单记录一下,也可以帮助遇到此坑的人。
问题:抛出KeyError,某个关键词不存在。
目的:不管当前这个而是忽略继续找后面的。
原因:在keyedvectors.py里面有个get_index方法,这个方法是去查你传的key是否存在,如果不存在,就会抛出异常,程序就不会继续跑了。要查看这个方法,只需要在gensim.models.word2vec.Word2Vec.wv.get_index的get_index上ctrl+鼠标左键就可以看到了(我实在pycharm里写的代码,是可以这样看源代码的)
解决方式:让get_index返回值时不抛出异常,而是直接返回-1,这样问题解决了。

处理KeyError:优雅地忽略不存在的关键词
博客记录了作者遇到KeyError的问题,原因是调用get_index方法时,如果关键词不存在,会抛出异常导致程序中断。解决方案是修改get_index方法,在找不到关键词时返回-1而不是抛出异常,从而顺利解决问题。
6788





