这里感谢一篇论文中的大佬的实现方式,这种将词向量变成字典的写法更加的具体,清晰。考虑的更加的全面。

def convert_embedding_file():# 词向量中,第一个是单词,后面的是一个按照空格分割的300维度的向量。embedding_file = "./resource/glove.42B.300d.txt"  # 把训练好的词向量全都变成字典的形式来进行存储。rf = open(embedding_file, 'r', encoding='utf-8')  # 打开词向量文件。embeddings_index = {}  # 创建一个空的字典。print("reading embedding from " + embedding_file)  # 下面开始读取其中的文件内容。count = 0for line in rf:count += 1if count % 100000 == 0:  # 这里用来统计词嵌入矩阵的单词的数量。print(str(count))values = line.split()           # 每次分割300个元素的内容。  第一个存储的是的单词。意思就是每次只能够读取其中的一行的单词。index = len(values) - 300       # 一般是301-300 = 1,  所以一般的情况下是1.if len(values) > (300+ 1):      # 对于一些词嵌入的单词可能使得不只是一个单词组成,所以用下面的情况进行判断。word = ""  # 一个空的字符串。                 # 例如由  Bill Gates组成,,所以单词的长度会超过一般的情况。for i in range(len(values) - 300):word += values[i] + " "word = word.strip()  # 去除前后的空格。    # 去除前后的空格的部分内容。else:word = values[0]  # 单词是values[0]的形式。coefs = np.asarray(values[index:], dtype='float32')  # 作为矩阵存储其中的元素。  一个向量。从索引值后面的内容都是词向量的数字。embeddings_index[word] = coefs  # 把对应的内容用字典存储起来。rf.close()  # 关闭文件。print("finish.")  # 完成操作。

这里将glove的词向量转化成一个字典的形式来进行存储,
glove的词向量的存储的格式为
a 2323 23 2322 454 55 55 55 667 77 
b 2323 23 2322 454 55 55 55 667 77 
c 2323 23 2322 454 55 55 55 667 77
m n 2323 23 2322 454 55 55 55 667 77

采用的是一个单词加上后面的后面的维度的数据,例如50维度或者是300维度的一串数字。
但是可能存在着这种情况,就是一个词嵌入单词可能不只是由一个单词组成的情况。
这种情况下解析一行之后所得到的文件的长度要大于普通的情况,所以要进行判断是否是由一个单词组成,还是多个单词组成。

加载Glove预训练词向量到字典相关推荐

  1. Gensim加载GloVe提供的词向量的诸多Bug之终极解决

    1.先来瞅瞅Gensim提供的词向量长啥样(glove.6B.300d.txt): 2.源文件->W2V的文件->序列化 import _pickle from gensim.models ...

  2. 从零开始构建基于textcnn的文本分类模型(上),word2vec向量训练,预训练词向量模型加载,pytorch Dataset、collete_fn、Dataloader转换数据集并行加载

    伴随着bert.transformer模型的提出,文本预训练模型应用于各项NLP任务.文本分类任务是最基础的NLP任务,本文回顾最先采用CNN用于文本分类之一的textcnn模型,意在巩固分词.词向量 ...

  3. 实践:jieba分词和pkuseg分词、去除停用词、加载预训练词向量

    一:jieba分词和pkuseg分词 原代码文件 链接:https://pan.baidu.com/s/1J8kmTFk8lec5ubfwBaSnLg 提取码:e4nv 目录: 1:分词介绍: 目标: ...

  4. paddlepaddle加载预训练词向量

    文章目录 1.一些用到的api文档 2.加载预训练词向量 2.1小数据 2.2核心代码 2.3验证结果 3.可能有用的 tensorflow的加载方法可以看我之前写的: tensorflow加载词向量 ...

  5. java加载中文词向量_Chinese Word Vectors:目前最全的中文预训练词向量集合

    对于国内自然语言处理的研究者而言,中文词向量语料库是需求很大的资源.近日,来自北京师范大学和人民大学的研究者开源了「中文词向量语料库」,试图为大家解决这一问题,该库包含经过数十种用各领域语料(百度百科 ...

  6. 预训练词向量中文维基百科,英文斯坦福glove预训练的词向量下载

    中文预训练词向量--基于中文维基百科语料训练 英文预训练词向量--斯坦福glove预训练的词向量 百度云分享:https://pan.baidu.com/s/1UpZeuqlNMl6XtTB5la53 ...

  7. PyTorch在NLP任务中使用预训练词向量

    在使用pytorch或tensorflow等神经网络框架进行nlp任务的处理时,可以通过对应的Embedding层做词向量的处理,更多的时候,使用预训练好的词向量会带来更优的性能.下面分别介绍使用ge ...

  8. word2vec预训练词向量+通俗理解word2vec+CountVectorizer+TfidfVectorizer+tf-idf公式及sklearn中TfidfVectorizer

    文章目录 文分类实(一) word2vec预训练词向量 2 数据集 3 数据预处理 4 预训练word2vec模型 canci 通俗理解word2vec 独热编码 word2vec (Continuo ...

  9. 基于Keras预训练词向量模型的文本分类方法

    本文语料仍然是上篇所用的搜狗新闻语料,采用中文预训练词向量模型对词进行向量表示.上篇文章将文本分词之后,采用了TF-IDF的特征提取方式对文本进行向量化表示,所产生的文本表示矩阵是一个稀疏矩阵,本篇采 ...

最新文章

  1. rtsp连接断开_live555学习之RTSP连接建立以及请求消息处理过程
  2. 大数据对于我们的生活有哪些便利(图)
  3. Android Loader机制全面详解及源码浅析
  4. python能爬视频吗_Python爬取视频(其实是一篇福利)
  5. NS3中数据包添加有效负载
  6. 显示unc路径服务器根目录,错误:“您必须输入带有盘符的完整路径,例如:C:\ APPor形式的UNC路径:\\服务器\共享”...
  7. 追踪广告效果保护用户隐私 —— 隐私集合交集算法可以得兼
  8. 机器学习入门笔记(三):K近邻算法
  9. 编程基本功:代码都写不好,还写什么注释
  10. 注册icloud邮箱
  11. iOS学习之系统历史版本概览
  12. Electron打包方式
  13. PCB导入添加Logo图标
  14. 毕业季——在校生讲述
  15. 项目依赖包文件生成requirements.txt
  16. 用RDA5807M实现收音机功能
  17. NRF24L01注意点
  18. Webots平台NAO机器人寻路避障实现
  19. 记一次网络波动导致druid连接池无法创建新连接的BUG
  20. 四川大学计算机保研到哪些学校,211保研到川大:边缘人千万不要给自己留退路!...

热门文章

  1. 卸载亚信安全杀毒软件
  2. SEO优化|如何让网站关键词排名快速提高
  3. 关于安装jdk后为什么要配置环境变量的那些事
  4. Manifest.json文档说明
  5. English trip 自习内容 句子结构和成分
  6. UE-c++规范命名
  7. Python自动化办公:openpyxl绘制图表
  8. 前端实现文件上传(点击+拖拽)
  9. 使用Python进行同期群分析(Cohort Analysis)
  10. Unity 制作旋转门 推拉门 柜门 抽屉 点击自动开门效果 开关门自动播放音效 (附带编辑器扩展代码)