我想对一些文字进行分类。所以我必须将它与其他文本进行比较。将文本表示为向量后,如何将它们(非常大的浮点值列表)存储到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)
如果我有文本文章,它是否快速有效?
答案 0 :(得分:1)
您可能会发现pickle
和数据库不能很好地协同工作。
Python的pickle用于将Python对象序列化为一种格式,然后可以通过Python将其读回Python对象。尽管使用pickle
序列化非常容易,但您无法*查询此序列化格式,您无法*将其读入另一种语言的程序中。查看另一个Python模块cPickle,以便更快地pickle
- 。
另一方面,数据库非常适合以可查询和非语言特定的方式保存数据 。但是成本是通常更难将数据输入数据库/从数据库输入数据。这就是为什么有像SQL Alchemy这样的特殊工具,以及关于对象关系映射软件的好处/恐怖的无休止的博客辩论。
Pickle
- 对象,然后将它们发送到MySQL或SQL Server等数据库可能不是一个好主意。但是,请查看shelve,另一个Python模块,用于Python对象的类数据库持久性。
所以,总结一下:
pickle
或shelve
如果您只需要保存数据以供以后Python程序使用cPickle
可能会胜过数据库+对象/关系映射*:至少,不是没有很多努力和/或特殊的库。