Jina 实例秀 —— 维基百科句子搜索

2594ff4c05f4a945c9165aa430b7085d.png

本次教程将展示如何构建一个通过语义对文本进行搜索的应用程序。

应用程序在Jina的神经搜索框架支持下使用了最先进的Transformer语言模型来对维基百科中的文本句子进行索引和搜索。当你在应用程序中输入你的搜索内容后,程序会自动输出最相关的句子。

首先来看看程序的整体框架,从下面的Flow(Jina中的基本元素)框架图看出,这个应用程序的流程非常简单:

205d86bc79076cb43097ac5272d791e4.png

· 应用程序接收到输入文档后将其输入到transformer中,transformer计算基于文档文本的嵌入向量。

· 将文档传送给indexer:在索引阶段,indexer会对所有文档进行存储操作;而在查询阶段,indexer则会比较查询文档与所有存储文档的嵌入向量,并最终返回储存文档中最匹配的结果。

在了解了运行原理后,我们就可以开始着手构建啦!

Let's begin🏃‍♀️

 下载代码库并安装Jina 


下载代码库(包括代码与数据集)并进入到相应文件夹:

git clone https://github.com/jina-ai/examples
cd examples/wikipedia-sentences

安装Jina和环境配置:

pip install -r requirements.txt

💡 Jina安装小提示:

  • 推荐在一个新的python虚拟环境中安装Jina

 下载数据集(optional) 


我们默认使用一个小型数据集用于索引,若想使用完整的数据集: 

Step1:对Kaggle进行设置(具体方式可在“阅读原文”中查找) 

Step2:运行以下脚本下载数据

sh get_data.sh

 建立数据索引 


运行下面代码对数据集建立索引:

python app.py -t index

若想要对下载好的完整数据建立索引,则运行下面的代码

python app.py -t index -d full -n $num_docs

💡 数据索引小提示:

  • 对于数量较大的索引,SimpleIndexer处理

    速度非常慢。建议使用更高级的索引器,如FaissIndexer来建立大量数据索引

 输入数据进行查询 


当上述的索引建立完成后,一个搜索提示将自动出现在终端窗口。输入你的查询内容,马上就能看到相对应的结果啦!

please type a sentence: Who is Andrea Kremer
         
Ta-Dah🔮, here are what we found for: Who is Andrea Kremer
>  0(0.36).Andrea Kremer (born February 25, 1959 in Philadelphia, Pennsylvania) is a multi-Emmy Award Winning American television sports journalist.

 ⭐️Jina实例秀系列教程将不断更新 ⭐️

 ⭐️敬请持续关注 ⭐️ 

点击下方 “阅读原文”,获得更详细的Jina 相关教程


👇 往期系列教程

44cc0172039eb86a9a09707654f0de47.png

Jina 轻松学 —— 用 Jina + Streamlit 极速搭建搜索应用


fb1ee9bbec4cb3f0e9c6bc669f69f222.png

Jina 实例秀 —— 智能聊天机器人


c7d5b586cdfb64f80922d542136b47b9.png

Jina 轻松学 —— Windows中安装Jina

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值