最近,在看一个情感分析入门级项目,其中用到了 glove 预训练词嵌入。

但是,可能是因为网络原因,直接使用 torchtext 下载 glove 却又没反应。

搞得有点头大,辗转好久才解决。

采用如下代码构建词典时,本会自动下载 “glove.6B.100d”:

TEXT.build_vocab(train_data,max_size = MAX_VOCAB_SIZE,vectors = "glove.6B.100d",unk_init = torch.Tensor.normal_)

但是,可能是因为网络原因,直接这样下载 glove 却又没反应。

于是,想着能不能仿照之前 安装 en_core_web_sm-3.0.0 先把 glove 下载到本地,然后在传到服务器上。思路没毛病,网上也能找到 golve 文件,但是 torchtext 不会玩的我,把 glove 放在什么位置可是苦恼我好久了。

解决步骤

  1. 下载 glove.6B.100d.zip 文件

  2. 通过 xftp 将 glove.6B.100d.zip 上传到远端 linux 服务器

  3. 通过 unzip 命令解压文件 glove.6B.100d.zip

    解压后主要有四个文件,如下如所示,但这里用的是 glove.6B.100d 的


4. 将 “glove.6B.100d” 移动到待执行 py 文件所在文件夹下的 .vector_cache 文件夹即可

注意:

  • 第一次执行待执行 py 文件后,会在其所在文件夹下生成一个 .vector_cache 的隐藏目录;

  • 若未生成,则可以使用 mkdir .vertor_cache 创建之。

    使用 ls -a 命令可以查看之,如下所示:

  • 将解压后的 glove.6B.100d.txt 移动到 .vector_cache,再次执行代码后会在 .vector_cache 文件夹下生成一个对应的 pt 文件,如下:

到这里,就可以正常在 torchtext 里使用 glove了。其实挺好处理的,主要一开始对torchtext 不熟悉,不知道改吧解压后的 glove 文件放在什么位置。

下面是,试验代码以及成功运行glove的图:

试验代码:

## 加载数据集
from torchtext.legacy import datasetstrain_data, test_data = datasets.IMDB.splits(TEXT, LABEL)print(f'Number of training examples: {len(train_data)}')
print(f'Number of testing examples: {len(test_data)}')print(vars(train_data.examples[0]))## 从 train 从划分 train/dev
import randomtrain_data, valid_data = train_data.split(random_state = random.seed(SEED))print(f'Number of training examples: {len(train_data)}')
print(f'Number of validation examples: {len(valid_data)}')
print(f'Number of testing examples: {len(test_data)}')## 使用预训练词嵌入 构建词典
MAX_VOCAB_SIZE = 25_000# cache = '/home/duanxinshen/GLOVE/glove.6B' # 预训练文件位置
# vectors = Vectors(name = 'glove.6B.100d.txt', cache=cache)TEXT.build_vocab(train_data,max_size = MAX_VOCAB_SIZE,vectors = "glove.6B.100d",unk_init = torch.Tensor.normal_)LABEL.build_vocab(train_data)print(f"Unique tokens in TEXT vocabulary: {len(TEXT.vocab)}")
print(f"Unique tokens in LABEL vocabulary: {len(LABEL.vocab)}")print(TEXT.vocab.freqs.most_common(20))print(TEXT.vocab.itos[:10])print(LABEL.vocab.stoi)

运行结果:

下面不用看了,主要是记录一下自己踩的坑。

踩坑1

太年轻,一开始想着直接更改 vectors 为自定义防止 glove 的文件夹位置,直接gg

TEXT.build_vocab(train_data,max_size = MAX_VOCAB_SIZE,vectors = "/home/xxx/GLOVE/glove.6B/glove.6B.100d.txt
", # 错误示例1unk_init = torch.Tensor.normal_)

果不其然报错如下:

踩坑2

参考 这个博客,看到这里可以使用 外部预训练词向量。他这篇文章中是,通过更改 namecache 来解决的,如下(这是上面这篇博客里面的内容,引用一下):

我想着这个应该符合我这个情况,但是一用发现 Vectors 是个啥玩意,又报错了:


还是没搞懂这个 Vectors 是个啥玩意,最后通过本文方法解决了~

解决 torchtext 无法下载 glove相关推荐

  1. 解决AS gradle下载同步卡慢的问题

    解决AS gradle下载同步卡慢的问题 参考文章: (1)解决AS gradle下载同步卡慢的问题 (2)https://www.cnblogs.com/bluestorm/p/9967047.ht ...

  2. 解决maven无法下载jar的问题

    解决maven无法下载jar的问题 参考文章: (1)解决maven无法下载jar的问题 (2)https://www.cnblogs.com/rookie404/p/5740485.html 备忘一 ...

  3. Asp.net生成Excel文件并下载(解决使用迅雷下载页面而不是文件的问题)

    这里采用的是在服务端先生成Excel文件,然后利用文件地址下载的方法. 先试用Response.WriteFile的方法: FileInfo fi = new FileInfo(excelFile); ...

  4. Anaconda:成功解决利用conda下载pytorch和torchvision时速度超慢的问题

    Anaconda:成功解决利用conda下载pytorch和torchvision时速度超慢的问题 目录 解决问题 解决思路 解决方法 解决问题 利用conda 下载pytorch和torchvisi ...

  5. 【原】Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)...

    这里采用的是在服务端先生成Excel文件,然后利用文件地址下载的方法. 生成Excel文件的方法,见:[原].Net创建Excel文件(插入数据.修改格式.生成图表)的方法 先试用Response.W ...

  6. 解决 Electron 包下载太慢问题

    解决 Electron 包下载太慢问题 参考文章: (1)解决 Electron 包下载太慢问题 (2)https://www.cnblogs.com/savokiss/p/8744807.html ...

  7. 解决go get下载包失败问题

    解决go get下载包失败问题 参考文章: (1)解决go get下载包失败问题 (2)https://www.cnblogs.com/nickchen121/p/11517465.html 备忘一下 ...

  8. 通过设置代理解决AndroidStudio无法下载gradle问题

    通过设置代理解决AndroidStudio无法下载gradle问题 参考文章: (1)通过设置代理解决AndroidStudio无法下载gradle问题 (2)https://www.cnblogs. ...

  9. 【问题解决】解决 Android SDK下载和更新失败“Connection to https://dl-ssl.google.com refused”的问题

    [问题&解决]解决 Android SDK下载和更新失败"Connection to https://dl-ssl.google.com refused"的问题 参考文章: ...

最新文章

  1. 如何使用Git提高研发团队工作效率?
  2. 用python+pygame模块实现一波刮刮卡效果,图像处理之路(附源码)
  3. 在Python中使用正则表达式去掉字符串里的html标签
  4. vuex模块化 怎么引用state_[Vuex系列] - 细说state的几种用法
  5. word手写字体以假乱真_Word小技巧|打印作文草稿纸
  6. 维拉智能管家机器人_“女性机器人”广受欢迎,但却面临3大问题,男性坦言:不敢用...
  7. jquery.validate
  8. mysql 用户权限管理
  9. neo4j jdbc中文乱码
  10. WPF StackPanel控件使用方法
  11. Word如何转换成PDF格式
  12. 2005年度最佳网名
  13. 微软新的邮件帐户域名 @live.com和@windowslive.com
  14. php年龄计算器,js+html实现周岁年龄计算器
  15. typeScrip(一)基础类型
  16. 微信IOS访问页面,返回的时候页面空白
  17. MVC 音乐商店 第 5 部分: 编辑窗体和模板化
  18. R语言计量经济学:工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
  19. React-虚拟DOM
  20. 入侵学校服务器修改成绩 :)

热门文章

  1. Mac系统给移动硬盘分区(图文)
  2. opencv读入灰度图片却显示三通道
  3. python派森app_《派森》(Python)下载
  4. 大家来找茬辅助工具超级简易版
  5. 最新swapidc去除云中心最新优化版本源码
  6. euclidea教程_euclidea 3.0 全三星 攻略
  7. 考研数据结构学习与总结笔记---1.1数据结构的基本概念
  8. 本地服务器搭建青龙面板(PC端)
  9. CnOpenData中国各省份基于一级分类绿色专利授权数量统计
  10. 点阵字库生成器破解版下载地址