文本相似度计算 中|学习笔记

简介: 快速学习文本相似度计算 中

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

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


文本相似度计算 中

 

内容简介:

一、基于字符串

二、基于语料库

三、基于世界知识

 

 

一、基于字符串

我们来看看基于字符串的方法有哪些。

我们前面刚刚讲到,字符串方法里面,按照力度可以分为两种,第一种是基于字符的,一种是基于词语的。那么在字符级别的字符串的比较方法有编辑距离,汉明距离,LCS,N-gram等等。

如果是基于词语的话,计算文本相似度方法有构成响亮的余弦相似度,欧式距离,Jaccard。

这每一个方法它的基本思想 ,这里也都有描述,包括它的特点和不足在以下表格也有统计这一份资料课后可以供同学们去研究,去看一下。

 

二、基于语料库的方法

基于语料库的方法主要有三种,一个是基于词袋。词袋,比如说我们用向量空间模型(VSM),也可以用隐因与分析(LSA,PLSA),LDA模型(LDA)。他们的基础都是基于语料构成的词袋。第二种方法是基于神经网络。

主要是生成词向量主要类型有word2vec,目前很热门的Glove, Bert。第三种是基于搜索引擎的,主要是搜索引擎有大量的wod内容,可以认为是最大的语料库。搜索引擎本身的算法也在不断进步更新,我们可以通过搜索引擎找到答案。如果可以发展好的话会非常方便用户使用。如果有需要可以去搜索引擎去搜一下。

基于磁带方法有这样一个特点,他不考率文档在文中的顺序,只是一个词袋,在袋子里面装了很多词 ,不考虑词的顺序,所以语义能力要稍弱一点

神经网络是利用神经网络生成词向量,综合利用了上下文的语义关系,生成了低纬的实数向量,所以它的语义能力要强。

搜索引擎的话它主要是基于它庞大的语料库,然后利用一个原理做文本相似度的判断就是说我们搜所一个关键词,两个关键词x,y,搜索引擎返回包括含x,,y的网页数量F(x),F(y)以及共同包含的数量F(x,y)。再通过一些数学方法计算它们的相似性得到基于搜索引擎的文本相似度计算。

这里没有更多细节给大家提供,大家有兴趣的话呢可以找点文献资料。

那么我们把多次讲过的词袋模型给大家看一个示例。它的左边是一个文档,装完词以后,整个袋子里都是词。每个词都会给它一个权重值。这个权重值是他的词频。下面是一个词向量模型。词向量模型是在一个维度里面,每一个词在向量空间里面都是一个点,有些词之间向量位置比较近,那就有可能是同义词或近义词。他要计算向量空间的话,计算的词的相似性的话就比较科学,准确度更高。

 

三、基于知识组织

基于知识组织的方法主要是两种。

一种是基于本体的方法,它进一步可以分为基于距离,基于内容,基于属性的方法。基于距离就是用概念之间的路径长度表示他的语义距离;基于内容的话用概念共享词的信息来表示他们之间的相似度;如果是基于属性的话就是用概念词之间的公共属性衡量他们之间的相似度。

这里涉及到一些本体的的知识以及本体的计算。在我们这门课里由于课时的原因就不展开了,本体的话曾经在十几年前非常火,现在主要是做一些辅助的作用。因为本体要把一个领域的概念完全建立起来。这个建立量非常巨大,还需要该领域的专家加入。比如建立一个濒危动物的本体,就需要了解相关知识的专家来一起构建。本体里的概念体系一定要建立完整,如果某一个概念中间断层,那使用时就会出现错误。

另一种的话是基于网络知识。这个网络知识不是一般的搜索引擎,而是网络上已经构的由词,词条之间的关系这样一个网络知识的资源。比如说维基百科,这个很著名。由于本体的数量是有限的,如果要构建非常多的话代价会很大。而百科覆盖的范围就比较广泛了。还有里面富含了丰富的语义信息,更新速度也比较快。像百度百科已经有了千万级的词条。当然还有其他的百科,只要满足有词条之间的层次关系,有词条的链接页面都认为是百科。网上大量的百科,让我们可以基于组织的方式来判断文本相似度,来做文本相似度计算

image.gif这里再稍微说明一下,本体的话可以准确表示概念之间的含义和概念之间的关系,本体的建立需要专家的简历,耗时费力,而已有的本体往往存在更新速度慢,词汇量有限等问题,所以需要网络知识的一个补充。

下面我们来看一下文本相似度计算的一个汇总示意图。

image.gif总共分为四个方法,基于字符串,基于语料库,基于世界知识,其他方法

字符串的话里面有基于字符,基于词语。当然,进一步的话会有比较细一些的具体计算方法。

基于语料库的话有词袋模型,神经网络,搜索引擎

基于世界知识,基于知识组织的方法。有本体知识,网络知识。

其他方法里面主要是句法分析和混合方法等等。

这一张汇总图基本上覆盖了文本相似度计算的方法。当然在最新的方法里面,神经网络这里展开的很少,但是发展很快,是目前研究的热点。

 

相关文章
|
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