- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题需要更多focused .它目前不接受答案。
想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .
11 个月前关闭。
Improve this question
我有巨大的文本数据集(500.000+ 文档),我想为文档中的所有句子或段落存储嵌入。嵌入是一个包含 768 个条目的 numpy 数组。
我知道可以轻松地将 numpy 数组写入磁盘,但我还需要为这些嵌入存储附加信息,即它们代表哪个句子/段落以及该句子出现在哪个文档中。
我考虑将所有这些信息存储在(PostgreSQL)数据库中,但是我担心搜索向量/嵌入可能会很慢。该应用程序是相似性搜索,因此可以找到与查询最相似的向量。
存储这些向量及其相应信息的最佳方法是什么?在这种情况下(document_ID、sentence_as_string、sentence_embedding)存储 python 元组是否有效? postgres 数据库可以完成这项工作吗?
我还考虑过将所有嵌入存储为 .npy 文件中的 numpy 矩阵并仅存储
嵌入数据库的行号。这意味着将所有嵌入加载到内存中,但我觉得这可能是性能最好的。是“乱”吗?是否有关于存储 numpy 数组和附加信息的最佳实践?
编辑(附加信息):
我有几个数据集,比如 Enron Corpus ,我想将其拆分为句子或段落。我们称它们为单位。对于每个单位,我想计算一个 sentence embedding .这些向量有 768 维。因为我想搜索最相似的向量,所以我需要计算所有向量之间的余弦相似度。我还想计算所有向量和搜索查询嵌入之间的余弦相似度,这使得所有向量之间的比较成为必要。
现在我的问题是如何有效地存储这些信息。该应用程序似乎适合经典的关系数据库方案。一个文档由几个单元组成,每个单元有一个文本域。我想还可以将 768 维向量作为条目存储在数据库中,因此一个单元也可以存储其嵌入。但是,我担心在数据库中计算余弦相似度可能会比将所有嵌入都存储在内存中非常慢。但是当我将所有嵌入存储为一个 numpy 数组并将它们加载到内存中时,我丢失了关于哪个单元产生哪个嵌入的信息。所以我的问题是,如何最好地存储如此大量的 768 维向量及其相应的信息。
计算嵌入是昂贵的。我只想做一次。所以工作流程是:
最佳答案
[对于 Python] 在运行时将所有嵌入存储在内存中并不是一个好主意。相反,在计算嵌入后,将它们保存到文件中,每当您想搜索“最相似的短语”时,一次遍历文件一行,计算余弦相似度分数,并跟踪最大分数以及与该嵌入对应的句子(您可以将文件构建为 json)。以这种方式这样做应该允许程序能够搜索所有嵌入,而无需将每个嵌入都加载到内存中。
关于python - 什么是存储 NLP 嵌入的好方法(nparrays 加信息),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59027867/
我正在初始化一个 numpy 数组,然后在任意位置插入循环值;出于某种原因,使用双括号进行索引似乎比使用逗号进行索引慢两倍。 编辑:根据 Mike 的回答,我想了解如何将多维索引作为单个操作来实现,以
我有两个nparrays A 维度 (60000,784) 和 B 维度 (60000, 1) 它们都存储整数。 我想创建一个包含 A 行的 nparray,这样 B 的相应行要么是某个数字 X 要么
将两个 numpy 数组相乘的有效方法是什么?例如,给定 A = [1, 2, 3, 4] B = [2, 3, 5, 7] 我想计算A和B的点积,即 A.B/|A||B| = (1*2 + 2*
我现在正在做一个项目,有时我要处理一个 n 维数组(165L、653L、1024L、1L)。 (大约 100MB 的数据)。 出于 JSON 兼容性原因,我需要将其转换为常规列表。所以我使用了常规函数
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 11 个月前关闭。 Improve this que
This question already has answers here: How does this one-hot vector conversion work? (2个答案) 3年前关闭。
np.ndarray 在腌制时会增加转储函数中的引用计数器,但引用计数永远不会减少。Python 3.6.4 python Ubuntu 16.04.5 LTSnumpy 1.16.0 我已经尝试使用
我正在尝试使用 DBSCAN(scikit 学习实现)和位置数据进行聚类。我的数据是 np 数组格式,但要将 DBSCAN 与 Haversine 公式一起使用,我需要创建一个距离矩阵。当我尝试执行此
我有一行 python 代码,我试图从一个解析正在读取的文件中的一行的函数中解密。我已经用评论注释了我理解的行 #split a line that is read from the file by
我是一名优秀的程序员,十分优秀!