VecMap 数据准备全攻略:get_data.sh 一键下载多语言词嵌入与词典
【免费下载链接】vecmapA framework to learn cross-lingual word embedding mappings项目地址: https://gitcode.com/gh_mirrors/ve/vecmap
VecMap 是一个用于学习跨语言词嵌入映射(cross-lingual word embedding mappings)的开源框架,能把不同语言的词嵌入对齐到同一个共享空间,从而支撑双语词典归纳、跨语言相似度计算等经典任务。对新手而言,最花时间的往往不是算法本身,而是准备多语言词嵌入与双语词典数据。好在项目提供了 get_data.sh 脚本,一条命令即可下载论文使用的全套数据,让你快速进入实战环节。
为什么说数据准备是跨语言词嵌入的第一步?
想要训练跨语言词嵌入映射,你至少需要两类输入:
- 单语词嵌入:每种语言独立的词向量文件;
- 双语词典:源语言与目标语言单词的对照表(训练用)。
自己训练词向量、再手工整理词典,既耗时又容易踩坑。VecMap 官方贴心地提供了 get_data.sh 一键下载脚本,把论文中用到的标准数据集全部下载好,目录结构自动创建,开箱即用。
get_data.sh 一键下载脚本:能拿到哪些数据?
五种语言的高质量词嵌入 📦
脚本会自动下载**英语(en)、意大利语(it)、德语(de)、芬兰语(fi)、西班牙语(es)**五种语言的词嵌入,均为 300 维、word2vec 文本格式,与你用 word2vec 或 fastText 训练出的格式完全一致,可直接被 embeddings.py 读取。
双语训练与测试词典
dictionaries.tar.gz中包含多组语言对的训练词典(用于学习映射)和测试词典(用于评测),每行一个词对,格式为:源语言单词 目标语言单词。
相似度与类比评测数据集
- 单词类比数据
questions-words.txt,来自 Mikolov 等人的经典数据集; - 跨语言相似度数据 RG65(英德)、MWS353(英德、英意),用于评测跨语言词相似度。
运行前准备:环境要求与快速获取项目代码
在运行脚本前,请确认环境满足以下依赖(详见 README.md):
| 依赖 | 说明 |
|---|---|
| Python 3 | 必选 |
| NumPy | 必选 |
| SciPy | 必选 |
| CuPy | 可选,仅在需要 GPU 加速时安装 |
获取项目代码也很简单:
git clone https://gitcode.com/gh_mirrors/ve/vecmap cd vecmap一键下载步骤:get_data.sh 具体怎么用?
进入项目目录后,直接执行:
./get_data.sh脚本会自动完成以下工作:
- 创建
data/目录及embeddings、dictionaries、analogies、similarity四个子目录; - 依次下载五种语言的词嵌入压缩包,并解压为纯文本格式;
- 下载并解压双语词典、相似度与类比数据集;
- 自动清理临时压缩包,保持目录整洁。
整个过程全自动,无需任何人工干预,真正实现"一键下载多语言词嵌入与词典"。
下载完成后:data 目录结构一目了然
脚本执行完毕后,你会得到如下目录结构:
data/ ├── embeddings/ # 五种语言的词嵌入文件 ├── dictionaries/ # 双语训练/测试词典 ├── analogies/ # 单词类比评测数据 └── similarity/ # 跨语言相似度评测数据对应到 get_data.sh 脚本中,你会发现它先通过mkdir -p创建目录,再用wget下载、gunzip解压、unzip/tar提取文件,逻辑清晰,也方便你按需修改。
词嵌入文件格式:看懂 en.emb.txt
以data/embeddings/en.emb.txt为例,文件采用标准的 word2vec 文本格式:
- 第一行:
词表大小 向量维度,例如200000 300; - 之后每一行:
单词 向量分量1 向量分量2 ...。
VecMap 的读写逻辑封装在 embeddings.py 的read/write函数中。如果你有自训的词向量,按这个格式组织文件即可直接使用。
拿到数据后:如何训练跨语言词嵌入映射?
数据就绪后,就可以用 map_embeddings.py 训练映射了。以有大量训练词典的监督模式为例:
python3 map_embeddings.py --supervised \ data/dictionaries/en-es.train.txt \ data/embeddings/en.emb.txt \ data/embeddings/es.emb.txt \ en_mapped.emb es_mapped.emb训练完成后,还可以用 eval_translation.py 在测试词典上评测双语词典归纳效果(推荐使用 CSLS 检索):
python3 eval_translation.py en_mapped.emb es_mapped.emb \ -d data/dictionaries/en-es.test.txt --retrieval csls常见问题与排查技巧
- 脚本提示权限不足:先执行
chmod +x get_data.sh赋予执行权限; - 下载速度慢或失败:部分数据源位于境外服务器,网络波动时重试即可;脚本内部使用
wget -q静默下载,你也可以去掉-q参数查看详细进度; - 想用自己的数据:无需修改脚本,把自训词向量转换成 word2vec 文本格式、词典整理成"每行一个词对",替换对应文件即可。
小结:从数据准备到跨语言词嵌入实战
VecMap 的数据准备并没有想象中复杂。get_data.sh 帮你一键搞定多语言词嵌入、双语词典和评测数据,配合 map_embeddings.py 与 eval_translation.py 即可完成"下载 → 训练 → 评测"的完整闭环。现在就去试试吧,让你的跨语言词嵌入项目快速跑起来!🚀
【免费下载链接】vecmapA framework to learn cross-lingual word embedding mappings项目地址: https://gitcode.com/gh_mirrors/ve/vecmap
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考