当前位置: 首页 > 工具软件 > Txtai > 使用案例 >

txtai 教程系列 3----从数据源构建嵌入索引

濮阳俊明
2023-12-01

在第 1 部分中,我们概述了 txtai、支持技术以及如何使用它进行相似性搜索的示例。第 2 部分介绍了具有更大数据集的嵌入索引。

对于现实世界的大规模用例,数据通常存储在数据库中(Elasticsearch、SQL、MongoDB、文件等)。在这里,我们将展示如何从 SQLite 读取数据,构建一个由词嵌入支持的嵌入索引,以及如何对生成的嵌入索引运行查询。

此示例涵盖了paperai库中的功能。有关可与下面讨论的数据集一起使用的完整解决方案,请参阅该库。

安装依赖
安装txtai和所有依赖项。由于本文是构建词向量,所以我们需要安装 similarity extras 包。
pip install txtai[similarity]
下载数据
这个例子将处理CORD-19数据集的一个子集。COVID-19 开放研究数据集 (CORD-19) 是一个免费的学术文章资源,由领先的研究小组联盟汇总,涵盖 COVID-19 和冠状病毒病毒家族。

下面下载的是一个从Kaggle notebook生成的 SQLite 数据库。有关此数据格式的更多信息,请参阅CORD-19 分析笔记本。
wget https://github.com/neuml/txtai/releases/download/v1.1.0/tests.gz
gunzip tests.gz
mv tests articles.sqlite
构建词向量
此示例将构建一个由词嵌入支持的搜索系统。虽然不如 transformer 嵌入那么强大,但它们通常为基于嵌入的搜索系统提供性能与功能的良好折衷。

对于本文,我们将构建自己的自定义嵌入以用于演示目的。许多预训练的词嵌入模型可用:

来自 pymagnitude 的通用语言模型
CORD-19 快速文本
import os

 类似资料: