gpt4 book ai didi

python - 使用 python 将大向量存储到数据库的最佳方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 20:30:58 27 4
gpt4 key购买 nike

我想对一些文本进行分类。所以我必须将它与其他文本进行比较。将文本表示为向量后,如何将它们(非常大的浮点值列表)存储到 SQL 数据库以供以后使用?

我的想法是使用 pickle 模块:

vector=text_to_vector(text)
present=pickle.dumps(big_list)
some_db.save(text_id,present)

#later
present=some_db.get(text_id)
vector=pickle.loads(present)

如果我有几千条文本,它是否快速有效?

最佳答案

您可能会发现 pickle 和数据库不能很好地协同工作。

Python 的 pickle用于将 Python 对象序列化为一种格式,然后 Python 可以将该格式读回 Python 对象。尽管使用 pickle 序列化非常容易,但您不能*查询这种序列化格式,也不能*将它读入另一种语言的程序中。查看cPickle ,另一个 Python 模块,用于更快的 pickle-ing。

另一方面,数据库非常适合以可查询且非特定语言的方式持久保存数据。但代价是通常更难从数据库中获取/放入数据。这就是为什么有像 SQL Alchemy 这样的特殊工具的原因。 ,以及关于对象关系映射软件的优点/缺点的无休止的基于博客的辩论。

Pickle-ing 对象,然后将它们发送到 MySQL 或 SQL Server 等数据库可能不是一个好主意。但是,请查看 shelve ,另一个 Python 模块,用于 Python 对象的类数据库持久化。

所以,总结一下:

  • 如果您只需要保存数据供 Python 程序稍后使用,请使用 pickleshelve
  • 如果您想持久保存数据以供一般使用,请将对象映射到数据库,但要了解这需要更多努力
  • 在性能方面,cPickle 可能会胜过数据库 + 对象/关系映射

*:至少,并非没有大量的努力和/或特殊的图书馆。

关于python - 使用 python 将大向量存储到数据库的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7939858/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com