1. 自然语言处理与词向量基础
自然语言处理(NLP)作为人工智能的重要分支,其核心任务是将人类语言转化为机器可理解的数值形式。想象一下,如果我们要让计算机理解"猫喜欢吃鱼"这句话的含义,就需要把文字转化为它能处理的数字——这就是词向量的作用。
词向量本质上是将单词映射到高维空间中的点。在这个空间里,语义相近的词会聚集在一起。例如"国王"和"王后"的向量距离,应该与"男人"和"女人"的向量距离相似。这种几何关系让机器能够捕捉词语之间的语义关联。
1.1 词向量生成方法对比
目前主流的词向量生成方法可分为两大类:
统计方法:
- TF-IDF(词频-逆文档频率):衡量单词在文档中的重要性
- 共现矩阵:统计单词在上下文窗口中的共现频率
- 特点:计算简单,但无法捕捉深层语义关系
深度学习方法:
- Word2Vec(含CBOW和Skip-gram):通过预测上下文学习词向量
- GloVe:结合全局统计和局部上下文信息
- BERT等Transformer模型:生成上下文相关的动态词向量
- 特点:能学习丰富的语义信息,但需要更多计算资源
实际选择建议:对于小型数据集或简单任务,统计方法更高效;当需要捕捉复杂语义关系时,深度学习模型表现更优。
1.2 Word2Vec原理详解
让我们深入分析Word2Vec的两种架构:
CBOW(连续词袋模型):
- 输入:上下文单词(如"猫","鱼")
- 输出:预测中心词(如"吃")
- 适合:小型数据集,高频词预测
Skip-gram:
- 输入:中心词(如"吃")
- 输出:预测上下文单词
- 适合:大型数据集,稀有词学习
这两种模型都通过神经网络训练,最终提取隐藏层的权重作为词向量。训练过程中使用负采样(Negative Sampling)或层次Softmax来优化计算效率。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 词向量实战:从基础到情感分析
2.1 基础词向量生成示例
下面通过一个完整示例演示如何使用CountVectorizer生成词向量:
python复制from sklearn.feature_extraction.text import CountVectorizer
texts = ["狗 猫 鱼", "狗 猫 猫", "鱼 鸟", "
