← 返回教程目录
第 7 章 · 第 1 节 相似词分析

Word2Vec 训练:5 行代码出词向量

Word2Vec Training: 5 Lines to Embeddings

词频/共现都是统计思路,Word2Vec 是语义思路 — 它能把小米和华为映射到相近的向量空间(因为它们总出现在相似的语境里)。

核心思想:一个词的意思,由它周围的词决定(Distributional Hypothesis)。

1. 准备语料 + 分词

import jieba

import pandas as pd

from gensim.models import Word2Vec



df = pd.read_csv('comments.csv')

sentences = []

for text in df['content']:

    words = jieba.lcut(text.strip())

    if len(words) > 3:

        sentences.append(words)



print(f'训练句子数: {len(sentences)}')

# 训练句子数: 49872

2. 训练 Word2Vec

model = Word2Vec(

    sentences,

    vector_size=100,

    window=5,

    min_count=5,

    workers=4,

    epochs=10,

    sg=0  # 0=CBOW, 1=Skip-gram

)



model.save('word2vec.model')

print('模型已保存')
CBOW vs Skip-gram:CBOW 用上下文猜中心词(快),Skip-gram 用中心词猜上下文(准,大语料首选)。小语料用 CBOW,大语料用 Skip-gram。

3. 找相似词

similar = model.wv.most_similar('小米', topn=10)

for word, score in similar:

    print(f'{word:8s} 相似度={score:.4f}')



# 华为     相似度=0.8231

# 国产     相似度=0.7842

# 旗舰     相似度=0.7521

Word2Vec 训练完毕,下一节我们用它做更骚的操作 — 类比推理和聚类。

想跳过训练,直接出相似词 + 词嵌入散点图?

配套软件内置 Word2Vec 训练 + 相似度计算 + 散点图可视化,导入即出可交互图

查看淘宝软件 →