使用Python解析来自PubMed的XML数据

pubmed是一个在医学、生物领域常常用到的搜索引擎,其搜索结果能够十分方便地以多种格式导出。其中xml文件高度结构化、元信息丰富,十分方便机器阅读。这为相关领域文献的文本分析提供了很大的便利。

pubmed的结果导出功能 pubmed的结果导出功能

python的第三方库BeautifulSoup提供了强大的HTML及XML解析功能,用户接口十分友好。很适合在这里使用。

使用示例

比如说这里我们想要解析出目标文件中所有文章标题、摘要组成的元组列表,以便我们通过摘要计算出所有文章的相似度。

code_pubmed_0

首先引入模块并读取目标文件,观察文件结构可以发现每篇文章即一个<Article>节点。

code_pubmed_1

使用以上所示方法解析就能提取出我们想要的数据集合。

code_pubmed_2

code_pubmed_4

到这里我们已经成功提取了实例数据的信息。

进一步的分析:文章的聚类

我使用这种方法得到了2016年3月第二周的所有兽医学相关研究文献(pubmed检索式:(“veterinary medicine”[MeSH Terms] OR (“veterinary”[All Fields] AND “medicine”[All Fields]) OR “veterinary medicine”[All Fields]) AND (“2016/03/14”[PDAT] : “2016/03/20”[PDAT])) 并所有文章进行了层次化聚类分析,以下为聚类结果:

聚类结果