Skip to content

plumberDong/Ezsearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ezsearch

1. 能做什么的

Ezsearch 是一个使用python编写的开源社科类文献检索项目。它将每篇社科文献的标题、关键词、摘要等信息转化为文本向量,可以允许用更具体的描述来对文献进行语义检索。

简单来说,就是提供一段思路描述(例如:“中国式现代化的一大阻碍是基层治理体系还不够完善”),就能检索到与该描述最相关的文献。

2. 为什么有这个项目

在社科文献中,语义检索可以发挥更大的作用,因为:

  1. 社科文献的描述往往比较抽象,用词有时不够精确,而传统检索使用的关键词又往往过于宽泛,难以准确描述文献的主题。
  2. 有时,社会科学家可能有一些突发的灵感,但由于学术知识脉络过于零散,苦于不知道如何寻找有关研究。

目前市面上的主流社科文献检索工具(例如知网)使用的还是字词匹配方式进行文献检索。但是,基于语义的检索可以提供更精确的检索结果,并且可以帮助人们更好地查找相关文献。

3. 如何使用

3.1 在线版本

网页版本已上传到posit,可以在线使用: https://plumber.shinyapps.io/ezsearch/

3.2 本地版本

Step1: 请在utils中建立一个名为api_keys.py文件,在其中放入你OpenAIapi_keyapi_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右上方的运行按钮。

4. 项目目标

Ezsearch 的目标是开发一个开源的社科类文献检索项目,它可以:

  1. 自动化爬取最新的学术文献(题目、摘要、关键词),并将其转化为词向量,存储在向量数据库当中。
  2. 接收用户的思路描述,并将其转化为文本向量,与向量数据库的文献向量进行相似度计算,返回最相关的文献。
  3. 支持英文检索功能。

5.项目的架构

基本架构

Ezsearch 的架构如上图所示。

  1. 资料收集:负责自动化/手动地爬取学术文献,并将其保存到文献资料库当中。
  2. 向量数据库:使用chromadb :
    1. 存储已爬取的学术文献的文本
    2. 支持基于文本描述的检索

6.核心文档说明

  • datasets: 存储文献原始资料
  • chromadb: 向量数据库
  • utils/ezsearch_add.py: 向向量数据库添加新文献
  • app.py: 项目主程序,一个基于shiny for python的主程序

7.现有期刊资料

目前包含的期刊内容:

8.如何贡献

  • 向向量数据库追加新的文献
  • 优化项目的检索功能
  • 增加英文检索功能

About

基于文本向量进行文献检索的工具(Tools for literature search based on text vectors)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published