news 2026/4/15 6:15:58

小白从零开始勇闯人工智能:机器学习初级篇(词向量转换)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小白从零开始勇闯人工智能:机器学习初级篇(词向量转换)

引言

自然语言处理的核心目标在于让计算机能够解读并理解人类语言。要实现这一目标,词向量转换技术起到了至关重要的作用。该技术通过将离散的文字符号转化为连续的、富含语义信息的数值向量,从而为计算机提供了处理语义的数学基础。正是这一根本性的转化,使得机器能够开始“理解”词语的含义及其关联,有效解决了“如何让机器解读语义”这一主要问题,为后续各种复杂的语言应用打下了基础。

一、为什么需要词向量?

要弄清楚词向量,必须首先回答一个基本问题:机器为何无法直接理解文字?这是因为人类使用的语言是由“猫”、“跑”、“美丽”等抽象符号构成的系统,而计算机的运算基础完全是数值计算。为了让机器能够处理这些文本符号,早期我们设计了一种名为“独热编码”的方法。其核心思想是为词汇表中的每一个词语分配一个独一无二、维度很高的二进制向量,以此将每个词语转化为一个可被机器识别的离散数值标识。

举个例子:

假设有一个小型词汇表:[猫,狗,鱼,开心] “猫” 的 One-Hot 向量:[1, 0, 0, 0] “狗” 的 One-Hot 向量:[0, 1, 0, 0] “鱼” 的 One-Hot 向量:[0, 0, 1, 0]

然而,独热编码方法存在两个问题:

首先是维度灾难问题。假设词汇表规模达到十万个词,那么每个词对应的向量长度也必须达到十万维。这会产生巨大的存储和计算负担,使得模型效率极其低下。

其次是它完全无法表达语义。以“猫”和“狗”这两个语义相近的词为例,在独热编码体系下,它们对应的向量彼此正交,其数学上的相似度为零,这意味着机器根本无法从中学习到任何词语之间的关联信息。

这时候,词向量(Word Embedding,也叫词嵌入) 应运而生 —— 它把每个词映射到低维、稠密的数值向量空间,让向量的几何关系直接对应词语的语义关系。比如 “猫”=[0.2, 0.8, -0.1],“狗”=[0.18, 0.79, -0.09],两者相似度极高,机器终于能 “理解” 它们的语义关联了。

二、词向量核心基础知识

1、词向量的定义

词向量的本质,是将语言中的离散符号(词语)映射为连续、稠密的数值向量的过程。其核心的设计目标,是让这些向量在数学空间中的几何关系——包括距离远近与算术运算能够精准对应词语之间的语义关联。语义相近的词语(例如“猫”与“狗”),其对应的向量在空间中的位置会非常接近。更进一步,词语之间复杂的逻辑关系(例如“国王”减去“男性”再加上“女性”约等于“女王”),能够通过向量之间的加减计算直观地展现出来,从而实现用数学运算来模拟语义推理。

2、词向量的核心特性

词向量的构建具有三个核心特征。

低维:首先,它是低维的,通常被压缩到50、100或200维,这相比独热编码的极高维度提升了计算效率与存储可行性。

稠密:其次,它是稠密的,这意味着向量中的每一位都是一个有意义的连续数值,而非独热编码中大量为零的稀疏结构。

语义承载:最关键的是,其每个维度都承载了特定的潜在语义特征,例如可能对应“生物类别”或“功能用途”等抽象属性,使得词语的语义信息被分布式地编码在这个紧凑的向量之中。

3、入门必知的词向量模型

词向量的生成依赖机器学习模型,我们现阶段只要了解 3 类经典模型的核心逻辑即可。

1、Word2Vec

Word2Vec是自然语言处理中最经典词向量模型,其理论基础是“分布假设”,即认为具有相似上下文的词语在语义上也相近。该模型主要包含两种不同的训练架构以实现这一目标:第一种是CBOW(连续词袋模型),它通过整合目标词周围的所有上下文词语信息来预测中心词本身,例如根据“我”、“养了”、“一只”来推测出中心词“猫”。第二种是Skip-gram(跳字模型),其思路恰好相反,它是利用给定的中心词来预测其周围可能出现的上下文词语,例如通过“猫”这个词来预测其前后可能搭配的“我”、“养了”、“一只”等词汇。这两种方法都成功地将词语的语义信息编码到了低维稠密的向量之中。

2、GloVe(全局向量)

GloVe(全局向量)是一种融合了局部上下文与全局统计信息的词向量模型。它通过分析整个语料库中词语的共现频率,构建一个全局的词共现矩阵,并在此基础上进行优化训练。这种方法本质上结合了类似Word2Vec的上下文窗口捕捉局部语义的能力,同时融入了全局的词频统计信息,使得生成的词向量能更稳定、更精准地反映词语在整个语言环境中的分布规律。

3、FastText

FastText模型是对Word2Vec框架的改进与拓展。其核心在于引入子词(subword)的概念,即将每个词语进一步拆解为更细粒度的字符级n-gram单元(例如“苹果”可拆分为“苹”、“果”及“苹果”等片段)。在训练时,模型会为这些n-gram片段也学习向量表示,而一个完整词的词向量则由其所有组成片段的向量组合而成。这种方法使模型即使面对未在训练集中出现过的生僻词、拼写变体或网络新词时,也能通过组合其字符片段来生成一个合理的向量表示,从而提升了对未登录词的处理能力和整体模型的鲁棒性。

4、关键辅助概念:余弦相似度

判断两个词向量的语义相似度,最常用且有效的指标是余弦相似度,其计算结果介于-1到1之间。具体而言,数值越接近1,代表两个词的语义越相似,例如“猫”和“狗”,数值越接近-1,则意味着语义越相反,例如“开心”与“难过”,若数值接近0,则表明两者之间没有明显的语义关联,例如“猫”和“开心”。其计算公式为两个向量的点积除以各自模长的乘积:

三、实操案例:用 Python 生成并使用词向量

我们首选gensim库(专为文本处理设计),结合jieba完成中文分词,从零训练词向量并验证语义相似度。

1、环境准备

先安装所需库:

pip install gensim jieba

2、完整代码

1、准备语料

import jieba from gensim.models import Word2Vec corpus = [ "我养了一只小猫 猫是宠物", "我养了一只小狗 狗是宠物", "小猫是猫 猫喜欢吃鱼", "狗和猫都是宠物 猫和狗一起玩", "小猫吃鱼 鱼是猫的食物", "猫和狗是同类 小猫和猫一样", "猫吃鱼 狗啃骨头 猫和狗是伙伴" ]

2、文本预处理(分词+过滤停用词)

stop_words = ["的", "了", "一只", "是", "都", "和", "一起", "玩", "啃", "骨头", "伙伴", "食物", "同类", "一样"] processed_corpus = [] for sentence in corpus: # 中文分词 words = jieba.lcut(sentence) # 过滤停用词和空字符 filtered_words = [word for word in words if word not in stop_words and word.strip()] processed_corpus.append(filtered_words)

3、训练Word2Vec模型

# 参数说明: # sentences:预处理后的语料 # vector_size:词向量维度(建议50-200) # window:上下文窗口大小(中心词前后各取n个词) # min_count:最小词频(只保留出现≥该值的词) # sg:模型类型(0=CBOW,1=Skip-gram) model = Word2Vec( sentences=processed_corpus, vector_size=10, # 低维度适配小语料,易学习核心关联 window=5, # 扩大上下文窗口,捕捉更多核心词关联 min_count=1, # 保留所有核心词 sg=1, # Skip-gram更适合小语料学习语义关联 epochs=200 # 增加训练轮数,让模型充分学习关联 )

4、使用词向量

# 获取“猫”的词向量(打印前10维,避免输出过长) cat_vec = model.wv["猫"] formatted_cat_vec = [round(x, 6) for x in cat_vec[:10]] print("“猫”的词向量(前10维):", formatted_cat_vec) # 计算并格式化语义相似度(保留4位小数) similarity_cat_dog = round(model.wv.similarity("猫", "狗"), 4) print("\n“猫”和“狗”的语义相似度:", similarity_cat_dog) similarity_cat_fish = round(model.wv.similarity("猫", "鱼"), 4) print("“猫”和“鱼”的语义相似度:", similarity_cat_fish) # 输出与“猫”最相似的3个词 most_similar_to_cat = [(word, round(score, 4)) for word, score in model.wv.most_similar("猫", topn=3)] print("\n与“猫”最相似的3个词:", most_similar_to_cat)

3. 结果

因为本案例用的是极小语料,所以结果可能会有差异。实际应用中需用更大的语料库(如新闻、小说、百科文本),词向量的语义表达会更精准。

到这里我们就了解了词向量的基础内容了,在下一章里我们将学习机器学习中最后一个重要的部分——降维。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/8 20:23:26

OCR识别不准?cv_resnet18_ocr-detection微调训练详细步骤

OCR识别不准?cv_resnet18_ocr-detection微调训练详细步骤 1. 背景与问题分析 在实际应用中,通用OCR模型往往难以应对特定场景下的文字检测任务。例如,在工业仪表、票据识别、手写体或低质量图像中,预训练模型的检测准确率显著下…

作者头像 李华
网站建设 2026/4/12 3:47:46

收藏备用!传统RAG与Agentic RAG深度对比:从原理到代码,小白也能看懂的大模型检索增强技术指南

本文系统对比传统RAG与Agentic RAG两种主流检索增强生成技术,拆解核心差异、工作逻辑与适用场景。传统RAG以简单线性架构实现快速响应,低成本适配基础需求但准确性受限;Agentic RAG通过智能代理系统实现多步推理与动态检索,大幅提…

作者头像 李华
网站建设 2026/4/15 1:43:52

Supertonic轻量级TTS技术揭秘|66M参数实现极致性能

Supertonic轻量级TTS技术揭秘|66M参数实现极致性能 获取更多AI镜像 想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。 …

作者头像 李华
网站建设 2026/4/10 22:18:20

Speech Seaco Paraformer ASR品牌口碑监控:消费者评价语音采集

Speech Seaco Paraformer ASR品牌口碑监控:消费者评价语音采集 1. 引言 在数字化营销与用户体验管理日益重要的今天,企业对消费者真实反馈的获取方式正从传统的文本评论分析,逐步扩展到更自然、更直接的语音数据采集。尤其是在客服通话、产…

作者头像 李华
网站建设 2026/4/4 8:40:45

从0开始学大模型:Qwen3-4B-Instruct-2507新手教程

从0开始学大模型:Qwen3-4B-Instruct-2507新手教程 1. 引言:为什么选择 Qwen3-4B-Instruct-2507? 在当前大模型快速发展的背景下,如何在有限算力条件下实现高性能推理成为开发者关注的核心问题。阿里云推出的 Qwen3-4B-Instruct-…

作者头像 李华
网站建设 2026/4/11 11:06:03

如何调节unet风格强度?0.1-1.0区间效果实测报告

如何调节UNet风格强度?0.1-1.0区间效果实测报告 1. 背景与问题引入 在当前AI图像生成领域,人像卡通化技术正逐步从实验室走向实际应用。基于UNet架构的cv_unet_person-image-cartoon模型由阿里达摩院ModelScope平台提供,凭借其轻量级设计和…

作者头像 李华