为 utest 模拟 FastText 模型
Mocking FastText model for utest
我在我的 python 库中使用 fasttext 模型(来自官方 fasttext
库)。对于 运行 我的 u 测试,我在某个时候需要一个模型(fasttext.FastText._FastText
对象),尽可能轻便,以便我可以在我的 repo 中对其进行版本控制。
我尝试创建一个包含 5 行“fake.txt”和几个单词的假文本数据集,并调用了
model = fasttext.train_unsupervised("./fake.txt")
fasttext.util.reduce_model(model, 2)
model.save_model("fake_model.bin")
基本可以,但是型号是16Mb。对于 U 测试资源来说还可以,但你认为我可以低于这个吗?
请注意,在使用 toy-sized 数据或参数时,FastText(以及类似的密集 word-vector 模型)的表现并不有意义。 (它们的所有 useful/predictable/testable 优势都取决于大量不同的数据集以及许多最终向量的微妙排列。)
但是,如果您只需要一个相对无意义的 object/file 正确类型,您的方法应该可行。使 FastText 模型变大而不考虑微小 training-set 的主要参数是 bucket
参数,默认值为 2000000
。它会分配那么多 character-ngram (word-fragment) 个槽位,即使您所有的实际单词都没有那么多 ngram。
在初始模型创建中将 bucket
设置为某个 far-smaller 值,应该也会使您的 plug/stand-in 文件小得多。
我在我的 python 库中使用 fasttext 模型(来自官方 fasttext
库)。对于 运行 我的 u 测试,我在某个时候需要一个模型(fasttext.FastText._FastText
对象),尽可能轻便,以便我可以在我的 repo 中对其进行版本控制。
我尝试创建一个包含 5 行“fake.txt”和几个单词的假文本数据集,并调用了
model = fasttext.train_unsupervised("./fake.txt")
fasttext.util.reduce_model(model, 2)
model.save_model("fake_model.bin")
基本可以,但是型号是16Mb。对于 U 测试资源来说还可以,但你认为我可以低于这个吗?
请注意,在使用 toy-sized 数据或参数时,FastText(以及类似的密集 word-vector 模型)的表现并不有意义。 (它们的所有 useful/predictable/testable 优势都取决于大量不同的数据集以及许多最终向量的微妙排列。)
但是,如果您只需要一个相对无意义的 object/file 正确类型,您的方法应该可行。使 FastText 模型变大而不考虑微小 training-set 的主要参数是 bucket
参数,默认值为 2000000
。它会分配那么多 character-ngram (word-fragment) 个槽位,即使您所有的实际单词都没有那么多 ngram。
在初始模型创建中将 bucket
设置为某个 far-smaller 值,应该也会使您的 plug/stand-in 文件小得多。