文章目录
在 FiftyOne 中新增了对向量搜索引擎和文本相似度查询的本地支持。这样,用户可以通过简单的自然语言查询,在他们的庞大数据集中(通常包含数百万甚至数千万个样本)找到最相关的图像。
这让我们处于一个有趣的境地:使用开源的 FiftyOne 的人现在可以通过自然语言查询轻松搜索数据集,但是在使用我们的文档时仍然需要传统的关键词搜索。
我们有大量的文档,这既有好处也有坏处。作为一个用户,我有时候发现,由于文档数量庞大,要准确找到我需要的信息需要花费很多时间,其实我不愿意浪费这些时间。
本篇文章的所有代码:https://github.com/voxel51/fiftyone-docs-search
01 将文档转换为统一格式
我公司的文档都以 HTML 文档的形式托管在 https://docs.voxel51.com 上。一个自然的起点是使用 Python 的 requests 库下载这些文档,并使用 BeautifulSoup 解析文档。
但是,作为一名开发人员(也是我们文档的作者之一),我觉得我可以做得更好。我已经在本地计算机上有一个克隆的 GitHub 存储库,其中包含用于生成 HTML 文档的所有原始文件。我们的一些文档使用 Sphinx ReStructured Text(RST)编写,其他文档,如教程,则是从 Jupyter 笔记本转换为 HTML 格式。
我错误地认为,我越接近 RST 和 Jupyter 文件的原始文本,事情就会变得更简单。
RST
在 RST 文档中,sections 通过仅包含 =、- 或_字符串的行进行划分。例如,这是 FiftyOne 用户指南中的一个文档