词向量化和文本向量化,KMeans

文本向量化

文本是由词和字组成的,想将文本转化为向量,首先要能够把词和字转化为向量

所有向量应该由同一维度n,我们可以称这个n维空间是一个语义空间

one - hot 编码

首先统计一个字表或词表,选出n个字或词

在对文本向量化时,也可以考虑词频

不错 0,0,0,1,0

不错不错0,0,0,2,0

有时也可以不事先准备词表,临时构建

如做文本对比任务,成对输入,此时维度可随时变化

one-hot编码 - 缺点:

1.如果有很多词,编码维度会很高,而且向量十分稀疏(大部分位置是零),计算负担很大

2.编码向量不能反映字词之间的语义相似性,只能做到区分

词向量-word2vec

我们希望得到一种词向量,使得向量关系能反映语义关系,比如:

cos(你好,您好)>cos(你好,天气)

即词义的相似性反映在向量的相似性

词向量- 基于语言模型

1.作出假设:

每段文本中的某一个词,由它前面n个词决定

模型是怎么做到输入一段文字,模型能预测出下一个字呢

word2vec 基于窗口

1.做出假设:

如果两个词在文本中出现时,它的前后出现的词相似,则这两个词语义相似

不过也有问题 比如 我开心了一天,和我难过了一天·

词如何训练:

基于前述思想,我们尝试用窗口的词(或者说周围此)来表示(预测)中间词

CBOW模型

窗口: 你想(明白)了吗

输入:你想了吗

输出: 明白

或用中间词来表示周围词

SkipGram模型

窗口: 你想(明白)了吗

(输入,输出):

(明白,你)(明白,想) (明白,了)(明白,吗)

基于Huffman树的方法:

什么是Huffman树

  1. 不同词编码不同

  2. 每个词的编码不会成为另一个词编码的前缀

即如果某个词编码为011,则不能有词的编码是 0111或0110或011001等

  1. 构造出的词编码总体长度最小,且越高词频编码越短

如何构建

  1. 选取词频最低的两个节点,词频更低的放在左侧,较低的放在右侧,形成一个二叉树,顶点的值记录为二者频率之和

  2. 选择剩余词中词频最小的,将其与前两个词之和对比,仍然是小的放在左侧,形成树

形成如下

那怎么用于词向量的训练呢

我们之前要找一个,就比如他们,我们需要从7个词或字里面选,但现在只需要进行5次二分类就可以

Glove基于共现矩阵

共现概率:

Pij = P(j|i) = xij / xi

词j出现在词i周围的概率,被称为词i和词j的共现概率 P(天气|今天) = 2/2 = 1

空格代表切分

词向量训练总结

一 : 根据词与词之间关系的某种假设,指定训练目标

二: 设定模型,以词向量为输入

三:随机初始化词向量,开始训练

四: 训练过程中词向量作为参数不断调整,获取一定的语义信息

五: 使用训练好的词向量做为下游任务

词向量应用 - 寻找近义词

输入: 红绕肉

注意:

依赖分词正确

与A最接近的词是B,不代表B最接近的是A

有时也会右反义词很相似

总会有很多badcase

词向量应用 - 句向量或文本向量

1.讲一句话或一段文本分成若干个词

  1. 找到每个词对应的词向量

3.所有词向量加和求平均或通过各种网络模型,得到文本向量

  1. 使用文本向量计算相似度或进行聚类

词向量应用 - KMeans

KMeans

随机选择k个点作为初始质心

repeat:

将每个点指派到最近的质心,形成k个簇

重新计算每个簇的质心

until

质心不发送变化

KMeans优点:

速度很快,可以支持大量的数据

样本均匀特征明显的情况下,效果不错

KMeans缺点:

人为设定聚类数量

初始化中心影响效果,导致结果不稳定

对于个别特殊样本敏感,会大幅度影响聚类中心位置

不适合多分类或样本较为离散的数据

KMeans一些使用技巧

1.先设定较多的聚类类别

  1. 聚类结束后计算类内平均距离

  2. 排序后,舍弃类内平均距离较长的类别

  3. 计算距离时可以尝试欧式距离,余弦距离或其他距离

  4. 短文本的聚类记得先去重,以及其他预处理

相关推荐
m4Rk_42 分钟前
【论文阅读】Agent 记忆机制(83):Inside Out——用可演化 PersonaTree 构建 Agent 的核心长期记忆
论文阅读·人工智能·学习·开源·github
运行时异常1 小时前
【WMS 仓储系统集成 AI Agent 实战】第 8 讲(终篇):生产部署与并发安全——Semaphore 放进 Flux.defer 的坑,压测抓了一晚上
人工智能·安全
杨杨杨大侠1 小时前
Jev、Kev、Laya:决策模型怎么选,什么时候需要微调?
人工智能·python·agent
代码方舟1 小时前
零信任架构实战:基于天远人企关联构建自动化供应链金融网关
运维·人工智能·架构·自动化
虹科网络安全1 小时前
“顶会”看安全(十八):超越越狱:揭示由能力边界模糊引发的 LLM 应用安全风险
人工智能·安全
Maiko Star2 小时前
* LangChain 提示词模板详解:ChatPromptTemplate 的使用与高级特性
java·人工智能·langchain
鬓戈2 小时前
Rust 语言与 AI 应用生态调研及学习路径
人工智能·学习·rust
天远API2 小时前
零信任架构实战:基于天远人企关联构建自动化图谱网关
网络·人工智能·架构·自动化
爱吃提升2 小时前
文生视频模型发展趋势(2026)
人工智能·音视频
AIGS0012 小时前
什么是本体语义平台?和知识图谱、传统数据中台的区别在哪
人工智能·知识图谱·数据中台·ai问数·本体语义平台·智能数据中台