[智能体-276]:BoW 词袋模型:没有神经网络、无参数训练,只有统计构建流程,和Word2Vec 神经网络训练完全不一样。
核心BoW 是规则统计方法不用梯度下降、不用反向传播、不用训练权重和 Word2Vec 神经网络训练完全不一样。一、整体流程4 步构建步骤 1语料预处理分词原始文本 → 按词语拆分。示例文档D1我 爱吃 苹果D2我 爱吃 香蕉D3苹果 很甜步骤 2构建全局词典全文档去重汇总把所有出现词语去重固定词典顺序\(Vocab[我爱吃苹果香蕉很甜]\)词典长度 向量维度。步骤 3逐文档统计词频以词典顺序统计每个词在当前句子出现次数次数作为向量元素。D1我1爱吃1苹果1香蕉0很甜0 → \([1,1,1,0,0]\)D2我1爱吃1苹果0香蕉1很甜0 → \([1,1,0,1,0]\)D3我0爱吃0苹果1香蕉0很甜1 → \([0,0,1,0,1]\)步骤 4生成文档特征矩阵每行 一篇文档的 BoW 稀疏向量直接送入机器学习模型 (SVM / 朴素贝叶斯)。二、关键为什么 BoW 不需要 “训练”Word2Vec靠神经网络 反向传播迭代更新权重真正训练BoW只依赖计数规则无任何可学习参数词典建好特征就固定。三、TF-IDF词袋优化版生成逻辑同样无训练TF单个词在本文档出现频次IDF词在全部文档的稀缺系数\(IDF\ln\frac{总文档数}{包含该词文档数1}\)\(TF-IDFTF×IDF\)替换原有词频数值依旧是公式计算、无模型训练。四、代码复现构建过程python运行from sklearn.feature_extraction.text import CountVectorizer corpus [ 我爱吃苹果, 我爱吃香蕉, 苹果很甜 ] # 1.实例化词袋工具 bow CountVectorizer() # 2.fit构建词典(等价步骤12)transform统计词频生成向量(步骤3) bow_matrix bow.fit_transform(corpus).toarray() print(词典,bow.get_feature_names_out()) print(BoW特征矩阵\n,bow_matrix)五、对比区分BoW统计计数、无训练、稀疏文本向量Word2Vec神经网络训练、权重迭代、稠密词向量