为utest模拟FastText模型

问题描述

我正在python库中使用快速文本模型(来自官方fasttext库)。要运行u测试,我有时需要尽可能轻的模型(fasttext.FastText._FastText对象),以便可以在存储库中对其进行版本控制。

我试图创建一个包含5行“ fake.txt”和几个单词并称为的假文本数据集

model = fasttext.train_unsupervised("./fake.txt")
fasttext.util.reduce_model(model,2)
model.save_model("fake_model.bin")

基本上可以运行,但模型为16Mb。进行U检验的资源还可以,但是您认为我可以低于这个水平吗?

解决方法

请注意,当使用玩具大小的数据或参数时,FastText(和类似的密集词向量模型)的性能并不明显。 (它们的所有有用/可预测/可检验的收益取决于庞大而变化的数据集以及许多最终向量的精细排列。)

但是,如果您只需要一个相对无意义的正确类型的对象/文件,则您的方法应该可行。不考虑微小训练集而使FastText模型更大的主要参数是bucket参数,默认值为2000000。即使您所有的实际单词都没有那么多ngram,它也会分配那么多的character-ngram(单词片段)插槽。

在初始模型创建过程中,将bucket设置为较小的值也应使您的插件/站立文件也较小。