【问题标题】:How to convert the text into vector using word2vec embedding?如何使用 word2vec 嵌入将文本转换为向量?
【发布时间】:2026-01-12 00:15:02
【问题描述】:

假设我有一个如下所示的数据框:

|文字

|罗德岛的风暴比上次飓风还要严重

|芝加哥绿线脱轨

|MEG 发布危险天气展望

我使用以下代码创建了 word2vec 模型:

def sent_to_words(sentences):
    for sentence in sentences:
        yield(gensim.utils.simple_preprocess(str(sentence), deacc=True))

text_data = sent_to_words(df['Text'])
w2v_model = gensim.models.Word2Vec(text_data, size=100, min_count=1, window=5, iter=50)

现在我将如何使用这个 word2vec 模型将“文本”列中的文本转换为向量?

【问题讨论】:

    标签: python-3.x machine-learning nlp word2vec word-embedding


    【解决方案1】:

    您可以通过

    获得生成的词嵌入
    w2v_model.wv
    

    您可以通过

    获得特定单词的词嵌入
    w2v_model.wv['word']
    

    【讨论】:

    • 是的,通过这个我们可以得到一个特定单词的嵌入。我要问的是如何获得完整文本的矢量。例如:我想获得文本“RI 中的风暴比上次飓风更糟”的向量表示。
    • 有几种方法可以实现这一点。您可以遍历您的语料库并确定具有最大字数的句子。(命名为 max_word_count)然后,您可以生成大小为(word_embedding 大小)*(max_word_count)的句子嵌入。然后你可以连接词嵌入,在较短的句子的末尾有零。另一种选择是您可以对句子中的嵌入进行平均。但请记住,这样做可能会丢失词序。