Ezsearch 是一个使用python
编写的开源社科类文献检索项目。它将每篇社科文献的标题、关键词、摘要等信息转化为文本向量,可以允许用更具体的描述来对文献进行语义检索。
简单来说,就是提供一段思路描述(例如:“中国式现代化的一大阻碍是基层治理体系还不够完善”),就能检索到与该描述最相关的文献。
在社科文献中,语义检索可以发挥更大的作用,因为:
- 社科文献的描述往往比较抽象,用词有时不够精确,而传统检索使用的关键词又往往过于宽泛,难以准确描述文献的主题。
- 有时,社会科学家可能有一些突发的灵感,但由于学术知识脉络过于零散,苦于不知道如何寻找有关研究。
目前市面上的主流社科文献检索工具(例如知网)使用的还是字词匹配方式进行文献检索。但是,基于语义的检索可以提供更精确的检索结果,并且可以帮助人们更好地查找相关文献。
网页版本已上传到posit
,可以在线使用: https://plumber.shinyapps.io/ezsearch/
Step1: 请在utils中建立一个名为api_keys.py
文件,在其中放入你OpenAI
的api_key和api_base,例如:
api_key = "xx-xxxxxxxxxxxxxxxxxxxxxxxx",
api_base= "https://api.xxxxxx.xxx/v1",
Step2:安装shiny for python(具体可参见官方文档)
pip install --upgrade pip wheel
pip install shiny
Step3:运行项目
通过shiny运行app.py
即可。如果使用的是VScode中,可以安装Shiny for Python
扩展,之后点击app.py
右上方的运行按钮。
Ezsearch 的目标是开发一个开源的社科类文献检索项目,它可以:
- 自动化爬取最新的学术文献(题目、摘要、关键词),并将其转化为词向量,存储在向量数据库当中。
- 接收用户的思路描述,并将其转化为文本向量,与向量数据库的文献向量进行相似度计算,返回最相关的文献。
- 支持英文检索功能。
Ezsearch 的架构如上图所示。
- 资料收集:负责自动化/手动地爬取学术文献,并将其保存到文献资料库当中。
- 向量数据库:使用
chromadb
:- 存储已爬取的学术文献的文本
- 支持基于文本描述的检索
datasets
: 存储文献原始资料chromadb
: 向量数据库utils/ezsearch_add.py
: 向向量数据库添加新文献app.py
: 项目主程序,一个基于shiny for python的主程序
目前包含的期刊内容:
- 向向量数据库追加新的文献
- 优化项目的检索功能
- 增加英文检索功能