词嵌入与NLP

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
简介: 词嵌入与NLP

学习目标



  • 目标
  • 了解词嵌入的优势
  • 掌握词嵌入的训练gensim库的使用


  • 应用


在RNN中词使用one_hot表示的问题


image.png


  • 假设有10000个词
  • 每个词的向量长度都为10000,整体大小太大


  • 没能表示出词与词之间的关系
  • 例如Apple与Orange会更近一些,Man与Woman会近一些,取任意两个向量计算内积都为0


4.2.2 词嵌入



定义:指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。


注:这个维数通常不定,不同实现算法指定维度都不一样,通常在30~500之间。


如下图所示:


image.png


4.2.2.1 特点


  • 能够体现出词与词之间的关系


  • 比如说我们用Man - Woman,或者Apple - Orange,都能得到一个向量

能够得到相似词,例如Man - Woman = King - ?


  • ? = Queen


image.png


4.2.2.3 算法类别


Bengio等人在一系列论文中使用了神经概率语言模型使机器“习得词语的分布式表示。


2013年,谷歌托马斯·米科洛维(Tomas Mikolov)领导的团队发明了一套工具word2vec来进行词嵌入。


  • skip-gram


算法学习实现:https://www.tensorflow.org/tutorials/representation/word2vec


  • CBow


下载gensim库


pip install gensim


4.2.3 Word2Vec案例


4.2.3.1 训练语料


由于语料比较大,就提供了一个下载地址:http://www.sogou.com/labs/resource/cs.php


  • 搜狗新闻中文语料(2.7G)
  • 做中文分词处理之后的结果


4.2.3.2 步骤


1、训练模型


2、测试模型结果


4.2.3.3 代码


  • 训练模型API
  • from gensim import Word2Vec
  • Word2Vec(LineSentence(inp), size=400, window=5, min_count=5)
  • LineSentence(inp):把word2vec训练模型的磁盘存储文件
  • 转换成所需要的格式,如:[[“sentence1”],[”sentence1”]]
  • size:是每个词的向量维度
  • window:是词向量训练时的上下文扫描窗口大小,窗口为5就是考虑前5个词和后5个词
  • min-count:设置最低频率,默认是5,如果一个词语在文档中出现的次数小于5,那么就会丢弃
  • 方法:
  • inp:分词后的文本
  • save(outp1):保存模型


训练的代码如下


if len(sys.argv) < 3:
      sys.exit(1)
    # inp表示语料库(分词),outp:模型
    inp, outp = sys.argv[1:3]
    model = Word2Vec(LineSentence(inp), size=400, window=5, min_count=5, workers=multiprocessing.cpu_count())
    model.save(outp)
import sys
import multiprocessing
from gensim.models import Word2Vec
from gensim.models.word2vec import LineSentence
if __name__ == '__main__':
    if len(sys.argv) < 3:
      sys.exit(1)
    # inp表示语料库(分词),outp:模型
    inp, outp = sys.argv[1:3]
    model = Word2Vec(LineSentence(inp), size=400, window=5, min_count=5, workers=multiprocessing.cpu_count())
    model.save(outp)


运行命令


python trainword2vec.py ./corpus_seg.txt ./model/*


指定好分词的文件以及,保存模型的文件


  • 加载模型测试代码
  • model = gensim.models.Word2Vec.load("*.model")
  • model.most_similar('警察')
  • model.similarity('男人','女人')
  • most_similar(positive=['女人', '丈夫'], negative=['男人'], topn=1)


improt gensim
gensim.models.Word2Vec.load("./model/corpus.model")
model.most_similar("警察")
Out:
[('警员', 0.6961891651153564),
 ('保安人员', 0.6414757370948792),
 ('警官', 0.6149201989173889),
 ('消防员', 0.6082159876823425),
 ('宪兵', 0.6013336181640625),
 ('保安', 0.5982533693313599),
 ('武警战士', 0.5962344408035278),
 ('公安人员', 0.5880240201950073),
 ('民警', 0.5878666639328003),
 ('刑警', 0.5800305604934692)]
model.similarity('男人','女人')
Out: 0.8909852730435042
model.most_similar(positive=['女人', '丈夫'], negative=['男人'], topn=1)
Out: [('妻子', 0.7788498997688293)]


4.2.4 总结



  • 掌握gensim库的词向量训练和使用


目录
相关文章
|
5月前
|
自然语言处理 索引
大模型开发: 解释自然语言处理(NLP)中的词嵌入。
**词嵌入技术在NLP中将文本转为数值表示,捕获词汇的语义和语法关系。过程包括:词汇索引、训练嵌入矩阵(如Word2Vec、GloVe、BERT)、文本向量化及向量输入到NLP模型(如情感分析、命名实体识别)。词嵌入是连接文本与机器理解的关键桥梁。**
99 2
|
机器学习/深度学习 人工智能 自然语言处理
NLP文本生成全解析:从传统方法到预训练完整介绍
NLP文本生成全解析:从传统方法到预训练完整介绍
175 0
|
2月前
|
机器学习/深度学习 自然语言处理 数据挖掘
【NLP】深度学习的NLP文本分类常用模型
本文详细介绍了几种常用的深度学习文本分类模型,包括FastText、TextCNN、DPCNN、TextRCNN、TextBiLSTM+Attention、HAN和Bert,并提供了相关论文和不同框架下的实现源码链接。同时,还讨论了模型的优缺点、适用场景以及一些优化策略。
48 1
|
5月前
|
自然语言处理 数据可视化 算法
NLP中的嵌入和距离度量
本文将深入研究嵌入、矢量数据库和各种距离度量的概念,并提供示例和演示代码。
108 3
|
5月前
|
机器学习/深度学习 自然语言处理 算法
在NLP中,什么是词性标注?
【2月更文挑战第13天】【2月更文挑战第37篇】在NLP中,什么是词性标注?
138 0
|
自然语言处理 PyTorch 测试技术
ESRE 系列(一):如何部署自然语言处理 (NLP):文本嵌入和向量检索
本文将举例说明如何使用文本嵌入模型来生成文本内容的向量表示,并演示如何对生成的向量进行向量检索。我们将会在 Elasticsearch 上部署一个面向所有人群开放的模型,然后在采集管道中使用它来从文本文档生成嵌入。接下来,我们会展示如何在向量检索中使用这些嵌入来查找对于给定查询而言语义相似的文档。
35701 12
ESRE 系列(一):如何部署自然语言处理 (NLP):文本嵌入和向量检索
|
机器学习/深度学习 自然语言处理 Serverless
NLP / LLMs中的Temperature 是什么?
ChatGPT, GPT-3, GPT-3.5, GPT-4, LLaMA, Bard等大型语言模型的一个重要的超参数
2069 0
NLP / LLMs中的Temperature 是什么?
|
机器学习/深度学习 自然语言处理 计算机视觉
NLP学习笔记(六) Transformer简明介绍
NLP学习笔记(六) Transformer简明介绍
172 0
|
机器学习/深度学习 自然语言处理 TensorFlow
【自然语言NLP】TensorFlow使用LSTM实现文本匹配任务
【自然语言NLP】TensorFlow使用LSTM实现文本匹配任务
345 0
【自然语言NLP】TensorFlow使用LSTM实现文本匹配任务
|
机器学习/深度学习 人工智能 自然语言处理
情感分析领域的 NLP 技术与应用| 学习笔记
快速学习情感分析领域的 NLP 技术与应用
449 0
情感分析领域的 NLP 技术与应用| 学习笔记
下一篇
无影云桌面