文本表示|学习笔记

简介: 快速学习文本表示

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

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


文本表示

 

简单介绍文本挖掘简介,主要内容有一个是文本挖掘的概述,这里面列了,文本挖掘概述的这些内容,比如它的建议、应用、作用、价值,可以去查点资料看一下。然后文本特征提取主要对于中文来说就是中文的分词和词性的标注。

那这个分词的话,python实验里面会有,所以这一部分的话,为了节省时间,不单独给大家来讲解了。

文本表示是文本挖掘的一个非常重要的基础。文本的相似性计算,在学数据挖掘的时候,是第二章讲数据的时候,有数据的相似性和相应性的计算,同样文本也有一个很重要的概念就是文本的相似性计算。然后常用的文本挖掘,有文本分类,文本情感分析,主题模型。还有词共现网络分析,后面还有很多,比如文本过滤,文本聚类,话题检测,本体以及命名试题抽取,试题关系抽取等等。

由于课时原因,主要讲一下,表示相似度计算,文本分类和文本情感分析。


文档检索模型与文本表示

文档检索模型也简称文档模型,是指如何对文档进行查询文档进行表示的一种方法,然后对它们进行相似度计算的一个框架和方法。文档模型的本质是应用特征词量化的方法,特征词量化,有些评估函数,前面也提过。然后表示文本,以便对相关度进行建模。相关度就是要查询有一个表示,然后再到文档库里面去找到相应的文档,就这两个表示之前一样能够进行匹配,要能进行相关度计算。

image.png看这张图很直观,原始查询要有一个查询表示。那这个表示怎么表示?需要应用特征词量化的方法。然后同样的原始文档,文档也有一个表示,它们之间就可以进行相关度计算。

那么这个计算的一定要能够进行一些数字化的计算,而不是那个字符串之间的查找和匹配。那么来看一下文档的表示,这样一个表格如何来表示文档?文档d123等等,文档里面有很多特征词,很多词t1、t2等等。

那么单元格里面这个表是用什么样的一种数字化的方法?用什么样一种量化方法?这个量化前面提过。有些量化函数,比如说用tf还有df,后面新的可以延迟向量,那么这些方法很多,在文档讲述模型里面,那到底采用哪一种量化方法,就可以有不同的文档模型。

文档模型一般可以分为这样几类?比较早期的布尔模型,然后就是向量空间模型,接着是概念模型,概念模型进一步扩展,有统计语言模型,那么新的还有神经网络语言模型。看它们的时间的发展。换个模型是比较早,那么20世纪60 ,70年代就有了,然后后面才是向量模型,再后面是概念模型,那么现在就是比较新的神经网络语言模型。

下面把几个文档模型展开来介绍一下。

1.布尔模型

布尔模型是建立在经典的集合论和布尔代数的基础上。它的基本思想是每一个词在一篇文档中是否出现,然后对应的权值就是0和1。就是出现是1没有出现是0。然后它的文档检索使用布尔逻辑运算。用布尔操作,就是and 、or 、not。

然后它的相似度的计算,就是用布尔表达式来表达。然后查询文档和文档数据库,进行匹配。匹配成功的文档得分为1,否则是0,然后将得分是1的文档提供给用户。那么优点就是简单,非常容易理解,比较简洁。然后现在外面有很多的检索,就是用霍尔模型。比如看很多这种网站,它的基本的检索,大众点评,携程,一框式检索里面,大多数还是起于布尔模型。它的缺点呢是什么?是准确匹配,准确配备信息需求能力表达不足。

比如说查,那个老公,说不定丈夫就查不到了,查这个计算机,说不定电脑就查不到了,要查最便宜的笔记本电脑,它会按照关键词匹配。然后并不是前面排列的是最便宜的分店。

2.向量空间模型(VSM)

image.png向量空间模型。简称是vdm,向量vector 空间space 模型model 。向量空间模型它的思想是将文档表示成一个向量,一篇文档看作向量空间中的一个点。例如文档一,它里面的词1它的权重,词2的权重,词3的权重。

那么文档2以及查询,就可以在向量空间里表示文档了。这个向量空间里面的每个最高值就是词,那么第一文档,它在t1上面是2,这t2上面是3,t3上面是5,然后就有一个向量空间的一个点。那么同样的文档2文档3文档n等等。查询也是表示成一个向量,这样的话,如果是要检索文档的话,那就用两个向量之间的相似度进行计算。比如说夹角余弦距离,那么向量空间模型的全称就是这样一个单词。

文档-索引词(Doc Term Matrix)

image.png

这个矩阵的话,它里面是n篇文档,m个索引词构成的矩阵Am*n。这个矩阵里面的每一行是一个索引词或者特征词,每一列是个文档,中间单元格就是词的权重。简单可以是词频,当然也可以是布尔模型的0和1。

image.png看一个具体的数据的例子。这里面可以看一下,比如d1这个文档和哪个文档是最相似?那很显然容易发现它和d6是很相似的,在特征词上面,它在词频的比较。所以就可以把一个文档这一列当成一个向量,然后就可以构建向量空间模型。

向量表示

image.png那么来看看它的向量怎么表示的,向量表示的话就是m个无序的索引词t,可以是词条,可以是词根,词,短语都可以。然后每一个文档的话就可以用这个词它的向量的方式来表示。每一个词的权重构成一个向量,那么这个权重有哪些方法计算的?以前特征词的量提过多次。那么现在给大家讲一个比较常用的方法,就是这个权重,一个可以用词频统计。那么词频统计里面它是广义,还要包括这个文档频率。那么比如词频TFi,j,就是特征i在第j篇文档中出现的次数。这样一个词频TF。

那比如文档频率DF,那就是在所有文档集合中出现特征i的文档数目,这叫文档频率。那个在实际应用里面的话,更多的是用词频然后乘以文档频率的列文档频率。主要用tf乘以df这个地方在前面也提过这个概念。

TF-IDF

image.png那么来看一下td选择这一个权重的一个意义,tf和idf这两个单词的全称。然后这两个结合在一起来定义这个词的权重。它在作用和意义是什么?

如果词频越高的话,那么整个乘积越大。然后如果df越小,也就是if越大的话,这个权重也是越大。那也就是某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率就是低文档频率,容易产生高权重的TF-IDF,就一个tf比较大,一个itf比较大。那么高权重,权重的目的是能够区分什么不同的。就权重越高,它越容易和别的文档区分开来。

首先这种TF-IDF它倾向于过滤掉那些常见的词语。因为常见词语在每一个文档里基本上都有,大家互相文档很难区分。保留那些重要的词语,比如说在1万篇文档里面,那么关于这个军事的这种词语。只有5篇文档里有,然后这5篇文档里出现的频率很高,另外大多数文档是没有的。这样这个权重的乘积就很大,权重越大就是越容易把它和别人的文档区分开来。这就是TF-IDF的意义。

image.png看一下利用TF-IDF构建向量空间模型的例子。看看这里有一句查询,然后有三篇文章。因为用英文来表示,可能看起来简洁一点。文档数是三。大家注意逆文档频率就是反向文档频率,在工程里面一般是用Log绝对数来进行处理的。那么把这些分词以后可以得到所有的用的词,在这一列里面,没有去停用词。

然后查询和每篇文档,来看一下词频这个项目都是它的词频。所以首先这里是计算它的词频,然后这一列是计算它的文档频率。就是一个词在几篇文档里出现文档频率。然后这里做的是d就是文档数除以文档频率,这是工程里做的一个转换。

然后这里itf就是逆文档频率,然后这里是这些词频和文档频率的计数。计算权重,权重是用tf×idf,那么idf在工程里是用Log用对数做转换的。然后它得到的这个权重的值,分别这几列里面。那么就得到了这个文档的向量的表示,以及查询的向量表示。然后就可以在向量空间里表示这个文档和查询,如果要做相似度计算的话,就可以做向量的计算。

3.文档概率模型

image.png

其概率框架来计算,大家都比较熟悉,贝叶斯定理,然后一些概率的一些概念,条件独立性假设。那么一篇文档它是由若干词构成的,如果词相互独立的话,那么这篇文档的概率就是词概率的乘积。在文档检索模型里面基本的模型,它是这样子,就是将文档分为两部分。第一个适合查询语句相关的,第二个和查询是非相关的。就是文档的集合里面总归有一部分和查询相关,另外就是和查询无关的。然后就可以用这个概念模型,去找相关的文档。那么下面这些细节就不展开了,大家可能对概率更熟悉。

文本的表示

image.png

文本表示的含义是将文本转化成数学上的向量表示。也就是把文本里面的字符串如何转换成向量,这是文本表示的核心。也就还是特征词量化的一个概念。那么这里从另外一个角度来讲解,文本表示一种是离散的方式。

列出一些常用的方法,比如说一个是词袋模型,词袋模型注意这个缩写BOW。

就是文档分成一个词,所以文档的话就像一个袋子里装了很多次词一样的叫词袋模型。这里的词可以每一个词可以给它一个编号的。如果所有的文档里面有1万个词,那每一个词都会有一个唯一的编号。然后这就是前面的刚学过的TF-IDF,再有一个One-hot编码。叫独热,单独一个热的独热变化,后面的话会看一个事例。那么还有一些gram的方法,就是连续的几个来切词。那么比如Bi-gram的方法,在一串文本里面,2个2个切就1-2,2-3,3-4,4-5,5-6。大家想象一下,这样来把文本给它切成一个一个片段,然后构成这个表示。还有就是这个词和文档的矩阵,前面在做TF-IDF也提过。

那么单元格它里面是词的权重,就是文本的表示是一种离散的表示。就把很多文档,每一篇文档都用离散的这样一些词的量化关系,用离散来表示。另一种表示方法叫分布式表示。它就不是像前面的一个一个离散的值,它有可能就是一个词就有一组值来表示,就是用向量来表示。那么这个方法,一种是用降温的方法给前面的词文档取证,然后进行处理,这个不展开了。

接着就是用神经网络语言模型也是现在非常热的,这样的一个模型来处理,然后得到分布式表示。也就是文本的分布式表示,比如说前面很热门的,前几年特别热门的word2vec。当然这两年热门的还是波特模型,前面给大家提过。

文本表示事例

image.png 

下面来看一下文本表示的示例,这里有一句话Sentence:你是一个好人。然后分词以后,看看词。下面这里是one- hot编码,独热编码,那么每一个词给它一个向量表示。这个向量表示里面只有一个位置它是1其它都是0,所以叫one-hot编码,那么这个n的长度是什么呢?

长度就是研究的这个语料里面找的词的数量,比如说1万个词。然后每一个词给它一个位置,给它一个编号,然后再转开one- hot,整个长度就是整个词典的一个长度,就语料里面总共1万个词的长度。再来看看这个word2vec,这个词向量的一个表示,词向量表示就是将原来的one- hot编码再利用神经网络这个模型,通过上下文关系,这个是one- hot编码。然后经过神经时间网络模型处理过可以得到一个词向量,那么这个词向量的维度那么远远小于原来的one- hot编码的幅度,可以大幅度降维,还可以提高计算的效率。

word2vec可以给大家稍微介绍一下,它是Google公司2013年向外界报道,然后推出的一款词向量生成工具,将文本语料作为输入,然后利用神经网络模型,从语料当中进行学习,通过上下文的关系学习以词向量的方式输出。那么每一个词可以得到一个词向量。

那么它的语意能力更强,因为它综合学习到上下文的关系。前面的one- hot大家看看它语意的能力很弱,因为它只是在整个语料里面多少个词,每个词还有编号。然后再用一个one- hot编码的方式来处理。

image.png

那么再看一下这个word2vec,它的一些内部的一些内容。word2vec它有两个模型,一个是叫做cbow就是bow词袋模型。c是Continues就是连续的词袋模型。这个模型可以干嘛呢?可以通过上下文来预测一个词的概率。

上下文,比如说隔壁老,会想到王。这样一个词隔壁老王。然后再一个模型是skip gram模型 ,它可以通过一个词去预测它的上下午。那么如果说对着自己竖大拇指,那有可能你讲的好。

那么这个例子里面比如说you are good men本来是四个词,它都有一个one- hot编码。然后经过cbow这个模型以后,它可以通过good 前后左右的词,预测good这个词它的值。如果是用skip gram模型的话,那就可以利用good这个词来预测什么它的上下文,大家注意word2vec有两种模型的方法。

image.png那么下面我们再看一下word2vec,在实践应用的时候,一般先是把所有的词做成one- hot编码,然后再利用神经网络模型。通过神经网络一般是深度学习的这个神经网络,经过训练以后,将每一个词再转换成一个词向量。

embeddingm就是一个词向量的意思。它可以大幅度降低向量的维度,大幅度降温。可以提高以后应用的提高它的计算量和计算能力和计算效率。

所以要记住,在实践的时候,一般是先做one- hot,就说一大语料先分好词以后,每一个词给它做个词典,每一个词典里的一个词会有个编号,然后就做one- hot再利用工具生成词向量。

相关文章
|
存储 JSON 监控
APM监控 · 入门篇 · Android端测监控平台建设(1)
APM 全称 Application Performance Management & Monitoring (应用性能管理/监控) 性能问题是导致 App 用户流失的罪魁祸首之一,如果用户在使用我们 App 的时候遇到诸如页面卡顿、响应速度慢、发热严重、流量电量消耗大等问题的时候,很可能就会卸载掉我们的 App。这也是我们在目前工作中面临的巨大挑战之一,尤其是低端机型。
4510 0
APM监控 · 入门篇 · Android端测监控平台建设(1)
|
4月前
|
弹性计算 人工智能 NoSQL
2026年阿里云服务器购买指南:价格体系与选型参考
阿里云服务器主要分为轻量应用服务器与云服务器 ECS 两大品类,覆盖从个人开发到企业级业务的全场景需求。不同实例类型在配置、性能、价格上差异显著,用户需结合业务规模与预算选择适配方案。本文基于官方定价与实测数据,从产品分类、价格详情、选型建议三方面展开解析,为用户提供客观购买参考。
|
4月前
|
人工智能 自然语言处理 数据可视化
2026年阿里云万小智 AI 建站系统介绍及测评
阿里云万小智 AI 建站系统基于通义大模型开发,以 “低门槛、高效率、全集成” 为核心优势,无需专业开发能力即可快速搭建网站,分为基础版、标准版、企业版三个层级,覆盖从个人博客到中大型企业官网的需求,且购买即赠.CN 域名,降低建站成本。以下从核心特性、版本差异、价格规则及场景适配展开解析,提供客观选型参考。
|
5月前
|
人工智能 自然语言处理 关系型数据库
Pipeline AI Agent - 让数据管道听懂人话
TIS v5.0推出国内首个大数据原生Pipeline AI Agent,通过自然语言对话实现数据管道智能创建。告别繁琐配置,AI自动完成插件选择、参数填充与任务执行,支持MySQL、Paimon等主流数据源,结合SSE实时推送与Plan-and-Execute架构,3分钟极速构建同步链路,大幅降低使用门槛,开启数据集成“对话时代”。
516 1
|
机器学习/深度学习 自然语言处理 自动驾驶
CNN的魅力:探索卷积神经网络的无限可能
卷积神经网络(Convolutional Neural Networks, CNN)作为人工智能的重要分支,在图像识别、自然语言处理、医疗诊断及自动驾驶等领域展现了卓越性能。本文将介绍CNN的起源、独特优势及其广泛应用,并通过具体代码示例展示如何使用TensorFlow和Keras构建和训练CNN模型。
|
存储
硬盘数据恢复—硬盘出现物理坏道如何妙手回春?
硬盘故障: 硬盘存在物理坏道。 硬盘存在物理坏道的典型表现: 1、若硬盘为系统盘,故障表现通常为:操作系统异常缓慢、蓝屏,重启系统后引导失败并报告硬盘读取出错、系统自动反复重启。 2、若硬盘为移动硬盘,故障表现通常为:电脑无法加载盘符、提示硬盘需要格式化、频繁提示需要运行chkdsk来检查和修复磁盘、数据读取缓慢、死机。
|
人工智能 测试技术 API
成功注册Google的SerpAPI实现AI Agent的tool
成功注册Google的SerpAPI实现AI Agent的tool
4135 6
|
数据采集 存储 分布式计算
数据爆炸时代的挑战与机遇:大规模数据处理的技术突破
在当今数字化时代,数据量呈现爆炸式增长,给传统数据处理带来了巨大挑战。本文将探讨大规模数据处理所面临的问题,并介绍一些技术突破,如分布式计算、云计算和人工智能,以应对这一挑战。通过有效处理和分析海量数据,我们将迎来更多的机遇和创新。
|
Kubernetes 调度 Docker
Kubernetes(K8S) Pod 介绍
Kubernetes(K8S) Pod 介绍
436 0
|
缓存 安全 Java
Java中函数式接口详解
Java 8引入函数式接口,支持函数式编程。这些接口有单一抽象方法,可与Lambda表达式结合,简化代码。常见函数式接口包括:`Function<T, R>`用于转换操作,`Predicate<T>`用于布尔判断,`Consumer<T>`用于消费输入,`Supplier<T>`用于无参生成结果。开发者也可自定义函数式接口。Lambda表达式使实现接口更简洁。注意异常处理和线程安全。函数式接口广泛应用于集合操作、并行编程和事件处理。提升代码可读性和效率,是现代Java开发的重要工具。
524 0

热门文章

最新文章