【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
简介: 【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)

觉得有帮助请点赞关注收藏~~~

一、文本向量化

文本向量化:将文本信息表示成能够表达文本语义的向量,是用数值向量来表示文本的语义。 词嵌入(Word Embedding):一种将文本中的词转换成数字向量的方法,属于文本向量化处理的范畴。 向量嵌入操作面临的挑战包括:

(1)信息丢失:向量表达需要保留信息结构和节点间的联系。

(2)可扩展性:嵌入方法应具有可扩展性,能够处理可变长文本信息。

(3)维数优化:高维数会提高精度,但时间和空间复杂性也被放大。低维度虽然时间、空间复杂度低,但以损失原始信息为代价,因此需要权衡最佳维度的选择。

常见的文本向量和词嵌入方法包括独热模型(One Hot Model),词袋模型(Bag of Words Model)、词频-逆文档频率(TF-IDF)、N元模型(N-Gram)、单词-向量模型(Word2vec)、文档-向量模型(Doc2vec)

二、独热编码

One-hot编码采用N位状态寄存器来对N个状态进行编码,是分类变量作为二进制向量的表述。

首先根据提供的文本构建词典,其中的数字可以视作对应词语的标签信息或者事物的分类信息

然后基于独热编码表达法,构造一个N维向量,该向量的维度与词典的长度一直,对于给定词语进行向量表达时,其在词典中出现的响应位置的寄存器赋值为1,其余为0  示例如下

三、词袋模型

词袋模型(Bag-of-words model:BOW)假定对于给定文本,忽略单词出现的顺序和语法等因素,将其视为词汇的简单集合,文档中每个单词的出现属于独立关系,不依赖于其它单词。先将句子向量化,句子维度和字典维度一致,第 i 维上的数字代表 ID 为 i 的词语在该句子里出现的频率。

四、词频-逆文档频率模型

TF-IDF(term frequency-inverse document frequency)是数据信息挖掘的常用统计技术。TF(Term Frequency)中文含义是词频,IDF(Inverse Document Frequency)中文含义是逆文本频率指数。

词频统计的是词语在特定文档中出现的频率,而逆文档频率统计的是词语在其他文章中出现的频率,其处理基本逻辑是词语的重要性随着其在特定文档中出现的次数呈现递增趋势,但同时会随着其在语料库中其他文档中出现的频率递减下降 数学表达式如下

五、N元模型

N-Gram语言模型基本思路是基于给定文本信息,预测下一个最可能出现的词语。N=1称为unigram,表示下一词的出现不依赖于前面的任何词;N=2称为bigram,表示下一词仅依赖前面紧邻的一个词语,依次类推。

六、单词-向量模型

将不可计算、非结构化的词语转化为可计算、结构化的向量。word2vec模型假设不关注词的出现顺序。Word2Vec包含连续词袋模型CBOW(Continues Bag of Words)和Skip-gram模型两种网络结构。训练完成之后,模型可以针对词语和向量建立映射关系,因此可用来表示词语跟词语之间的关系

CBOW模型如下

Skip-gram模型如下

七、文档-向量模型

它包含两种,一种是基于段向量的分布式内存模型(PV-DM),另一个是基于段向量的分布式词袋模型(PV-DBOW),处理逻辑分别与单词-向量中的连续词袋模型和略元模型对应

DM模型如下

DBOW模型如下

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
3天前
|
Python
python对象模型
这篇文章介绍了Python中的对象模型,包括各种内置对象类型如数字、字符串、列表、字典等,以及如何使用`type()`函数来查看变量的数据类型。
|
3天前
|
机器学习/深度学习 监控 TensorFlow
使用Python实现深度学习模型:智能森林火灾预警系统
使用Python实现深度学习模型:智能森林火灾预警系统
25 5
|
1天前
|
机器学习/深度学习 PHP 开发者
探索PHP中的面向对象编程构建你的首个机器学习模型:以Python和scikit-learn为例
【8月更文挑战第30天】在PHP的世界中,面向对象编程(OOP)是一块基石,它让代码更加模块化、易于管理和维护。本文将深入探讨PHP中面向对象的魔法,从类和对象的定义开始,到继承、多态性、封装等核心概念,再到实战中如何应用这些理念来构建更健壮的应用。我们将通过示例代码,一起见证PHP中OOP的魔力,并理解其背后的设计哲学。
|
2天前
|
机器学习/深度学习 数据采集 Python
利用Python实现简单的线性回归模型
【8月更文挑战第29天】本文将引导你了解并实践如何使用Python编程语言实现一个简单的线性回归模型。我们将通过一个实际的数据集,一步步地展示如何进行数据预处理、建立模型、训练及评估模型性能。文章旨在为初学者提供一个易于理解且实用的编程指南,帮助他们快速入门机器学习领域。
|
3天前
|
机器学习/深度学习 数据采集 传感器
使用Python实现深度学习模型:智能水质监测与管理
使用Python实现深度学习模型:智能水质监测与管理
15 1
|
3天前
|
机器学习/深度学习 数据采集 人工智能
深入浅出:用Python打造你的第一个机器学习模型
【8月更文挑战第28天】在数字浪潮汹涌的今天,机器学习不再是高不可攀的技术。本文将通过Python这把钥匙,解锁机器学习的大门。无论你是编程新手,还是想探索AI奥秘的好奇者,都能在这里找到入门的路径。我们将一起搭建一个简单的线性回归模型,并理解背后的数学原理。准备好了吗?让我们开始吧!
|
3天前
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
|
机器学习/深度学习 Python
Python3入门机器学习 - 模型泛化
模型正则化 在多项式回归中如果degree过大,会造成过拟合的情况,导致模型预测方差极大,因此,我们可以使用模型正则化的方式来减小过拟合导致的预测方差极大的问题 即在我们训练模型时,不仅仅需要将预测的y和训练集的y的均方误差达到最小,还要使参数向量最小。
968 0
|
2天前
|
存储 数据挖掘 数据库
探索Python编程:从基础到高级探索移动应用开发之旅:从概念到实现
【8月更文挑战第29天】本文将带你进入Python的世界,无论你是初学者还是有一定经验的开发者。我们将从Python的基础知识开始,然后逐步深入到更复杂的主题。你将学习到如何编写清晰、高效的代码,以及如何使用Python进行数据分析和网络编程。最后,我们将介绍一些高级主题,如装饰器和生成器。让我们一起开始这段旅程吧!
|
1天前
|
存储 Kubernetes Cloud Native
探索Python编程的奥秘云原生时代的容器编排:Kubernetes入门与实践
【8月更文挑战第30天】本文以浅显易懂的方式,探讨了Python编程的核心概念和技巧。从基础语法到高级特性,再到实际应用案例,逐步引导读者深入理解Python编程的精髓。通过本文的学习,读者将能够掌握Python编程的基本技能,并激发进一步探索的兴趣。
19 13
下一篇
云函数