文本相似性实验1|学习笔记

简介: 快速学习文本相似性实验1

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

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


文本相似性实验1

 

第四个实验是做词和文本相似性的实验。如果要做相似性计算,我们需要把文本进行量化表示,量化表示有很多方法,数学方法为主,现在老师选两个给大家讲一下,一个是tfidf——词频和力文档频率,另一个是词向量技术,分布式表示的词向量技术。

image.gif下面就来看一下词向量,基于词向量的词的相似性计算,图示的数据和代码里面就包括了实验的数据。

先加载一下这些包,word2vec是在gensim包里,用的时候要安装一下;jieba是做词特征处理的分词;下面数据目录里面有一个text8语料,这是一个英文语料,包括了很多英文的新闻报道,大约有九十几兆的语料。下面就是用word2vec,已经从gensim里面导(import)出来了,用它里面带的函数word2vec去构造词向量,把在语料里面加载的sentences作为word2vec的输入,大小是200,就是一个词的向量大小是200;后面有一个函数叫text8Corpus,这是word2vec用来处理英文语料的,就是它里面带着这个功能。我们运行一下,它需要一点时间,因为它里面有九十几兆的英文语料,还要这个语料去训练,然后来构建词向量。

运行中老师给大家讲一下这个软件需要注意的地方,在单元格的左边,星号表示它一直在运行,如果你的星号很长时间都出不来,有可能是电脑卡住了;还有右上角实心的圆圈,也表示它正在运行,当实心圆圈变成空的圆圈时运行结束,所以在等待时要注意观察这些信号的提示,以便知道目前的状况。

目前是在训练词向量,相关底下的语言规律已经运行好了,单元格左边的星号已经没有了,右上角也变成空心圆圈,已经运行好了。看语言规律,我们构建的是词向量,每一个词是200位的向量。

既然是向量就可以做计算,比如一个词的向量和另外一个词的向量可以做加减的计算,这就是它强大的地方,本质上我们要做文本挖掘,把这些文本要变成量化的数字,然后用这些数字进行运算,充分发挥计算机强大的计算能力。

image.gif接下来看这个例子,先看一下词向量是什么样子,比如我们刚刚运行的词向量是model,然后model里面插一下woman,它的词向量是什么样子?插一下man,它的词向量是什么样子?运行一下,每一个都是200个元素的词向量,每一个值代表什么意思是需要计算的,不像tfidf一个特征就一个值,这里的一个特征有一个向量值。

image.gif接下来有了向量就可以计算了,模块里面带了一个most_similar最相似的函数,这个函数里面的参数大家注意,它可以有两个参数,一个是正的,可以加在一起的;一个是负的,可以减去的。

下面要加起来计算,要加在一起的是woman和king,再减去man的向量。然后要找到最相似的第一条记录,换一句表达就是:要找这样一个单词,它和king很像的,场景很像、上下文很像;但是它要加上woman(女人),还要减掉man(男人);它是女性,要去掉男性。它应该是女王queen,函数返回的结果就是queen,它和计算要求的概率最高。

image.gif这个是它自己算出来的,我们并没有给它做任何指定、没有做监督、没有给它打标签、没有告诉它什么内容;它完全就是通过上下文学出来的、完全通过词向量计算出来的,它是很强大的。

这个例子是2012年,谷歌把word2vec开放出来以后就提供了这个案例,很多人用了以后,轰动了整个业界,可以这样来做文本、判断文本的相似性,在2012年之前还做不到这点,谷歌公司确实很伟大。

image.gif接下来看这个例子是找相似的词,这个词是和father很像,但是要加上girl,要减掉boy,然后要找到最近的、概率最高的三个词。找到的结果是mother、grandmother、wife;这是它自己找到的,这也是它强大的地方。

image.gif下面看这个例子是更神奇的,我们需要数据[”he his she ”,”bi bigger bad”,”going went being”]做一个循环,再用每一个循环里面的example,然后在split里默认按照空格切开来,等于这里面的每一个词有三个,所以用三个变量给它接收,然后下面再用most
_similar,前面两个放的是[x,b],我们要找的是跟she像的,但是要加上his,然后是要被he做处理的,后面是一样的,看一下执行结果。这里是做了一个格式化的输出,格式化输出%s可以用后面内容去替换。

它是he is to his,然后要找一个单词跟它们是很相似的,对she来说它找到的是her,就是这一组he和his,然后找一个和she这种概念很相似的,它找到一个her。

下面是一样的,bigger和big,然后找一个和bad很相似的worse。那我们找一个和going went很相似的being,它找到了was,文本相似性的语义能力非常强大,可以做这样的计算。

image.gif下面还有一个叫doesn't_match——不匹配的,就是在这一组单词里面,split就是分成一个个单词,然后一组单词里面它要找到那个单词和其它不相似的。

它做完的结果是cereal,谷物的意思,上面是早餐、中餐、晚餐,当然这个和它们是不相似的。

顺便提一下,这种功能有什么作用呢?它的功能作用是强大的,如果很多人在一个公司要做它的词库、词表,如果自己去找穷尽,可能要花巨大代价。

举个例子:比如我们要找近三年所有发生过的台风,自己要查很多资料,假如自己找到很多新闻报道,已经知道有十个台风,并且找到一大批的新闻报道的语料,然后就用这个语料去训练词向量,把这十个台风给它输进去most_similar,然后它可以找到相似的更多的台风,它就可以自动帮我们去扩展词库。这个很功能很强大,大家要理解这种意思。

相关文章
TF-IDF及相似度计算
TF-IDF:衡量某个词对文章的重要性由TF和IDF组成 TF:词频(因素:某词在同一文章中出现次数) IDF:反文档频率(因素:某词是否在不同文章中出现) TF-IDF = TF*IDF TF :一个单词在一篇文章出现次数越多越重要 IDF: 每篇文章都出现的单词(如的,你,我,他) ,越不重要
718 0
TF-IDF及相似度计算
|
4天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全
|
5天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1093 152
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1770 9
|
10天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
701 152
|
12天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
663 13
|
7天前
|
SQL 自然语言处理 调度
Agent Skills 的一次工程实践
**本文采用 Agent Skills 实现整体智能体**,开发框架采用 AgentScope,模型使用 **qwen3-max**。Agent Skills 是 Anthropic 新推出的一种有别于mcp server的一种开发方式,用于为 AI **引入可共享的专业技能**。经验封装到**可发现、可复用的能力单元**中,每个技能以文件夹形式存在,包含特定任务的指导性说明(SKILL.md 文件)、脚本代码和资源等 。大模型可以根据需要动态加载这些技能,从而扩展自身的功能。目前不少国内外的一些框架也开始支持此种的开发方式,详细介绍如下。
459 5