You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何加载.npy格式预训练词嵌入及解决模块找不到错误

解决方案

一、解决ModuleNotFoundError: No module named 'representations.sequentialembedding'问题

你通过pip安装的representations是PyPI上的第三方包,和HistWords仓库内部的representations模块并非同一内容。解决步骤如下:

  • 确保已将完整的HistWords仓库克隆到本地,example.py依赖的representations是仓库内部的子目录,而非独立安装的包。
  • 将HistWords仓库的根目录添加到Python的搜索路径,有两种方式:
    1. 在代码中手动添加:打开example.py,在文件开头插入以下代码(替换为你的HistWords仓库实际路径):
      import sys
      sys.path.insert(0, '/your/actual/path/to/histwords')
      
    2. 通过环境变量运行脚本:在终端执行example.py前,先设置PYTHONPATH:
      PYTHONPATH=/your/actual/path/to/histwords python example.py
      
  • 检查仓库目录结构,确认histwords文件夹下存在representations/sequentialembedding.py文件,若缺失则重新克隆仓库。

二、用Python加载.npy格式的预训练词嵌入

.npy是NumPy的二进制文件格式,直接借助NumPy库即可加载,分两种常见场景处理:

场景1:嵌入矩阵与词汇表分离存储

如果.npy文件是纯嵌入矩阵,另有单独的词汇表文件(如vocab.txt):

import numpy as np

# 读取词汇表,每行对应一个单词
with open('vocab.txt', 'r', encoding='utf-8') as f:
    vocab = [line.strip() for line in f]

# 加载.npy格式的嵌入矩阵
embedding_matrix = np.load('word_embeddings.npy')

# 构建单词到嵌入向量的映射字典
word_embedding_map = {word: embedding_matrix[i] for i, word in enumerate(vocab)}

场景2:嵌入数据以字典形式存储在.npy中

如果.npy文件直接保存了{单词: 嵌入向量}的字典结构,加载时需开启allow_pickle=True(仅加载可信来源的文件,避免安全风险):

import numpy as np

# 加载字典格式的嵌入文件
word_embedding_dict = np.load('embeddings_dict.npy', allow_pickle=True).item()

# 示例:获取指定单词的嵌入向量
print(word_embedding_dict.get('example'))

内容的提问来源于stack exchange,提问作者Helena Yin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 10:25:01