【发布时间】:2021-01-15 03:02:49
【问题描述】:
我想将向量特征(例如大量文本的词袋或词嵌入向量)存储在数据集中,存储在 SQL 数据库中。 保存和检索这些特征的数据结构和最佳做法是什么?
【问题讨论】:
标签: python database nlp dataset word-embedding
我想将向量特征(例如大量文本的词袋或词嵌入向量)存储在数据集中,存储在 SQL 数据库中。 保存和检索这些特征的数据结构和最佳做法是什么?
【问题讨论】:
标签: python database nlp dataset word-embedding
这取决于许多因素,例如您打算使用的精确 SQL 数据库以及您如何存储此嵌入。 例如,PostgreSQL 允许存储查询和检索 JSON 变量(https://www.postgresqltutorial.com/postgresql-json/); SQLite 等其他选项将允许存储 JSON 或 pickle 对象的字符串表示形式 - 这可以用于存储,但会使查询向量内的元素变得不可能。
【讨论】:
如果可能的话,词向量通常应该存储为 BLOB。如果不是,它们可以存储为 json 数组。由于词向量唯一合理的操作是通过词键查找它们,因此其他细节并不特别重要。
对于词袋你通常需要三列,这就是它在 sqlite 中的样子。
create table bow (
doc_id int,
word text,
count int)
您的文档 ID 来自其他地方。如果需要,可以将(doc_id, word) 设为密钥。
但是,在 SQL 数据库中存储此类功能通常没有帮助。当您访问字数或字向量时,您通常不需要它们的子集,而是一次需要它们,因此 SQL 的关系特性没有帮助。
【讨论】:
在机器学习中有专门用于矢量数据的数据库。这些是列表。
【讨论】: