文本特征提取3|学习笔记

简介: 快速学习文本特征提取3

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践文本特征提取3】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15503


文本特征提取3

 

下面我们继续做文本特征提取与向量化的实验,现在开始用TFIDF来进行特征提取,前面已经把词都拆分好了,拆分好的文本不能直接扔进去建模,还需要把文本转化成稀疏矩阵,矩阵单元格里面的特征值即是特征词的权重。

image.png现在来看此图,将数据框这一列转换成一个列表。大家注意,本来它是在数据框里面一列,然后通过一个函数叫tolist把它转成一个列表terms。接下来看一下terms里面的第一条,它是一个列表,中间的元素就是用空格隔开的一个个词。

image.png然后再用sklearn的特征提取模块里面的一个类叫TFIV,然后下面就要用TFIV这个类来做处理。这个类里面有很多参数,需要同学们去看一些帮助来了解这个操作的含义,min_df=3是最小的文档频率等于三,就是最少要在三个记录里面出现,然后才能做一个特征的要求;ngram算法就是一个统计语言模型,n如果取(1,2),那么一串中文可能就取(1,2)(2,3)(3,4)这样两个曲交错的。我们先把这个函数(类)实例化做一个对象,实例化以后用这个对象来处理刚刚的文本数据,刚刚转成列表的terms给它fit一下,相当于理合训练,再通过transform转换成我们需要的权重TFIDF的格式,当然我们可以用一部函数来做,用里面带的函数叫fit_transform,把fit和transform结合在一起的。

image.png执行完之后,那个粉色的是一个warning,不需要管,结果放在X_all里面,从里面取一条记录来转换成list看一下,它还是一个内存的对象,不方便看里面的内容,所以我们下面用一个列表解析式,这也是Python最重要的一个特点——列表解析式。

其中中括号代表一个列表,i.data是一个表达式,后面是一个循环迭代,就是在X_all[1],第一条里面把它拿出来显示一下,i是迭代的元素,我们不直接显示这个元素,我们用表达式元素里面的一个数据属性来显示。

image.png显示完以后,这就是一条评论里面每个词的权重,就是TFIDF值。这就是一个特征提取,我们提取了特征词的量化表示,这是用TFIDF,我们用的是sklearn包里面的。

image.png下面也可以用gensim包里带的一个模块来做TFIDF,它里面有一个模块,有TfidfModel这个类,这个我们用语料简单一点,主要是演示一下。

现在我们自己做一下语料,就是列表里面放几句话再加载停用词,然后我们再来把停用词从文件里面读下来,下面做分词,这个分词我们用jieba.cut,分完词以后我们再把里面的结果再处理一下,就是这个结果本来放在seg_list里面,不在停用词表里面,因此就是下面的分词结。“我在北京天安门”,其‘在’没有分出来,因为它在停用词表里面。

image.png我们再来做词袋模型,用gensim。在它里面有一个corpora语料,语料里面有一个语料词典dictionary,然后把刚刚分好词的放到语料词典里面,放在这个变量里面;语料词典功能很强大,它里面有个属性叫token2id,就是把分好的每一个词,给它一个编号,现在显示一下分行的每一个词对应的编号,‘北京’:0;‘天安门’:1,后面的数字是它的编号。

就是那几句话等于整体语料,然后里面的每一个词都给它一个编号。整个相当于把所有文档里面的词放在一起,每个词都有自己的编号,这就是词袋模型。

image.png然后来再来计算tfidf,这个用gensim里面models模块,models模块里面有TfidfModel这个类,现在就创建一个对象把语料放进去,再把这个模型保存下来,保存完以后可以通过它里面的load加载进来;那么我们做一个列表来看里面做好的权重,然后做一个循环,它里面的就是做好的权重,现在显示一下,下面显示的它已经是词的编号了,词袋模型的编号对应的tfidf值,运行一下看看结果。

接下来是特征提取用词向量word2vec,这是一种著名的词嵌入方式,它可以计算每个单词在其给定语料库环境下的分布式词向量,词向量表示可以在一定程度上刻画每个单词的语义。

image.png训练词向量也是gensim.models里面的一个class,它里面有Word2Vec大写的函数,后面括号里有很多参数。

给大家列了一些比较重要的和网上的博客,大家可以参考。

image.png下面看看word2vec怎么用,我们在gensim.models里面加载几个模块,在data目录下有一个训练数据,然后用word2vec里面的LineSentence(file_path)把文件读进来,用Word2Vec处理一下,参数很多,但是几个重要参数要知道一下:sentences—要处理的文本,要做词向量的文本;hs=1是采用方式(Hierarchical Softmax模型),参数为1表示使用,0表示不使用。然后可以设一些参数,比如窗口的大小,还有个关键就是自己做的词向量的大小,每一个词用128词向量表示,代表一个向量里面有128个词来表示一个词,模型做完以后保存一下,用的时候可以加载。现在运行一下,因为语料不多所以做词向量很快的,词向量做好了以后来看看它的值。

image.png获取单词word2vec值,大家看里面有一个‘apple’,显示一下,它是128个数字构成的向量,这就是词向量。Tfidf每一个词只有一个权重值,而在词向量里面一个词有128位值。Word2vec综合考虑到上下文的语意,所以它的词向量表达语义能力更强,从文本里面利用这个权重去挖掘文本、词和词之间的关系、词的特征词就更准确了。

image.png接下来看词向量非常直接的一个应用,就是计算两个单词的语义相似度。

做好的词向量模型里面有similarity,可以把两个词放进去,它就告诉我们它们相似度的值,运行看一下相似度的值,它应该基于两个向量计算,因为每个词都有128个向量,所以完全基于词向量计算相似度,word2vector的简单实验就到这里。

image.png

最后还有一些资料留在这里,大家有兴趣的可以去看一下。

相关文章
|
2月前
|
人工智能 Ubuntu 固态存储
《2核2G阿里云神操作!Ubuntu+Ollama低成本部署Deepseek模型实战》
本文详解如何在阿里云2核2G轻量服务器上,通过Ubuntu系统与Ollama框架部署Deepseek-R1-Distill-Qwen-1.5B大模型。涵盖环境搭建、Ollama安装、虚拟内存配置及模型运行全流程,助力开发者以极低成本实现AI模型云端运行。
646 1
《2核2G阿里云神操作!Ubuntu+Ollama低成本部署Deepseek模型实战》
|
数据可视化 搜索推荐 项目管理
有没有好用的待办事项清单软件? —— 一文带你了解
在快节奏的现代生活中,待办事项清单成为提高效率、管理时间的重要工具。它不仅帮助记录任务,还能清晰规划时间和精力,确保重要事项优先处理。本文介绍了待办事项清单的应用场景及四款推荐软件:板栗看板、Todoist、Wunderlist 和 Trello,并分析了它们的优缺点,帮助用户选择合适的工具。
有没有好用的待办事项清单软件? —— 一文带你了解
|
5月前
|
机器学习/深度学习 存储 人工智能
RAG技巧与底层代码剖析
你是否还在用现成框架调包实现RAG?本文带你撕开技术黑箱,仅用numpy等Python基础库构建RAG系统,从零手撕RAG内核!从文本划分、向量化、相似度检索到生成优化,逐行代码解剖检索增强生成的核心逻辑,更深度解析9大实战技巧:从智能分块策略到动态上下文压缩,助你突破回答质量瓶颈。拒绝做调参工具人,这次彻底掌握RAG的底层基因!
538 18
|
7月前
|
Ubuntu Linux 网络安全
Ubuntu Docker镜像:支持systemctl、SSH、VNC
总的来说,创建一个支持systemctl、SSH和VNC的Ubuntu Docker镜像需要一些技术知识,但是通过学习和实践,我们可以掌握这些技术。这将使我们能够更有效地使用Docker,更好地管理我们的应用程序和服务。CentOS系统中的日志文件位置和管理
253 17
|
7月前
|
存储 定位技术 开发工具
《从混乱到有序:ArkUI项目文件结构改造指南》
在ArkUI开发中,优化文件结构对提升代码可维护性至关重要。通过功能模块化划分(如商品展示、用户管理),将组件、样式、逻辑文件集中管理;设置`pages`存放页面文件,`common`存储全局资源;分类创建`components`、`styles`等目录,统一管理不同类型文件;利用`resources`规范资源存放,遵循命名规则;通过`config`集中配置文件并设默认值;借助Git分支管理代码,定期提交并撰写详细信息。这些方法助力构建清晰、高效、易维护的项目结构,为应用长期发展奠定基础。
151 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
从原理出发 - 提示词如何影响大模型的输出
在探索人工智能的深海中,提示词(Prompt)是引导大模型输出的灯塔。本文希望通过对自身所学所思进行总结,解析提示词如何塑造AI的响应,揭示其背后的机制。
1174 10
|
SQL 关系型数据库 MySQL
一文速学-玩转MySQL中INTERVAL关键字和INTERVAL()函数用法讲解
一文速学-玩转MySQL中INTERVAL关键字和INTERVAL()函数用法讲解
1237 0
一文速学-玩转MySQL中INTERVAL关键字和INTERVAL()函数用法讲解
|
机器学习/深度学习 算法 数据处理
深度学习之多模态信息检索
基于深度学习的多模态信息检索(Multimodal Information Retrieval, MMIR)是指利用深度学习技术,从包含多种模态(如文本、图像、视频、音频等)的数据集中检索出满足用户查询意图的相关信息。
468 5
|
存储 缓存 Linux
Ramfs、rootfs和initramfs【ChatGPT】
Ramfs、rootfs和initramfs【ChatGPT】
|
前端开发 Java 数据库连接
基于SpringBoot宠物领养系统的设计与实现(代码+数据库+文档)
基于SpringBoot宠物领养系统的设计与实现(代码+数据库+文档)