找做帽子的工厂网站,行业关键词一览表,用rp怎么做网站功能按钮,辽宁建设工程信息网领取招标文件Word2Vec 1、引言2、Word2Vec2.1 定义2.2 原理2.3 实现方式2.4 算法公式2.5 代码示例 3、总结 1、引言
小屌丝#xff1a;鱼哥#xff0c; help ,help 小鱼#xff1a; 你这是在鱼塘里面无法呼吸了#xff1f; 小屌丝#xff1a;… 别闹#xff0c;鱼哥#xff0c; 小鱼… Word2Vec 1、引言2、Word2Vec2.1 定义2.2 原理2.3 实现方式2.4 算法公式2.5 代码示例 3、总结 1、引言
小屌丝鱼哥 help ,help 小鱼 你这是在鱼塘里面无法呼吸了 小屌丝… 别闹鱼哥 小鱼你平时问我问题可都是说中文的 只有一种情况说的事英文. 小屌丝…这…这 … 唉 小鱼所以我说你在鱼塘里面… 小屌丝唉~~ 可不能这么说 我这是正儿八经的求助 小鱼那你说说 要问啥呢 小屌丝就是 Word 小鱼啊 Word还问 小屌丝 我没说完呢 Word2Vec 小鱼这整的我还以为你问Word呢Word2Vec咋了 小屌丝我不会啊 小鱼不会就学啊 小屌丝我这不向你请教了嘛 小鱼 那…楼下的烟火味挺浓啊 小屌丝啊… 好说好说 我这就给老板娘打电话留桌。 小鱼这… 多不好意思啊。
2、Word2Vec
2.1 定义
Word2Vec 是一种用于学习词向量表示的自然语言处理NLP技术。其核心思想是将文本中的单词映射到高维空间中的向量使得这些向量能够捕捉单词之间的语义和语法关系。
Word2Vec 的两种主要模型是 Skip-Gram 和 Continuous Bag of Words (CBOW。
2.2 原理 CBOW连续词袋模型通过上下文即周围的词来预测当前词。其核心思想是通过上下文的词向量的平均值来预测当前词。 Skip-Gram与CBOW相反Skip-Gram模型通过当前词来预测上下文。这种方式在处理较小数据集时表现更好尤其是在捕捉稀有词上。
这两种模型都是通过构建一个神经网络并通过训练来优化网络权重从而得到词向量。
2.3 实现方式
Word2Vec的实现主要依赖于两种技术负采样Negative Sampling和层序softmaxHierarchical Softmax。
负采样通过随机选择少量的“负”样本来更新权重以此加速训练过程层序softmax则是通过构建一棵哈夫曼树来减少计算复杂度。 2.4 算法公式
Word2Vec算法的核心是最大化对数似然函数对于Skip-Gram模型目标函数可以表示为 [ L ( θ ) ∑ t 1 T ∑ − c ≤ j ≤ c , j ≠ 0 log p ( w t j ∣ w t ; θ ) ] [L(\theta) \sum_{t1}^{T}\sum_{-c \leq j \leq c, j \neq 0} \log p(w_{tj}|w_t;\theta)] [L(θ)t1∑T−c≤j≤c,j0∑logp(wtj∣wt;θ)]
其中 ( w t ) (w_t) (wt)是目标词 ( w t j ) (w_{tj}) (wtj)是上下文词 ( c ) (c) (c)是上下文窗口大小 ( θ ) (\theta) (θ)是模型参数。
2.5 代码示例
# -*- coding:utf-8 -*-
# Time : 2024-05-07
# Author : Carl_DJfrom gensim.models import Word2Vec
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
import nltk
nltk.download(punkt)
nltk.download(stopwords)# 示例文本数据实际应用中你可能会加载一个更大的文本数据集
texts [Word2Vec is a group of related models that are used to produce word embeddings.,These models are shallow, two-layer neural networks that are trained to reconstruct linguistic contexts of words.,Word2Vec takes as its input a large corpus of text and produces a vector space.,Each unique word in the corpus is assigned a corresponding vector in the space.]# 分词和去除停用词
stop_words set(stopwords.words(english))
sentences []
for text in texts:words [w for w in word_tokenize(text.lower()) if w.isalpha() and w not in stop_words]sentences.append(words)# 训练Word2Vec模型
model Word2Vec(sentences, vector_size100, window5, min_count1, workers4)# 使用模型
# 寻找与word2vec最相似的词
similar_words model.wv.most_similar(word2vec, topn5)
print(与word2vec最相似的词有)
for word, similarity in similar_words:print(f{word}: {similarity})# 获取某个词的词向量
word_vector model.wv[embedding]
print(\nembedding的词向量)
print(word_vector)# 计算两个词的相似度
similarity model.wv.similarity(word2vec, embedding)
print(f\nword2vec与embedding的相似度为{similarity})# 寻找不匹配的词
odd_word model.wv.doesnt_match(word2vec neural corpus embedding.split())
print(f\n在word2vec, neural, corpus, embedding中不匹配的词是{odd_word})
代码解析
首先下载了必要的nltk数据包然后定义了一组文本数据作为输入。对每个文本进行了分词和去除停用词的预处理步骤然后使用Word2Vec模型进行训练。模型训练完成后使用这个模型来找到与某个词最相似的词、获取特定词的词向量、计算两个词之间的相似度以及寻找不匹配的词。 3、总结
Word2Vec是深度学习和自然语言处理领域的里程碑算法。
通过将词转换为向量它能够有效地捕捉到词之间的语义关系极大地推动了文本相关应用的发展如情感分析、文本分类和机器翻译等。
尽管它已经有几年的历史但Word2Vec仍然是自然语言处理领域非常重要的工具之一。
我是小鱼
CSDN 博客专家阿里云 专家博主51CTO博客专家企业认证金牌面试官多个名企认证特邀讲师等名企签约职场面试培训、职场规划师多个国内主流技术社区的认证专家博主多款主流产品(阿里云等)测评一、二等奖获得者
关注小鱼学习【机器学习】【深度学习】领域的知识。