【问题标题】:load embeddings trained with FastText (two files are generated)加载使用 FastText 训练的嵌入(生成两个文件)
【发布时间】:2021-09-01 20:12:59
【问题描述】:

我已从源集合构建嵌入。生成了两个带有扩展名的文件:embeddings.bin 和 embeddings.bin.wv.vectors_ngrams.npy

当我在另一台机器上执行嵌入时,我无法加载。于是出现下一条错误信息:

AttributeError: 'FastText' 对象没有属性 'vocabulary'

我使用下一个代码来加载它们:

word_vectors = FastText.load("embeddings.bin", mmap='r')

我用下面的代码创建了它们: 从 gensim.models 导入 FastText model2 = FastText(vector_size=4, window=3, min_count=1, sentence=common_texts, epochs=10) model2.save(embeddings.bin)

我在两台机器上都有相同版本的 gensim (3.8.0),但它们是在 Linux 中构建的,我想在 Windows 中使用它们。

word_vectors = FastText.load("embeddings.bin", mmap='r')

【问题讨论】:

标签: load fasttext


【解决方案1】:

请注意,在.save() 之后,可能有许多文件都以您指定的 (embeddings.bin) 文件名前缀开头 - 并且所有这些文件都必须放在一起,模型才能使用 .load()-able。所以首先,检查一下。

如果所有文件都进行了迁移,从 Linux 迁移到 Windows 应该没有问题。但是,可能具有多个内部. 字符的长文件名会导致您的 Windows 文件系统出现问题,因此请务必在移动它们之后验证它们是否具有相同的全名。 (另外,也许,确保它们都以相同的长度/校验和通过,以防可能发生任何静默损坏/截断。)

最后,如果这些没有帮助,请查看 .save().load() 以了解您已经显示的任何其他错误/回溯,这可能比您想象的更早暗示其他事情出错。 (如果这里有更多信息并且您仍在苦苦挣扎,请务必将额外的错误信息编辑到您的问题文本中。)

另外:您可能*使用gensim-3.8.0(2019-07-08 发布)。如果你有选择并且可以重新训练,gensim-4.0.1FastText 的实现有很多改进。如果由于某种原因您仍然无法使用较旧的 Gensim,请至少使用最新的 3.8.x 版本,gensim-3.8.3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 2019-11-23
    相关资源
    最近更新 更多