【问题标题】:how to generate sentence vector using word2vec?如何使用 word2vec 生成句子向量?
【发布时间】:2021-11-27 19:17:52
【问题描述】:

我想使用 word2vec 技术生成句子的向量。我已开发此代码,但出现错误。

import pandas as pd
from gensim.models import Word2Vec
df = pd.read_csv('after stopwords.csv')
vocab = df['plot']
model = Word2Vec(sentences=vocab, size=100, window=10, min_count=3, workers=4, sg=0)
df['plot'].apply(model.vectorize)

错误

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-1-9fdf8b202e75> in <module>
      4 vocab = df['plot']
      5 model = Word2Vec(sentences=vocab, size=100, window=10, min_count=3, workers=4, sg=0)
----> 6 df['plot'].apply(model.vectorize)

AttributeError: 'Word2Vec' object has no attribute 'vectorize'

【问题讨论】:

  • 错误明确指出了问题所在。 model 变量包含`一个 word2vec 类型的对象`。检查word2vec类的方法和属性。
  • @Priya 我是 gensim 的新手,您能帮帮我吗?
  • 是的...你想达到什么目的?
  • @Priya 我已经解决了这个问题,感谢您宝贵的时间。

标签: python nlp word2vec


【解决方案1】:

word2vec 算法没有指定任何方法来为句子创建单个向量,Gensim 中的 Word2Vec 模型类也没有。

使用一组词向量将包含一堆词的文本(如句子)转换为向量的一种潜在方法是将文本表示为所有单个词向量的平均值。你认为那是你想做的吗?

另外:您的 Word2Vec 模型不太可能有用,因为您的 vocab 变量看起来不适合 Word2Vec 训练的格式。该类期望其训练数据中的每个项目都是一个列表,其中包含单个单词。也就是说,它不将文本作为字符串,而是作为已经标记化的字符串列表。

【讨论】:

    猜你喜欢
    • 2018-10-26
    • 1970-01-01
    • 2021-01-10
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2020-12-26
    • 1970-01-01
    相关资源
    最近更新 更多