💻 源码
import os

import torch

os.environ["TF_ENABLE_ONEDNN_OPTS"]="0" # 数字必须变成字符串

import jieba
from keras.src.legacy.preprocessing.text import Tokenizer
import torch.nn as nn
# 需要安装 pip install tensorboard
from torch.utils.tensorboard import SummaryWriter   # 词向量可视化工具

if __name__ == '__main__':
    # 1- 准备文本内容
    sentence1 = '传智教育是一家上市公司,旗下有黑马程序员品牌。我是在黑马这里学习人工智能'
    sentence2 = "我爱自然语言处理"
    sentence_list = [sentence1,sentence2]

    # 2- 分词处理
    # word_list最终的结构:[[词11, 词12...], [词21, 词22...]]
    # [['传智', '教育', '是', '一家', '上市公司', ',', '旗下', '有', '黑马', '程序员', '品牌', '。', '我', '是', '在', '黑马', '这里', '学习', '人工智能'], ['我', '爱', '自然语言', '处理']]
    word_list = []
    for sen in sentence_list:
        # lcut不会去重
        word_list.append(jieba.lcut(sen))

    # print(word_list)

    # 3- 训练词汇映射器:去重得到词汇表
    # 3.1- 创建词汇映射器
    my_tokenizer = Tokenizer()
    # 3.2- 训练
    my_tokenizer.fit_on_texts(word_list)
    # 3.3- 获得训练后的结果:词索引与词内容的映射字典
    index_word = my_tokenizer.index_word
    print(index_word)

    # 4- 【掌握】创建词嵌入层word Embedding
    """
        原理:句子 -> 分词 -> 去重得到词汇表 -> 得到词索引 -> Embedding -> 词向量
        
        参数解释:
            num_embeddings:词汇表大小
            embedding_dim:词向量维度。也就是一个词使用一个向量来表示,向量中元素的个数。该值一般是2的n次方,例如:128、256、512....
    """
    ebd = nn.Embedding(num_embeddings=len(index_word),embedding_dim=4)

    # 5- 获得每个词的词向量
    for i in range(len(index_word)):
        # 5.1- 根据词索引得到词向量
        # 注意:传递进去的需要是张量数据类型
        word_vector = ebd(torch.tensor(i))

        # 5.2- 输出
        print(f"词索引{i+1},词的内容 {index_word[i+1]},对应的词向量{word_vector}")

    # 6- 【了解】可视化展示
    summary_obj = SummaryWriter(log_dir="../../runs")  # 注意:runs目录不要手动创建;runs的绝对路径中不要有中文
    summary_obj.add_embedding(ebd.weight.data, index_word.values())
    summary_obj.close()