python - 保存和加载由 gensim 相似性模型制作的多个分片
问题描述
我的数据有超过 100 万行,在训练 gensim 相似性模型时,它正在制作多个 .sav 文件(model.sav、model.sav.0、model.sav.1 等等)。问题是在加载时,它只加载一个子部分,而不是所有子部分,因此在预测中表现得很糟糕。根据 gensim 文档,参数/选项不起作用。
根据 gensim 文档 - https://radimrehurek.com/gensim/similarities/docsim.html 保存为文件句柄并提供以下参数应该有效 - :
- model.save(fname_or_handle,分别=无)
- model.load(文件路径,mmap = 'r')
甚至试图——
- 腌制 .sav 文件(这仅腌制第一个分片,即 model.sav)
- 将所有子部分压缩为 .gz 文件(这仅压缩一个分片,而不是所有子部分)并且还会产生某种泡菜错误。
tf_idf = gensim.models.TfidfModel(corpus)
sims = gensim.similarities.Similarity('./models/model.sav',tf_idf[corpus],
num_features=len(dictionary))
sims.save('./models/model.sav')
sims1 = gensim.similarities.Similarity.load(./models/model.sav)
预期的结果应该给出来自语料库的所有匹配文档,但这仅来自 model.sav(加载时提到的文件)。它甚至不执行其他分片。我检查了每个分片的结果。
问题:如何使用 gensim 模型的所有子文件来预测我的测试文档的相似性,而不是单独遍历每个子文件,然后呈现这些结果的联合。
解决方案
据我了解,“model.sav”是一种访问所有实际相似性分片的目录。
len(sims1) 的输出是什么?在包含 65,536 个条目的语料库上运行上述代码(恰好创建两个分片),我可以保存并加载语料库并检查它是否包含 65,536 个文档。我还可以添加文档并进一步保存/加载。
推荐阅读
- java - Maven,Spring Boot - 包依赖问题,集成测试
- php - 无法将时间戳转换为日期
- python - 打开 .sst 数据库文件
- python - 如何在 Python 中同时处理视频的相等部分
- oozie - oozie 工作流提交 sh 以启动 spark2 作业的问题
- php - My Sql 按数组值查询
- python-3.x - pandas 在合并两个数据帧时创建一个标志
- google-cloud-platform - 在 GCP 上调整持久卷大小 - GKE
- java - 如何使用 JasperReports 导出 CSV
- php - PHPExcel - 读取 2 列数据