微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

加载使用 FastText 训练的嵌入生成两个文件

如何解决加载使用 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.0gensim-4.0.1 实现有许多改进。如果由于某种原因您仍然坚持使用较旧的 Gensim,请至少使用最新的 FastText 版本,3.8.x

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。