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

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: 【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模型如下

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

相关文章
|
10天前
|
机器学习/深度学习 自然语言处理 API
如何使用阿里云的语音合成服务(TTS)将文本转换为语音?本文详细介绍了从注册账号、获取密钥到编写Python代码调用TTS服务的全过程
如何使用阿里云的语音合成服务(TTS)将文本转换为语音?本文详细介绍了从注册账号、获取密钥到编写Python代码调用TTS服务的全过程。通过简单的代码示例,展示如何将文本转换为自然流畅的语音,适用于有声阅读、智能客服等场景。
50 3
|
19天前
|
人工智能 自然语言处理 语音技术
利用Python进行自然语言处理(NLP)
利用Python进行自然语言处理(NLP)
32 1
|
30天前
|
人工智能 自然语言处理 语音技术
利用Python进行自然语言处理(NLP)
利用Python进行自然语言处理(NLP)
28 3
|
1月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
46 2
|
1月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
41 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
1月前
|
机器学习/深度学习 自然语言处理 大数据
使用Python进行文本情感分析
【10月更文挑战第2天】使用Python进行文本情感分析
30 3
|
Python
python编程:计算词频的函数绘制图形
python编程:计算词频的函数绘制图形
196 0
python编程:计算词频的函数绘制图形
|
3天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
3天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
3天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!