阿里云网站怎么备案域名解析,注册域名后网站建设,学python能干嘛,安徽省建设工程网站NLP基础知识 - 向量化 
目录 NLP基础知识 - 向量化 NLP基础知识 - 向量化目录什么是向量化#xff1f;为什么需要向量化#xff1f;常见的向量化方法1. 词袋模型#xff08;Bag of Words, BoW#xff09;2. TF-IDF#xff08;词频-逆文档频率#xff09;3. 词嵌入#x…NLP基础知识 - 向量化 
目录 NLP基础知识 - 向量化 NLP基础知识 - 向量化目录什么是向量化为什么需要向量化常见的向量化方法1. 词袋模型Bag of Words, BoW2. TF-IDF词频-逆文档频率3. 词嵌入Word Embedding4. 句子嵌入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_size100, window5, min_count1, workers4)# 显示单词向量
print(单词 自然语言处理 的向量表示, model.wv[自然语言处理])(2) GloVe GloVeGlobal Vectors for Word Representation是一种基于统计的词嵌入方法利用词共现矩阵进行建模。 
4. 句子嵌入Sentence Embedding 
句子嵌入是基于句子而非单词的向量化方法能够捕捉句子级别的语义。 
(1) 使用预训练模型如BERT BERTBidirectional 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_tensorspt)# 生成句子嵌入
outputs  model(**inputs)
sentence_embedding  outputs.last_hidden_state.mean(dim1)print(句子嵌入向量, sentence_embedding)