Python 3.x 类型错误:';Word2Vec';对象不可下标

Python 3.x 类型错误:';Word2Vec';对象不可下标,python-3.x,jupyter-notebook,gensim,word2vec,Python 3.x,Jupyter Notebook,Gensim,Word2vec,我试图构建Word2vec模型,但当我试图为令牌重塑向量时,我得到了这个错误。有什么想法吗 wordvec_arrays = np.zeros((len(tokenized_tweet), 100)) for i in range(len(tokenized_tweet)): wordvec_arrays[i,:] = word_vector(tokenized_tweet[i], 100) wordvec_df = pd.DataFrame(wordvec_arrays) word

我试图构建Word2vec模型,但当我试图为令牌重塑向量时,我得到了这个错误。有什么想法吗

wordvec_arrays = np.zeros((len(tokenized_tweet), 100)) 
for i in range(len(tokenized_tweet)):
    wordvec_arrays[i,:] = word_vector(tokenized_tweet[i], 100)
wordvec_df = pd.DataFrame(wordvec_arrays) 
wordvec_df.shape

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-101-71156bf1c4a3> in <module>
      1 wordvec_arrays = np.zeros((len(tokenized_tweet), 100))
      2 for i in range(len(tokenized_tweet)):
----> 3     wordvec_arrays[i,:] = word_vector(tokenized_tweet[i], 100)
      4 wordvec_df = pd.DataFrame(wordvec_arrays)
      5 wordvec_df.shape

<ipython-input-100-e3a82e60af93> in word_vector(tokens, size)
      4     for word in tokens:
      5         try:
----> 6             vec += model_w2v[word].reshape((1, size))
      7             count += 1.
      8         except KeyError: # handling the case where the token is not in vocabulary

TypeError: 'Word2Vec' object is not subscriptable
wordvec_数组=np.zero((len(标记化tweet),100))
对于范围内的i(len(标记化的_tweet)):
wordvec_数组[i,:]=word_向量(标记化的tweet[i],100)
wordvec_df=pd.DataFrame(wordvec_数组)
wordvec_df.shape
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
1 wordvec_数组=np.0((len(标记化的_tweet),100))
2对于范围内的i(len(标记化的_tweet)):
---->3个wordvec_数组[i,:]=word_向量(标记化的tweet[i],100)
4 wordvec_df=pd.DataFrame(wordvec_数组)
5字矢量形状
在word_向量中(标记、大小)
4对于代币中的单词:
5.尝试:
---->6 vec+=模型_w2v[word]。重塑((1,大小))
7计数+=1。
8除KeyError外:#处理令牌不在词汇表中的情况
TypeError:“Word2Vec”对象不可下标

从Gensim 4.0及更高版本开始,
Word2Vec
模型不支持对单个单词的订阅索引访问(即
['…'])。(以前的版本会显示一个弃用警告,
方法将在4.0.0中删除,对于此类使用,请使用self.wv.getitem())

因此,当您想要访问一个特定的单词时,可以通过
Word2Vec
model的
.wv
属性进行访问,该属性只保存单词向量。因此,您的(unshown)
word\u vector()
函数应该将其在错误堆栈中高亮显示的行更改为:

            vec += model_w2v.wv[word[.reshape((1, size))

谢谢你,戈乔莫。