如何用word2vec 训练词嵌入模型

使用gensim训练word2vec词嵌入模型
本文介绍了如何使用gensim库中的Word2Vec进行词向量训练,以提升商品搜索中的语义相似度计算。通过训练模型,可以计算用户输入与商品名的相似度,从而提供更精准的搜索结果。

## 如何用word2vec 训练词嵌入模型

**一、应用场景**
假设你有一个商品的数据库,比如:
![](https://img-blog.csdnimg.cn/2020112714190259.png)
现在通过用户的输入来检索商品的价格。

**方法一:直接匹配法**

最简单的方法就是通过字符串进行匹配,比如,用户输入“椅子”,就用“椅子”作为关键字进行搜索,很容易找到椅子的价格就是200元/个。

**方法二:语义相似法**

   但有时用户输入的是“凳子”,如果按照字符串匹配的方法,只能返回给用户,没有此商品。但实际上可以把“椅子”的结果返回给用户参考。这种泛化的能力,通过简单的字符串匹配是显然不能实现的。

 “凳子”跟“椅子”的语意更相近,跟“香蕉”或“冰箱”的语意相对较远。在商品搜索的过程中,可以计算用户输入的关键字与数据库中商品名间的相似度,在商品数据库中找出相似度最大的商品,推荐给用户。

这种相近的程度就是词语的相似度。在实际的工程开发中可以通过word2vec实现词语相似度的计算。
**二、使用gensim自带的word2vec包进行词向量的训练步骤**

**1、下载安装gensim,pip install gemsim**

```
# 载包
from gensim.models import Word2Vec
from gensim.models.word2vec import LineSentence
```
**2、输入分词之后的维基语料进行词向量训练。**

```
# 训练模型
sentences = LineSentence('F:/下载/content/comment.replay.weibo.txt')
model = Word2Vec(sentences, size=128, window=5, min_count=5, workers=8)
```
**3、保存好咱们辛辛苦苦训练好的模型**

```
#

### Word2Vec词嵌入模型的工作原理 Word2Vec是一种高效的词向量化工具,能够将词语映射为低维稠密的实数向量空间,从而保留词语间的语义和句法关系[^1]。这种模型的核心在于通过分析大量文本数据中的上下文信息来学习词向量。 #### CBOW模型 CBOW(Continuous Bag of Words)模型的主要功能是从给定的上下文中预测目标词。具体来说,它会基于某个固定大小的滑动窗口内的上下文单词集合,尝试预测位于该窗口中间的目标词[^3]。这种方法类似于一种“填空游戏”,其中输入是一组周围的单词,而输出是一个特定位置上的缺失单词。 #### Skip-gram模型 与CBOW相反,Skip-gram模型则是从单个中心词出发去预测其周边可能出现的一系列上下文单词[^2]。相比CBOW而言,Skip-gram更擅长捕捉稀疏事件以及长距离依赖关系,在处理大规模语料库时表现尤为突出。 为了提高训练效率,除了上述两种基础架构外,还引入了一些优化策略: - **层次Softmax**: 它重新设计了传统softmax层结构,使得每次更新只需要调整部分参数而不是全部节点权重值,极大地减少了计算成本。 - **负采样(Negative Sampling)**: 此方法仅选取少量随机挑选出来的错误样本参与梯度下降过程,进一步简化了每一步迭代所需的运算量。 这些技术共同作用下,不仅加快了整个系统的收敛速度,而且也提升了最终得到的词向量质量。 ```python import gensim from gensim.models import Word2Vec sentences = [["cat", "say", "meow"], ["dog", "say", "woof"]] model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4) word_vector = model.wv['cat'] print(word_vector) ``` 以上代码片段展示了如何使用`gensim`库快速搭建一个简单的Word2Vec实例,并获取指定词汇对应的向量表示形式。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值