医学/科学论文的语义搜索和工作流程
paperai 是一个用于医学/科学论文的语义搜索和工作流程应用。
应用范围从语义搜索索引,可以找到医学/科学查询的匹配项,到机器学习驱动的全面报告应用程序。
paperai 和/或 NeuML 在以下文章中被提及:
安装
最简单的安装方式是通过 pip 和 PyPI
pip install paperai
支持 Python 3.8 及以上版本。推荐使用 Python 虚拟环境。
paperai 也可以直接从 GitHub 安装以访问最新的未发布功能。
pip install git+https://github.com/neuml/paperai
请参阅此链接以帮助解决特定环境的安装问题。
Docker
运行以下步骤构建一个包含 paperai 和所有依赖项的 Docker 镜像。
wget https://raw.githubusercontent.com/neuml/paperai/master/docker/Dockerfile
docker build -t paperai .
docker run --name paperai --rm -it paperai
可以添加 paperetl 以拥有一个索引和查询内容的单一镜像。按照说明构建一个 paperetl docker 镜像,然后运行以下命令。
docker build -t paperai --build-arg BASE_IMAGE=paperetl --build-arg START=/scripts/start.sh .
docker run --name paperai --rm -it paperai
示例
以下笔记本和应用程序展示了 paperai 所提供的功能。
笔记本
笔记本 | 描述 | |
---|---|---|
介绍 paperai | paperai 功能概述 |
应用程序
应用程序 | 描述 |
---|---|
搜索 | 搜索 paperai 索引。设置查询参数、执行搜索并显示结果。 |
构建模型
paperai 索引之前由 paperetl 构建的数据库。以下显示了如何创建一个新的 paperai 索引。
-
(可选)创建一个 index.yml 文件
如果未指定,paperai 使用默认的 txtai 嵌入配置。或者,可以指定一个 index.yml 文件,它接受与 txtai 嵌入实例相同的所有选项。有关可能的选项,请参见 txtai 文档。下面显示了一个简单示例。
path: sentence-transformers/all-MiniLM-L6-v2 content: True
-
构建嵌入索引
python -m paperai.index <输入数据的路径> <可选的索引配置>
paperai.index 过程需要一个输入数据路径,并且可以选择性地接受索引配置。这个配置可以是一个向量模型路径或者一个 index.yml 配置文件。
运行查询
最快的运行查询方式是启动 paperai shell
paperai <模型目录的路径>
将出现提示。查询可以直接输入控制台。
构建报告文件
报告支持以多种格式生成输出。一个示例报告调用:
python -m paperai.report report.yml 50 md <模型目录的路径>
支持以下报告格式:
- Markdown (默认) - 渲染一个 Markdown 报告。从文章中提取列和答案,结果存储在一个 Markdown 文件中。
- CSV - 渲染一个 CSV 报告。从文章中提取列和答案,结果存储在一个 CSV 文件中。
- 注释 - 从文章中提取列和答案,并在原始 PDF 文件上进行注释。需要传递一个包含原始 PDF 文件的路径。
在上面的示例中,将创建一个名为 report.md 的文件。示例报告配置文件可在此处找到。
技术概览
paperai 是 txtai 嵌入索引和一个 SQLite 数据库与文章的结合体。每篇文章被解析成句子,并连同文章元数据一起存储在 SQLite 中。在整个语料库上构建嵌入。
存在多个入口点与模型进行交互。
- paperai.report - 为一系列查询构建报告。对于每个查询,显示评分最高的文章以及这些文章中的匹配项。还有一个亮点部分,显示最相关的结果。
- paperai.query - 从终端运行一个单一查询
- paperai.shell - 允许从终端运行多个查询