NLP基础知识 - 向量化

NLP基础知识 - 向量化

目录

NLP基础知识 - 向量化

  • NLP基础知识 - 向量化
    • 目录
    • 什么是向量化?
    • 为什么需要向量化?
    • 常见的向量化方法
      • 1. 词袋模型(Bag of Words, BoW)
      • 2. TF-IDF(词频-逆文档频率)
      • 3. 词嵌入(Word Embedding)
      • 4. 句子嵌入(Sentence Embedding)


什么是向量化?

向量化是自然语言处理(NLP)领域的核心步骤之一。它的目标是将文本数据转换为数学形式(向量),使其能够被机器学习模型处理。

在实际操作中,文本中的单词或句子被表示为一个高维空间中的点,这些点可以捕捉文本之间的语义关系。向量化是 NLP 中将非结构化数据结构化的关键环节。


为什么需要向量化?

  • 机器学习模型输入要求:机器学习模型只能处理数值数据,因此需要将文本数据转换为数字形式。
  • 捕捉语义关系:向量化允许模型捕捉单词、短语和句子之间的语义关系,例如同义词或相似词。
  • 简化文本计算:数学向量便于执行计算,例如相似度度量(余弦相似度、欧氏距离等)。

常见的向量化方法

1. 词袋模型(Bag of Words, BoW)

词袋模型是最简单的向量化方法之一。它将文本中的单词表示为特征,并统计每个单词的出现次数。

from sklearn.feature_extraction.text import CountVectorizercorpus = ["我喜欢自然语言处理","自然语言处理很有趣","机器学习和深度学习都是AI的组成部分"
]# 创建词袋模型
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(corpus)# 显示结果
print("词袋模型特征:", vectorizer.get_feature_names_out())
print("词袋模型矩阵:\n", X.toarray())

2. TF-IDF(词频-逆文档频率)

TF-IDF是一种改进的词袋模型,它不仅考虑单词出现的次数,还考虑单词在整个语料库中的重要性。

from sklearn.feature_extraction.text import TfidfVectorizer# 创建TF-IDF模型
tfidf_vectorizer = TfidfVectorizer()
X_tfidf = tfidf_vectorizer.fit_transform(corpus)# 显示结果
print("TF-IDF特征:", tfidf_vectorizer.get_feature_names_out())
print("TF-IDF矩阵:\n", X_tfidf.toarray())

3. 词嵌入(Word Embedding)

(1) Word2Vec
Word2Vec是通过神经网络学习单词的稠密向量表示,能够捕捉到单词之间的语义关系。

from gensim.models import Word2Vecsentences = [["自然语言处理", "是", "人工智能", "的一部分"],["机器学习", "是", "NLP", "的重要组成"],["深度学习", "提升", "了", "AI", "的性能"]
]# 训练Word2Vec模型
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4)# 显示单词向量
print("单词 '自然语言处理' 的向量表示:", model.wv['自然语言处理'])

(2) GloVe
GloVe(Global Vectors for Word Representation)是一种基于统计的词嵌入方法,利用词共现矩阵进行建模。

4. 句子嵌入(Sentence Embedding)

句子嵌入是基于句子而非单词的向量化方法,能够捕捉句子级别的语义。

(1) 使用预训练模型(如BERT)
BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer的预训练模型,能够生成上下文相关的向量。

from transformers import BertTokenizer, BertModel
import torch# 加载BERT模型
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')# 输入句子
sentence = "Natural language processing is fun!"
inputs = tokenizer(sentence, return_tensors='pt')# 生成句子嵌入
outputs = model(**inputs)
sentence_embedding = outputs.last_hidden_state.mean(dim=1)print("句子嵌入向量:", sentence_embedding)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/498387.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python编程技术

设计目的 该项目框架Scrapy可以让我们平时所学的技术整合旨在帮助学习者提高Python编程技能并熟悉基本概念: 1. 学习基本概念:介绍Python的基本概念,如变量、数据类型、条件语句、循环等。 2. 掌握基本编程技巧:教授学生如何使…

论文阅读《Cross-scale multi-instance learning for pathological image diagnosis》

From:2024 MIA CS-MIL GitHub:https://github.com/hrlblab/CS-MIL 一、Abstract: 在数字病理学中,分析高分辨率全幻灯片图像(WSIs)时涉及多个尺度的信息是一个重大挑战。多实例学习(MIL&#x…

短视频平台的视频水印怎么去除?

当你看到某个短视频,觉得内容非常有价值,想要个人收藏以便日后学习或回顾,但发现短视频平台无法直接下载且带有水印时,以下提供的几种方法将帮助你轻松去除水印,获取高清无水印的视频内容。 方法一:使用第…

【Redis】Redis 典型应用 - 缓存 (cache)

目录 1. 什么是缓存 2. 使用 Redis 作为缓存 3. 缓存的更新策略 3.1 定期生成 3.2 实时生成 4. 缓存的淘汰策略 5. 缓存预热, 缓存穿透, 缓存雪崩 和 缓存击穿 关于缓存预热 (Cache preheating) 关于缓存穿透 (Cache penetration) 关于缓存雪崩 (Cache avalanche) 关…

解决springdoc-openapi-ui(Swagger3)跳转默认界面问题

文章目录 问题现象解决方法 问题现象 项目正确引入springdoc-openapi-ui依赖&#xff0c;但是访问/swagger-ui/index.html界面时&#xff0c;跳转到了默认的界面&#xff0c;如下图所示&#xff1a; 解决方法 1、升级maven依赖为1.8.0以上&#xff1a; <dependency>…

绝美的数据处理图-三坐标轴-散点图-堆叠图-数据可视化图

clc clear close all %% 读取数据 load(MyColor.mat) %读取颜色包for iloop 1:25 %提取工作表数据data0(iloop) {readtable(data.xlsx,sheet,iloop)}; end%% 解析数据 countzeros(23,14); for iloop 1:25index(iloop) { cell2mat(table2array(data0{1,iloop}(1,1)))};data(i…

HALCON中用于分类的高斯混合模型create_class_gmm

目录 一、创建用于分类的高斯混合模型函数二、代码和效果展示三、相关函数 一、创建用于分类的高斯混合模型函数 create_class_gmm( : : NumDim, NumClasses, NumCenters, CovarType, Preprocessing, NumComponents, RandSeed : GMMHandle)create_class_gmm创建用于分类的高斯…

lua-debug for Sublime

目标 Sublime 也支持 lua-debug&#xff0c;操作体验与 VSCode 一致。 优势 执行效率高&#xff0c;不掉帧 可随时开启 配置简单&#xff0c;一份配置兼容 VSCode 和 Sublime 安装 要求 Sublime 4 的版本&#xff08;注&#xff1a;从 Sublime 3 升到 4 的不算&#xff0c;…

Kafka消息不丢失与重复消费问题解决方案总结

1. 生产者层面 异步发送与回调处理 异步发送方式&#xff1a;生产者一般使用异步方式发送消息&#xff0c;异步发送有消息和回调接口两个参数。在回调接口的重写方法中&#xff0c;可通过异常参数判断消息发送状态。若消息发送成功&#xff0c;异常参数为null&#xff1b;若发…

leetcode 3312. 查询排序后的最大公约数

题目如下 错误示范: 暴力做法遍历nums数组分别求公约数 using namespace std; int gcd(int a,int b) {int a1 a , b1 b;if(a < b) {a1 b;b1 a;}if(a1 % b1 0) return b1;return gcd(a1 % b1,b1);}//logn vector<int> gcdValues(vector<int>& nums, …

VuePress搭建个人博客

VuePress搭建个人博客 官网地址: https://v2.vuepress.vuejs.org/zh/ 相关链接: https://theme-hope.vuejs.press/zh/get-started/ 快速上手 pnpm create vuepress vuepress-starter# 选择简体中文、pnpm等, 具体如下 .../19347d7670a-1fd8 | 69 .../19…

Junit4单元测试快速上手

文章目录 POM依赖引入业务层测试代码Web层测试代码生成测试类文件 在工作中我用的最多的单元测试框架是Junit4。通常在写DAO、Service、Web层代码的时候都会进行单元测试&#xff0c;方便后续编码&#xff0c;前端甩锅。 POM依赖引入 <dependency><groupId>org.spr…

ABB RobotStudio学习记录(二)SmartGripper模拟

SmartGripper模拟 准备具体操作 准备 名称版本Robot Studio6.08 为了简化开发&#xff0c;我研究了 ABB 机械臂 SmartGripper 在 ABB RobotStudio 中的模拟操作。 具体操作 主要分3个步骤&#xff1a; 修改机械装置&#xff0c;设置Pose; 我这里使用的ABB YuMi&#xff0c…

terminal_学习

参考&#xff1a; 让你的 Mac 提前用上 macOS Catalina 的 Shell——Oh My Zsh 配置指南 https://sspai.com/post/55176MAC 终端美化教程&#xff08;来个全套 &#xff09;https://blog.csdn.net/weixin_42326144/article/details/121957795 x.1 zsh做美化&#xff08;安装oh…

音视频入门知识(四):封装篇

⭐四、封装篇 H264封装成mp4、flv等格式&#xff0c;那为什么需要封装&#xff1f; ​ h264也能播放&#xff0c;但是按照帧率进行播放&#xff0c;可能不准 ★FLV **FLV&#xff08;Flash Video&#xff09;**是一种用于传输和播放视频的容器文件格式。FLV 格式广泛应用于流媒…

使用 ASP.NET Core wwwroot 上传和存储文件

在 ASP.NET Core 应用程序中上传和存储文件是用户个人资料、产品目录等功能的常见要求。本指南将解释使用wwwroot存储图像&#xff08;可用于文件&#xff09;的过程以及如何在应用程序中处理图像上传。 步骤 1&#xff1a;设置项目环境 确保您的 ASP.NET 项目中具有必要的依…

S2-007-RCE(CVE-2012-0838)--vulhub

S2-007-RCE(CVE-2012-0838) 攻击者可以利用不安全的输入数据&#xff0c;构造OGNL表达式&#xff0c;最终导致服务器执行恶意命令。特别是在没有适当的输入验证或配置的情况下&#xff0c;攻击者可以在 HTTP 请求中嵌入 OGNL 表达式&#xff0c;触发远程代码执行。 Affected …

tar.gz压缩文件在linux上解压异常问题:gzip:stdin:invalid compressed data

1. 异常描述 将一个tar.gz压缩文件从windows拷贝到linux上之后&#xff0c;使用命令&#xff1a;tar -zxvf xxx.tar.gz压缩包时出现如下提示信息&#xff1a; 2. 异常分析 压缩包在下载的时候没有下载完整&#xff0c;重新下载一个试试。

UE5材质节点CameraDepthFade

相机深度消失&#xff0c;Fade Length相机离物体位置&#xff0c;Fade Offset消失偏移 可以让物体随着相机距离消失 相机深度消失 边缘自发光

Python机器学习笔记(十五、聚类算法的对比和评估)

用真实世界的数据集对k均值、凝聚聚类和DBSCAN算法进行比较。 1. 用真实值评估聚类 评估聚类算法对真实世界数据集的聚类结果&#xff0c;可以用调整rand指数ARI和归一化互信息NMI。 调整rand指数 &#xff08;adjusted rand index&#xff0c;ARI&#xff09;和归一化互信息…