踩坑过程
在安装glove_python的时候持续的报错:
ERROR: Could not build wheels for annoy, which is required to install pyproject.toml-based projects
这个问题在我之前安装annoy的时候也出现过,是因为c++编译环境的问题。但我已经有Visual Studio的C++环境了,按道理不该出现这个问题了。
仔细看了这一长串报错信息后,发现最根源的问题是这个:
error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
这个的意思似乎是cl的环境没有配置,于是参考下面大佬的教程进行了配置。Windows11下配置Visual Studio2022 环境变量(Windows下配置Visual Studio 通用)_vs2022环境变量配置-CSDN博客文章浏览阅读4w次,点赞79次,收藏270次。Windows下配置Visual Studio _vs2022环境变量配置https://blog.csdn.net/en_Wency/article/details/124767742其实有很多大佬提到的文件路径我都没有,不过似乎不影响,因为我只是在path中加了这一个路径:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\bin\Hostx86\x64(在这个路径下有一个cl.exe,也正是这个路径在安装glove_python的时候报错了)
问题解决
但是在我的python3.8的环境下,安装还是不成功。一筹莫展了很久,也搜寻了很多很多教程和解答,重复卸载安装了好几次Visual Studio,最后在多种尝试下,我发现这个问题的解决需要做到两点:①python降版本到3.6,②Visual Studio的环境配置
①在conda中新建一个python3.6的虚拟环境(注意换源,这点是我最不喜欢conda的一点)
②安装Visual Studio Community2022,并在path系统变量中添加上面提到的那个路径
是否成功配置,看在命令行输入cl,能不能显示下面的语句
③conda的新虚拟环境下,pip install glove-python-binary
关于第三点,我在pycharm和github的问答中都看过,将Glove封装到python中的大佬制作了几个版本,包括glove_python, glove-python3, glove-python-binary,所以这三者是相同的,只是具体能安装哪个,只能用试的。
简单使用
from glove import Corpus, Glove
sentences = [["word1", "word2"], [word3, word4], ...[]]
corpus = Corpus()
corpus.fit(sentences, window=10)
model = Glove()
model.fit(corpus.matrix)
glove_wv = glove.word_vectors
print(glove.word_vectors[corpus.dictionary["word1"]])
# 这里需要注意,要通过corpus.dictionary进行具体单词的查询
# 而glove model虽然也有dictionary属性,但输出为None
# 这点不清楚是怎么回事,似乎是源码中就没有对初始赋值的dictionary进行处理