如何解决加载使用 FastText 训练的嵌入生成两个文件
我从源集合构建了嵌入。生成两个带有扩展名的文件:embeddings.bin 和 embeddings.bin.wv.vectors_ngrams.npy
当我在另一台机器上执行嵌入时,我无法加载。于是出现下一条错误信息:
AttributeError: 'FastText' 对象没有属性 'vocabulary'
word_vectors = FastText.load("embeddings.bin",mmap='r')
我用下一个代码创建了它们: 从 gensim.models 导入 FastText 模型 2 = FastText(vector_size=4,window=3,min_count=1,句子=common_texts,epochs=10) model2.save(embeddings.bin)
我在两台机器上都有相同版本的 gensim (3.8.0),但它们是在 Linux 中构建的,我想在 Windows 中使用它们。
word_vectors = FastText.load("embeddings.bin",mmap='r')
解决方法
请注意,在 .save()
之后,可能有许多文件都以您指定的 (embeddings.bin
) 文件名前缀开头 - 并且所有这些文件必须保持在一起才能使模型成为 {{ 1}}-能够。所以首先要检查一下。
如果所有文件都移动了,从 Linux 移动到 Windows 应该没有问题。但是,可能包含多个内部 .load()
字符的长文件名会导致 Windows 文件系统出现问题,因此请确保在移动它们后确认它们具有相同的全名。 (另外,也许,请确保它们都以相同的长度/校验和进行处理,以防可能发生任何静默损坏/截断。)
最后,如果这些没有帮助,请注意 .
和 .save()
是否有超出您已经显示的任何其他错误/回溯,这可能暗示其他事情比您更早出错想法。 (如果此处有更多信息而您仍在苦苦挣扎,请务必将额外的错误信息编辑到您的问题文本中。)
此外:您应该*不使用 .load()
(2019 年 7 月 8 日发布)。如果您有选择并且可以重新训练,gensim-3.8.0
对 gensim-4.0.1
实现有许多改进。如果由于某种原因您仍然坚持使用较旧的 Gensim,请至少使用最新的 FastText
版本,3.8.x
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。