【保姆级 - 大模型应用开发】 零基础 10 行代码实现词向量训练 | 代码实战

在这里插入图片描述

零基础快速上手:用 Python + jieba + Word2Vec 实现中文词向量训练(全流程实战)

很多人听过「Word2Vec」,却没真正用过它。今天我用最简单直白的方式,带你从原始中文文本出发,自动分词、训练词向量、做词语相似度分析,全流程一次跑通!

  • 所需工具:Python(建议3.6以上)、jieba(中文分词)、gensim(Word2Vec模型工具)

💜 1. 安装依赖:

pip install jieba gensim

💜 2. 准备原始txt文本(无需人工分词)

  • raw.txt,内容如下: (用 gpt 生成的嘿嘿 ^^ )

    我喜欢吃苹果,也喜欢吃香蕉。
    苹果和香蕉都是常见的水果。
    香蕉比苹果更软,苹果更脆。
    很多人早餐喜欢吃香蕉配酸奶。
    有人说苹果有助于消化,香蕉能补充能量。
    超市里香蕉和苹果常常放在一起销售。
    苹果可以榨汁,香蕉也可以做奶昔。
    我买了一斤香蕉和两斤苹果。
    妈妈用苹果和香蕉做了一份水果沙拉。
    香蕉含有钾元素,苹果含有维生素C。
    苹果和香蕉都是健康的零食。
    医生建议每天吃一根香蕉或一个苹果。
    我给小朋友准备了香蕉、苹果和橙子。
    香蕉有点熟了,苹果还是脆的。
    有的人喜欢苹果派,有的人喜欢香蕉蛋糕。
    我把香蕉和苹果放进了便当盒里。
    爷爷每天早上吃香蕉,奶奶喜欢吃苹果。
    这家水果店的香蕉很甜,苹果很新鲜。
    午饭后我们分享了一根香蕉和一个苹果。
    她从冰箱拿出苹果和香蕉切成小块。
    今天的早餐是香蕉、苹果和面包。
    小明吃了两根香蕉,小红吃了一个苹果。
    小狗闻了闻香蕉,又闻了闻苹果。
    在水果拼盘里,香蕉和苹果总是不可缺少。
    锻炼前吃根香蕉,锻炼后咬口苹果。
    

💜 3. 代码示例

下面是完整的可运行 Python 代码,自动读取文本并用 Word2Vec 训练词向量:

import jieba
from gensim.models import Word2Vec


# 使用分词工具 jieba 进行自动分词
sentences = []
with open('raw.txt', 'r', encoding='utf-8') as f:  
    for line in f:
        line = line.strip()
        if not line:
            continue
        words = jieba.lcut(line)
        sentences.append(words)

# 使用 gensim 的 word2vec 进行词向量训练 
model = Word2Vec(
    sentences,
    vector_size=100,
    window=5,  			# 句子中当前单词和被预测单词的最大距离
    min_count=2,		# 需要训练词语的最小出现次数
    workers=2,			# 训练使用的线程数
    sg=1,               # Skip-gram 效果更好(对小数据)
    epochs=100          # 默认epochs太低,多训练几轮
)

# 保存模型以供后续加载使用
model.save('quick_word2vec.model')
print("\n模型已保存为 quick_word2vec.model")

💜 4. 结果验证

# print("词向量 - '水果':")
# print(model.wv['水果'])

# 使用 .similarity() 或 .most_similar() 分析语义关系
print("\n'香蕉' 和 '苹果' 的相似度:")
print(model.wv.similarity('香蕉', '苹果'))
print("\n与 '水果' 最相似的词:")
print(model.wv.most_similar('水果', topn=3))

完整代码

import jieba
from gensim.models import Word2Vec


# 使用分词工具 jieba 进行自动分词
sentences = []
with open('raw.txt', 'r', encoding='utf-8') as f:  
    for line in f:
        line = line.strip()
        if not line:
            continue
        words = jieba.lcut(line)
        sentences.append(words)

# 使用 gensim 的 word2vec 进行词向量训练 
model = Word2Vec(
    sentences,
    vector_size=100,
    window=5,  			# 句子中当前单词和被预测单词的最大距离
    min_count=2,		# 需要训练词语的最小出现次数
    workers=2,			# 训练使用的线程数
    sg=1,               # Skip-gram 效果更好(对小数据)
    epochs=100          # 默认epochs太低,多训练几轮
)

# print("词向量 - '水果':")
# print(model.wv['水果'])

# 使用 .similarity() 或 .most_similar() 分析语义关系
print("\n'香蕉' 和 '苹果' 的相似度:")
print(model.wv.similarity('香蕉', '苹果'))
print("\n与 '水果' 最相似的词:")
print(model.wv.most_similar('水果', topn=3))

# 保存模型以供后续加载使用
model.save('quick_word2vec.model')
print("\n模型已保存为 quick_word2vec.model")

运行后会输出如下示例内容(结果略有浮动):

'香蕉' 和 '苹果' 的相似度:
0.99277806

与 '水果' 最相似的词:
[('香蕉', 0.9611108899116516), ('和', 0.9604138731956482), ('苹果', 0.9593712091445923)]

模型已保存为 quick_word2vec.model

这样你就拥有一个完整的中文Word2Vec词向量训练工具了!(当然实际中还是直接使用别人训练的比较好的就行 https://huggingface.co/spaces/mteb/leaderboard ~~~
并不一定需要我们从头训练;本文的意义更多在于帮助大家理解流程~)

赶紧试试吧 🚀 如果觉得有用,欢迎收藏点赞评论支持!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值