医学和科学论文的ETL过程
paperetl的Python项目详细描述
paperetl:医学和科学论文的ETL过程
paperetl是一个处理医学和科学论文的ETL库。它支持以下来源:
- CORD-19
- PDF文章
paperetl支持以下数据库来存储文章:
- SQLite公司
- 弹性搜索
- JSON文件
- YAML文件
安装
最简单的安装方法是通过pip和PyPI
pip install paperetl
您也可以直接从GitHub安装paperetl。建议使用Python虚拟环境。在
^{pr2}$支持Python3.6+
其他依赖项
研究设计检测使用scispacy,可通过以下方式安装:
pip install https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.2.5/en_core_sci_md-0.2.5.tar.gz
PDF解析依赖于一个现有的GROBID实例来启动和运行。假设这是在ETL服务器上本地运行的。这不是 对CORD-19数据集是必需的。在
示例
将CORD-19加载到SQLite
下面的示例演示如何使用paperetl将CORD-19数据集加载到SQLite数据库中。在
在Allen Institute for AI CORD-19 Release Page上下载最新的数据集。转到包含该文件的目录并运行以下命令。在
cd <download_path>
tar -xvzf cord-19_$DATE.tar.gz
其中$DATE是下载文件中的yyyy-mm-dd格式的日期字符串。完成后,应该有一个名为元数据.csv以及包含所有json文章的子目录。在
建立数据库:
# Download pre-trained study design/attribute models
# https://www.kaggle.com/davidmezzetti/cord19-study-design/#attribute
# https://www.kaggle.com/davidmezzetti/cord19-study-design/#design
# Default location: ~/.cord19/models/attribute, ~/.cord19/models/design
# Download entry-dates.csv and place in <download path>
# https://www.kaggle.com/davidmezzetti/cord-19-article-entry-dates/output
# Execute the ETL process to load articles into SQLite
python -m paperetl.cord19 <download_path>
一旦完成,将有一个文章.sqlite文件格式为~/.cord19/型号
请参阅CORD-19 ETL笔记本,以获取paperetl实际应用的全面示例。在
将PDF文章加载到SQLite
下面的示例演示如何使用paperetl将一组医学/科学pdf文章加载到SQLite数据库中。在
在本地目录中下载所需的医学/科学文章。对于本例,假设文章位于名为/data/scipaper/的目录中
建立数据库:
# Download pre-trained study design/attribute models
# https://www.kaggle.com/davidmezzetti/cord19-study-design/#attribute
# https://www.kaggle.com/davidmezzetti/cord19-study-design/#design
# Default location: ~/.paperai/models/attribute, ~/.paperai/models/design
# Load PDF articles into SQLite
python -m paperetl.file /data/scipaper ~/.paperai/models ~/.paperai/models
一旦完成,将有一个文章.sqlite在~/.paperai/models中归档
加载到Elasticsearch
以上两个示例还支持在Elasticsearch中存储数据,但有以下更改。这些示例假设Elasticsearch在本地运行,根据需要将URL更改为远程服务器。在
线缆-19:
python -m paperetl.cord19 <download_path> http://localhost:9200
PDF文章:
python -m paperetl.file /scipaper/input http://localhost:9200 ~/.paperai/models
一旦完成,elasticsearch中将有一个文章索引,其中存储元数据和全文。在
将PDF文章转换为JSON/YAML
paperetl还可以用于将PDF文章转换为JSON或YAML文件。如果要将数据输入另一个系统或手动检查/调试单个文件,则此功能非常有用。在
JSON:
python -m paperetl.file /data/scipaper json:///data/scipaper ~/.paperai/models
山药:
python -m paperetl.file /data/scipaper yaml:///data/scipaper ~/.paperai/models
转换后的文件将存储在/data/scipaper中
- 项目
标签: