https://github.com/bitcs-information-retrieval-2021-2022/project2-yyyttz

project2-yyyttz created by GitHub Classroom

https://github.com/bitcs-information-retrieval-2021-2022/project2-yyyttz

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (3.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

project2-yyyttz created by GitHub Classroom

Basic Info
  • Host: GitHub
  • Owner: BITCS-Information-Retrieval-2021-2022
  • Language: CSS
  • Default Branch: main
  • Size: 27.2 MB
Statistics
  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 4 years ago · Last pushed over 4 years ago
Metadata Files
Readme

README.md

team12-Author retrieval engine

项目说明

Project2: 学者检索引擎

通过姓名、领域、机构、论文来对学者进行检索,并展示学者之间的作者关系图,节点之间的距离反映学者之间的亲近度。

推荐爬取的站点

  • AMiner: https://www.aminer.cn/
  • Semantic Scholar:https://www.semanticscholar.org/

要求

  • AMiner必选,爬取作者信息,作者之间共同著作、所属机构等信息,以Bengio为例
  • Semantic Scholar必选
  • 爬到的数据必须存储到MongoDB中,字段必须定义清晰
  • 当爬取到重名作者时,需要做到重名区分和同人合并
    • 可以利用机构、共同著作等信息

检索模块

要求

  • 从MongoDB中读取数据实现综合检索,要求无论是输入作者姓名、作者机构、领域、论文名称,都能得到相应的检索结果,如下例所示:

image-20211021105934462 image-20211021110021291

  • 可以自己实现搜索算法,也可以使用已有的搜索引擎工具,比如Elasticsearchhttps://www.elastic.co
  • 要求展示模块提供作者网络信息,可以根据数据库中爬取到的信息,也可以自行分析论文、引文等
  • 利用已有数据对学者进行额外分析是可选加分项,例如师门关系、搜索过程中的学者对齐

展示模块

要求

  • 设计并实现一个学者搜索引擎网站,包括三个页面:

    • 首页/搜索页
    • 检索结果列表页
    • 作者Profile页面,可参考AMiner:
    • 必须包括:
      • 作者个人信息:姓名、照片、职称、所属机构
      • 作者发表论文
      • 作者关系网络,要求以可视化形式展现

    image-20211021192957783

  • 推荐使用Python Django(https://www.djangoproject.com)库来实现

提交内容

  • 一个MongoDB数据库
  • 在仓库README中给出爬取数据的统计信息,例如每个数据源爬取的学者数、字段覆盖率等
  • 验收时,展示学者检索引擎的检索结果

项目配置

服务器信息

  • 系统:Ubuntu Server 20.04 LTS 64位
  • ip:121.5.169.182

文件结构

1. 用户个人空间

每个账户创建后,均会在/home路径下创建个人存储空间,路径为/home/username

ps:请将个人数据存放在该路径下

2. 服务器存储结构

| 目录 | 大小 | 文件系统 | 硬盘 | | -------------- | ---- | --------- | ---- | | /dev | 1.9G | udev | SSD | | / | 50G | /dev/vda2 | HDD | | /run | 394M | temfs | SSD | | /dev/shm | 2.0G | temfs | SSD | | /run/lock | 5.0M | temfs | SSD | | /sys/fs/cgroup | 2.0G | temfs | SSD | | /run/user/126 | 394M | temfs | SSD | | /run/user/1001 | 394M | temfs | SSD |

ps:请将大型数据存储在/home路径下

项目环境

ES

  • version: v7.15.1
  • ip: 121.5.169.182
  • port: 9200
  • 配置文件位置: /home/cty/resources/elasticsearch-7.15.1/config/elasticsearch.yml

MongoDB

  • version: v3.6.8
  • ip: 121.5.169.182
  • port: 28887
  • 数据文件位置: /var/lib/mongodb
  • 日志文件位置:/var/log/mongodb/mongodb.log
  • 配置文件位置:/etc/mongodb.conf

Python环境

  • version: v3.8.10

常用命令

1. MongoDB

```shell

登入root用户

su

进入mongodb的tmux环境

tmux a -t mongodb

启动MongoDB服务

service mongodb start 或者 /usr/bin/mongod -f /etc/mongodb.conf &

停止MongoDB服务

service mongodb stop

重启MongoDB服务

service mongodb restart

进入MongoDB

mongo

查看所有database

show dbs

查看所有collections

show collections

创建database

use db_name

创建集合

db.createCollection("collection_name")

删除集合

db.collection_name.drop() ```

2. ES

```shell

登入cty用户

su cty

进入ES的tmux环境

tmux a -t es

启动

/home/cty/resources/elasticsearch-7.15.1/bin/elasticsearch -d ```

3. 后端

```shell

进入IR的tmux环境

tmux a -t ir

启动服务

python /home/cty/IR/back/main.py ```

4. 前端

```shell

进入IR的tmux环境

tmux a -t ir

启动服务

python /home/cty/IR/front/app.py ```

代码说明

0. 数据处理

数据处理:/home/cty/IR/data_process/process.py

从aresearcher和apaper表中读取并解析MongoDB中原始数据,获得领域和其对应作者的关系,存入MongoDB的tagauthor中,同理获得作者id和其发表过的论文id存为repaper,获得作者之间共同发表论文数存为authorrelation,获得同名作者的id列表存为authorname。

重名消歧:/home/cty/IR/data_process/dname_split.py

根据authorname和authorrelation,以共同发表论文最高为标准,判断论文中作者对应的id

相似度改进:/home/cty/IR/data_process/similarity.py

1. 创建ES索引

创建索引:/home/cty/IR/back/make_index.py

删除索引:/home/cty/IR/back/delete_index.py

2. 后端部分

检索:/home/cty/IR/back/search.py

接口:/home/cty/IR/back/main.py

ps. 接口基于flask框架

3. 前端部分

代码:/home/cty/IR/front

环境:

  • Flask 2.0.2
  • Python 3.8.10

4. 数据统计

代码:/home/cty/IR/statistics/dataCount.py

接口说明

query

  • 说明
    • 主查询,根据query在author中检索并返回相应的文档
  • 参数
    • query:查询内容
    • from:返回分页结果的第几页
    • size:每一页的文档数

find

  • 说明
    • 引用网络查询,根据query作者的id检索个人信息和其论文信息
    • 参数
  • id:query作者的id
  • from:返回分页结果的第几页
  • size:每一页的文档数

relation

  • 说明
    • 作者网络关系图,根据query作者的id在re_paper中检索并处理成网络坐标图的形式
  • 参数
    • id:query作者的id
    • from:返回分页结果的第几页
    • size:每一页的文档数量

提交说明

请在project3-team8中创建个人分支,将所有修改提交到个人分支中,确定无误后再合并至主分支,以避免污染主分支,并且方便出现问题后进行回滚操作。

界面展示

  • 首页搜索页面

HomePage

  • 搜索结果页面

normalResult

  • 作者详情页

authorDetail

Owner

  • Name: BITCS-Information-Retrieval-2021-2022
  • Login: BITCS-Information-Retrieval-2021-2022
  • Kind: organization

GitHub Events

Total
Last Year