我正在做一个需要使用 Genia 语料库的项目。根据文献,Genia 语料库是通过在 Medline/Pubmed 上搜索 3 个 Mesh 术语:“转录因子”、“血细胞”和“人类”而提取的文章制成的。我想从 Pubmed 中提取 Genia 语料库中文章的全文文章(可免费获得)。我尝试了很多方法,但我无法找到以文本或 XML 或 Pdf 格式下载全文的方法。
使用 NCBI 提供的 Entrez 工具:
我试过使用这里提到的方法 - http://www.hpa-bioinformatics.org.uk/bioruby-api/classes/Bio/NCBI/REST/EFetch/Methods.html#M002197
像这样使用 Ruby gem Bio 来获取给定 PubMed ID 的信息 - 生物::NCBI::REST::EFetch.pubmed(15496913)
但是,它不会返回 PMID 的全文。
在内部,它会这样调用 - http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=1372388&retmode=text&rettype=medline
但是,Ruby gem 和上面的调用都没有返回全文。
在进一步的互联网搜索中,我发现 PubMed 的 rettype 和 retmode 的允许值没有获取全文的选项,如此处的表中所述 - http://www.ncbi.nlm.nih.gov/books/NBK25499/table/chapter4.T._valid_values_of__retmode_and/?report=objectonly
我在网上看到的所有例子和其他脚本都只是提取摘要。作者等,他们都没有讨论提取全文。
这是我发现的另一个链接,它使用 Python 包 Bio,但仅访问有关作者的信息 - https://www.biostars.org/p/172296/
如何使用 NCBI 提供的 Entrez utils 下载文本或 XML 或 Pdf 格式的文章全文?或者是否已经有可用的脚本或网络爬虫可供我使用?
您可以使用
biopython
获取 PubMedCentral 上的文章,然后从中获取 PDF。对于在其他地方托管的所有文章,很难找到一个通用的解决方案来获取 PDF。
PubMedCentral 好像不想让你批量下载文章。通过
urllib
的请求被阻止,但相同的 URL 在浏览器中有效。
from Bio import Entrez
Entrez.email = "[email protected]"
#id is a string list with pubmed IDs
#two of have a public PMC article, one does not
handle = Entrez.efetch("pubmed", id="19304878,19088134", retmode="xml")
records = Entrez.parse(handle)
#checks for all records if they have a PMC identifier
#prints the URL for downloading the PDF
for record in records:
if record.get('MedlineCitation'):
if record['MedlineCitation'].get('OtherID'):
for other_id in record['MedlineCitation']['OtherID']:
if other_id.title().startswith('Pmc'):
print('http://www.ncbi.nlm.nih.gov/pmc/articles/%s/pdf/' % (other_id.title().upper()))
我正在使用 ruby 解决完全相同的问题。到目前为止,我通过使用 ruby 执行以下操作取得了一定的成功:
这绝不是直截了当的,但还算不错。有一个 gem 声称可以做同样的事情 (https://github.com/billgreenwald/Pubmed-Batch-Download)。我打算尽快测试一下。
如果您想通过 PubMed ID 或 PMC
XML
或 JSON
,那么您想使用 “BioC API” 访问 PubMed Central (PMC) Open Access 文章。
(见https://www.ncbi.nlm.nih.gov/research/bionlp/APIs/BioC-PMC/)
这里有一个代码示例:
https://www.ncbi.nlm.nih.gov/research/bionlp/RESTful/pmcoa.cgi/BioC_xml/19088134/ascii
最后你是怎么解决的?我有一个类似的问题;我想下载 1000 篇开放获取论文、全文(或仅摘要和结论),查询“肿瘤学”和“癌症”,但到目前为止我尝试的一切都失败了。