文本相似性实验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,然后它可以找到相似的更多的台风,它就可以自动帮我们去扩展词库。这个很功能很强大,大家要理解这种意思。

相关文章
|
2天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
262 116
|
17天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
11天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
653 223
|
5天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
315 31
Meta SAM3开源:让图像分割,听懂你的话
|
9天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1497 157
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
888 61
|
6天前
|
编解码 Linux 数据安全/隐私保护
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
285 139