Skip to main content

BibTeX

BibTeX是一种与LaTeX排版常用的文件格式和参考管理系统。它用于组织和存储学术和研究文档的文献信息。

BibTeX文件的扩展名为.bib,由表示各种出版物(如书籍、文章、会议论文、论文等)的纯文本条目组成。每个BibTeX条目都遵循特定的结构,并包含不同的文献详细信息字段,如作者姓名、出版物标题、期刊或书籍标题、出版年份、页码等。

BibTeX文件还可以存储文档的路径,例如可以检索的.pdf文件。

安装(Installation)

首先,您需要安装bibtexparserPyMuPDF

#!pip install bibtexparser pymupdf

示例(Examples)

BibtexLoader有以下参数:

  • file_path:.bib bibtex文件的路径
  • 可选参数max_docs:默认为None,即不限制。使用它来限制检索文档的数量。
  • 可选参数max_content_chars:默认为4000。使用它来限制单个文档中的字符数。
  • 可选参数load_extra_meta:默认为False。默认情况下,仅从bibtex条目中加载最重要的字段:Published(出版年份)、Title(标题)、Authors(作者)、Summary(摘要)、Journal(期刊)、Keywords(关键词)和URL(链接)。如果为True,还将尝试加载entry_id(条目ID)、note(注释)、doi(数字对象标识符)和links(链接)字段。
  • 可选参数file_pattern:默认为r'[^:]+\.pdf'。用于在file条目中查找文件的正则表达式模式。默认模式支持Zotero风格的bibtex样式和裸文件路径。
from langchain.document_loaders import BibtexLoader
# 创建一个虚拟的bibtex文件并下载pdf。
import urllib.request

urllib.request.urlretrieve(
"https://www.fourmilab.ch/etexts/einstein/specrel/specrel.pdf", "einstein1905.pdf"
)

bibtex_text = """
@article{einstein1915,
title={Die Feldgleichungen der Gravitation},
abstract={Die Grundgleichungen der Gravitation, die ich hier entwickeln werde, wurden von mir in einer Abhandlung: ,,Die formale Grundlage der allgemeinen Relativit{\"a}tstheorie`` in den Sitzungsberichten der Preu{\ss}ischen Akademie der Wissenschaften 1915 ver{\"o}ffentlicht.},
author={Einstein, Albert},
journal={Sitzungsberichte der K{\"o}niglich Preu{\ss}ischen Akademie der Wissenschaften},
volume={1915},
number={1},
pages={844--847},
year={1915},
doi={10.1002/andp.19163540702},
link={https://onlinelibrary.wiley.com/doi/abs/10.1002/andp.19163540702},
file={einstein1905.pdf}
}
"""
# 将bibtex_text保存到biblio.bib文件中
with open("./biblio.bib", "w") as file:
file.write(bibtex_text)
docs = BibtexLoader("./biblio.bib").load()
docs[0].metadata
    {'id': 'einstein1915',
'published_year': '1915',
'title': 'Die Feldgleichungen der Gravitation',
'publication': 'Sitzungsberichte der K{"o}niglich Preu{\\ss}ischen Akademie der Wissenschaften',
'authors': 'Einstein, Albert',
'abstract': 'Die Grundgleichungen der Gravitation, die ich hier entwickeln werde, wurden von mir in einer Abhandlung: ,,Die formale Grundlage der allgemeinen Relativit{"a}tstheorie`` in den Sitzungsberichten der Preu{\\ss}ischen Akademie der Wissenschaften 1915 ver{"o}ffentlicht.',
'url': 'https://doi.org/10.1002/andp.19163540702'}
print(docs[0].page_content[:400])  # pdf内容的所有页面
    ON THE ELECTRODYNAMICS OF MOVING
BODIES
By A. EINSTEIN
June 30, 1905
It is known that Maxwell’s electrodynamics—as usually understood at the
present time—when applied to moving bodies, leads to asymmetries which do
not appear to be inherent in the phenomena. Take, for example, the recipro-
cal electrodynamic action of a magnet and a conductor. The observable phe-
nomenon here depends only on the r