【自然语言处理与文本分析】PCA文本降维。奇异值分解SVD,PU分解法。无监督词嵌入模型Glove。有案例的将文本非结构化数据转化为结构化数据的方法。

本文主要是介绍【自然语言处理与文本分析】PCA文本降维。奇异值分解SVD,PU分解法。无监督词嵌入模型Glove。有案例的将文本非结构化数据转化为结构化数据的方法。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

无监督的词嵌入模型-Glove

背后的理念源头是主成分分析PCA

先变为SVD-Glove

PCA是为了产生比较精简的维度,让原始数据在这个精简的维度也能保持原始的变异(信息)。

方法1就是将x2降维到x1,它从9个点变成6个点,而且牺牲了很大的信息

比较好的方法就是建立一个新的维度u。尽可能保留资料的变异。

PCA也可以做词嵌入的降维。比如

我们将词袋模型进行PCA主成分降维度。经过我们降维之后,就可以变成稠密的矩阵。

我们会发现,社会映射到了同一个点上,

如果我们只选择1个维度,只保留了百分之51,我们可以发现选择2个因素,保留了百分之85的变异,也可以进行可视化。

结果我们发现经过PCA的降维之后的决策树也是2个因素。

然后我们把一个测试集导入

当然我们要按照PCA的公式把数值带入,得到FACTOR1和FACTOR2

结果也刚好得到娱乐的结果,十分准确。

另外我们看因子1,如果希望因子1的数值大,它要求方框里的因素都比较大,也就是方框中的值都比较大,才能被判定为国际新闻

因子二也是,只有日本,可口可乐,广告,都比较大,才能被判入娱乐新闻。也就是说,PCA之后的因子就变成综合考虑。

所以才会导致我们的数值更加正确。

W2d(PCA下)

刚才,我们是对词为输入变量进行PCA降维

选择我们可以把文件作为维度,进行PCA降维

这时我们就会发现,它会把同一个内容(国际,娱乐,社会)的词的数值非常接近,认为二者是同义词,所以w2d会保留同义词。

所以这个词嵌入模型也可以进行寻找同义词

我们再对它进行聚类。我们会发现,刚好会分为3类,并且是国际,社会,娱乐。

Matrix factorization

我们看右边的图,可以发现,医师joe会看3部电影,电影还会被其他的都人看。其他的人也会看其他的电影

我们把人和电影做矩阵就可以得到推荐评分表。上图就是横坐标是人纵坐标是电影。

我们就可以将它进行矩阵分解。Dk*k其实就是特征值

Eigen value和Eigen Vector的求解一般要求是正定矩阵,就是正方形。Use-item rating Matrix一般都不是正定矩阵。

D和V一般求出来的都是复数解,无法解释,在运用上有困难。

所以这个不太可行

为了解决这个问题,我们引进了奇异值分解法,它就算是长方形的矩阵也可以,并且结果一定是实数

SVD相当于类似于主成分,它将原矩阵分成3个矩阵,我们往往取topk个奇异值就可以表示绝大部分信息。

SVD的几何原理,就算通过线性变化,找出

原本1*n维的词向量,可以用1*k维的向量表示关键词。进而实现word embedding(词嵌入)的效果

图示如下:

前者就是物品,在新的两个维度下的数字,我们如果对它进行可视化,就会得到下面这个图,用户对那些物品感兴趣

后者就是用户,在新的维度下的,

如果物品靠的比较近说明喜欢该物品的人都差不多,如果人靠的比较近,说明该人喜欢的物品都差不多。

我们可以发现用户1和用户3是一致的,为什么呢,因为他们都是一起打高分,一起打低分。趋势是一致的。我们看这种图不能看数值的大小,要看打分的趋势。

物品二和物品3也是一样的,都是对用户13的评分高些,对用户二的评分低些,(人会喜欢打高分或者低分,不能决定什么,趋势才是重要的。)

我们如果只取两个因子,就可以达到可视化的目的。

因为不一定每个人都会把所有的电影都看了,所有的项目都看了。所以会出现下图,稀疏矩阵的情况。SVD就不能分解了

此时我们应该用PU进行分解。可以得到下面这个结果

我们可以使用P*U分解,得到上图的情况。分解之后就可以将P*UT再乘回去,得到下图的情况      

我们乘积得到之后,我们就可以完善用户的评分,来对用户还未尝购买的项目进行推荐,得分高的就可以进行针对性的推荐。

案例2:我们要推荐顾客还没买的产品。下图就可以发现我们原本的数值的几乎没有差距,但是新值也会得到。我们对顾客还没买的数值。比如产品3Use3就很感兴趣。

P是把项目作为输入字段,降维。U是针对人物作为输入字段进行降维。

Glove:

这个看起来很新,但是其实是酒品黄小姐就PCA的一种

它通过借鉴Wordvec的Pair-wise的方法,以及一些其他的Trick来进行传统的矩阵分解运算得到wordVector(词嵌入向量)

案例:共线矩阵:

我们会提取全部的关键词,然后得到共线矩阵,我们把行叫做内容维度,、(context)列看成keyword关键词维度。

共线矩阵是怎么来的呢,我们就是看词前后有什么词,有一个就加一,我们会给对于的词进行设置数值。

下面是关键词,上面是关键词附近的文本

案例:

我们用一样的方式得到词共线矩阵。

这个顺序是词原来的顺序,因为它就算看词出现的概率

然后我们对这个进行PCA矩阵。

然后我们取了5个factor,因为这个关键词比较多所以我们就要取多一些主成分,确保有百分之80的变异信息被保留

然后我们计算词两两的距离。如果数值是很小的话就说明的同义词或者相关词。

距离非常远,就说明是完全不一样的大小。

Glove就可以吧同义词提取出来。

我们也可以运用Glove进行决策树:

我们发现只需要用,Factor3和factor1就可以进行决策

然后我们还是一样加入测试集合,来进行测试模型准确与否。显然是正确的。

则是glove决策树对第六个文章数据走的一个路线。

下次我们会针对有监督的词嵌入模型进行一个解说。

这篇关于【自然语言处理与文本分析】PCA文本降维。奇异值分解SVD,PU分解法。无监督词嵌入模型Glove。有案例的将文本非结构化数据转化为结构化数据的方法。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/219829

相关文章

Nginx中location实现多条件匹配的方法详解

《Nginx中location实现多条件匹配的方法详解》在Nginx中,location指令用于匹配请求的URI,虽然location本身是基于单一匹配规则的,但可以通过多种方式实现多个条件的匹配逻辑... 目录1. 概述2. 实现多条件匹配的方式2.1 使用多个 location 块2.2 使用正则表达式

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误

Springboot控制反转与Bean对象的方法

《Springboot控制反转与Bean对象的方法》文章介绍了SpringBoot中的控制反转(IoC)概念,描述了IoC容器如何管理Bean的生命周期和依赖关系,它详细讲解了Bean的注册过程,包括... 目录1 控制反转1.1 什么是控制反转1.2 SpringBoot中的控制反转2 Ioc容器对Bea

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C

C++实现回文串判断的两种高效方法

《C++实现回文串判断的两种高效方法》文章介绍了两种判断回文串的方法:解法一通过创建新字符串来处理,解法二在原字符串上直接筛选判断,两种方法都使用了双指针法,文中通过代码示例讲解的非常详细,需要的朋友... 目录一、问题描述示例二、解法一:将字母数字连接到新的 string思路代码实现代码解释复杂度分析三、

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

Gin框架中的GET和POST表单处理的实现

《Gin框架中的GET和POST表单处理的实现》Gin框架提供了简单而强大的机制来处理GET和POST表单提交的数据,通过c.Query、c.PostForm、c.Bind和c.Request.For... 目录一、GET表单处理二、POST表单处理1. 使用c.PostForm获取表单字段:2. 绑定到结

mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据

《mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据》文章主要介绍了如何从.frm和.ibd文件恢复MySQLInnoDB表结构和数据,需要的朋友可以参... 目录一、恢复表结构二、恢复表数据补充方法一、恢复表结构(从 .frm 文件)方法 1:使用 mysq

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.