自然语言处理基础:词的表示(共现矩阵)

1、什么是共现矩阵

共现矩阵是一种用于统计文本中词语共现关系的二维矩阵。矩阵中的元素值表示两个词语在特定窗口(如句子、段落或文档)内共同出现的频率或次数,通过量化词语间的共现关系,反映词语在语义或语境上的关联程度。例如,在句子 “苹果是红色的水果,苹果汁也很美味” 中,“苹果” 与 “水果”“汁” 的共现次数会增加,暗示它们在语义上相关。

2、共现矩阵的特点

(1) 对称性

若矩阵表示无向共现(如不考虑词语顺序),则矩阵是对称的,即元素值 M[i][j] = M[j][i](词语 i 与 j 的共现次数等于 j 与 i 的共现次数);若考虑顺序(如滑动窗口内前向共现),则可能不对称。

(2) 稀疏性

在大规模语料库中,大部分词语对不会共现,矩阵中多数元素为 0,属于稀疏矩阵。

(3) 维度依赖语料库

矩阵大小由语料库中唯一词语的数量决定(设为 N,则矩阵为 N×N),维度可能高达数万甚至百万级别。

(4) 语义关联性的量化

共现次数越多的词语对,在矩阵中对应的值越大,暗示语义关联越紧密(如 “国王” 与 “王后” 的共现次数通常高于 “国王” 与 “苹果”)。

3、为什么要使用共现矩阵

(1) 捕捉词语语义关系

基于 “分布相似性” 假设:共现模式相似的词语语义相近(如 “银行” 在金融语境中常与 “贷款”“存款” 共现,在地理语境中常与 “河流” 共现)。

(2) 为词向量生成提供基础

许多词向量模型(如 Word2Vec 的 CBOW、GloVe)基于共现矩阵构建训练目标,将高维矩阵压缩为低维稠密向量。

(3) 简化文本语义计算

通过矩阵运算(如 SVD 分解)可降低维度,将词语映射到语义空间,便于计算词语相似度、聚类等。

(4) 保留全局统计信息

相比局部窗口的词袋模型,共现矩阵能捕获跨窗口的长距离依赖(如文档中多次出现的主题词共现)。

4、共现矩阵的应用场景

(1) 自然语言处理(NLP)

【1】词向量生成:GloVe 模型直接基于共现矩阵的对数概率构建损失函数。

【2】语义分析:计算词语相似度(如 “国王” 与 “王后” 的共现模式接近 “男人” 与 “女人”)。

【3】文本分类 / 聚类:将文档转换为共现特征向量,用于分类任务。

(2)推荐系统

【1】物品共现分析:用户购买记录中 “啤酒” 与 “尿布” 的共现可用于关联推荐。

【2】协同过滤:构建用户 - 物品共现矩阵,预测用户未交互物品的偏好。

(3) 图像处理

像素共现统计:计算图像中颜色或纹理模式的共现,用于图像检索或分类。

(4) 生物信息学

基因共表达分析:构建基因共现矩阵,识别功能相关的基因簇。

(5) 网络分析

社交网络:用户互动共现矩阵可用于社区发现(如用户 A 与 B、B 与 C 频繁互动,暗示同属一个社区)。

你可能感兴趣的:(人工智能大模型教程,自然语言处理,人工智能,共现矩阵)