소개
학술 연구에서 참고문헌을 관리하는 것은 중요하지만 시간이 오래 걸리는 작업입니다. 특히 논문을 작성할 때는 서로 다른 데이터베이스에서 필요한 인용 형식을 가져와야 하는 경우가 많습니다. 이 문제를 해결하기 위해 get-bibtex라는 Python 라이브러리를 개발했습니다. 이 라이브러리를 사용하면 여러 학술 데이터베이스에서 BibTeX 형식의 참고문헌을 빠르게 가져올 수 있습니다.
왜 get-bibtex인가?
1. 여러 데이터 소스 지원
- CrossRef(가장 포괄적인 DOI 데이터베이스)
- DBLP(컴퓨터 과학 문헌 데이터베이스)
- Google Scholar(API 키 필요)
2. 스마트한 워크플로
3. 간단하고 쉬운 사용법
4. 파일 일괄 처리
# 从文件读取并保存
workflow.process_file(
input_path="papers.txt",
output_path="references.bib"
)
주요 기능
스마트한 폴백 메커니즘
- 데이터 소스 하나가 실패하면 자동으로 다른 데이터 소스를 시도합니다.
- 참고문헌 정보를 최대한 빠짐없이 가져옵니다.
진행 상황 추적
- tqdm을 사용해 처리 진행 상황을 표시합니다.
- 일괄 처리 상태를 한눈에 파악할 수 있습니다.
오류 처리
- 상세한 로그 기록
- API 제한과 네트워크 오류를 안정적으로 처리합니다.
형식화된 출력
- BibTeX를 자동으로 정리하고 서식을 지정합니다.
- 출력 형식이 일관되도록 합니다.
사용 사례
논문 작성
논문을 작성할 때 DOI나 제목을 사용해 바로 참고문헌을 가져올 수 있습니다:
문헌 리뷰
많은 참고문헌을 한 번에 처리할 수 있습니다:
어텐션 메커니즘 관련 논문의 참고문헌 가져오기
다음 논문들의 참고문헌이 필요하다고 가정해 보겠습니다:
- FedMSA: 페더레이티드 학습을 위한 모델 선택 및 적응 시스템
- Attention Is All You Need: Transformer의 개척적 연구
- Non-Local Neural Networks: 비지역 신경망
- ECA-Net: 효율적인 채널 어텐션 메커니즘
- CBAM: 합성곱 블록 어텐션 모듈
CrossRef로 가져오기 (DOI 사용)
출력 예시:
DBLP로 가져오기 (제목 사용)
from apiModels import DBLPBibTeX
fetcher = DBLPBibTeX()
# CBAM
bibtex = fetcher.get_bibtex("CBAM: Convolutional Block Attention Module")
print(bibtex)
출력 예시:
워크플로로 여러 참고문헌 가져오기
파일 일괄 처리
여러 참고문헌이 들어 있는 파일을 처리하는 워크플로를 만들 수 있습니다. 먼저 워크플로를 만들고 데이터 소스를 추가합니다:
입력 예시: papers.txt
출력 예시: references.bib
설치 방법
pip으로 설치:
pip install get-bibtex
Poetry로 설치:
poetry add get-bibtex
실무 팁
이메일로 등록
Pythonfetcher = CrossRefBibTeX(email="your.email@example.com")이렇게 하면 API 접근 우선순위를 더 높일 수 있습니다.
워크플로를 적절히 활용
Pythonworkflow = WorkflowBuilder() workflow.add_fetcher(CrossRefBibTeX()) # 主要源 workflow.add_fetcher(DBLPBibTeX()) # 备用源신뢰도가 높은 순서대로 데이터 소스를 추가하세요.
일괄 처리할 때 지연 시간 추가 많은 참고문헌을 처리할 때는 API 제한에 걸리지 않도록 내장된 지연 메커니즘을 사용하는 것이 좋습니다.
SerpAPI 키 발급
Google Scholar 기능을 사용하려면 SerpAPI 키가 필요합니다. 키를 받는 방법은 다음과 같습니다:
SerpAPI 계정 등록
- SerpAPI 공식 웹사이트 방문
- 오른쪽 위의 "회원가입" 버튼 클릭
- 가입 정보 입력(이메일, 비밀번호 등)
적합한 플랜 선택
- 무료 플랜: 월 100회 검색
- 유료 플랜: 필요에 따라 서로 다른 요금제 선택
- 테스트와 개인 사용에는 보통 무료 플랜으로 충분합니다.
API 키 받기
- 로그인한 뒤 대시보드로 이동
- "API 키" 섹션에서 키 찾기
- 코드에서 사용할 키 복사
사용 예시
CodeBlock Loading...주의 사항
- API 키를 안전하게 보관하고 공개적으로 공유하지 마세요
- 사용량을 모니터링해 제한을 넘지 않도록 하세요
- 요청 간격을 적절히 설정하세요(최소 1초 권장)
- 프로덕션 환경에서는 환경 변수를 사용해 API 키를 저장하세요 ```python import os
apikey = os.getenv("SERPAPIKEY") fetcher = GoogleScholarBibTeX(apikey=apikey)
사용 팁
- 가능하면 CrossRef와 DBLP를 먼저 사용하세요
- 검색 결과가 없을 때만 Google Scholar를 사용하세요
- 일괄 처리할 때는 API 사용 제한에 주의하세요
python # 推荐的工作流顺序 workflow = WorkflowBuilder() workflow.add_fetcher(CrossRefBibTeX(email="your.email@example.com")) workflow.add_fetcher(DBLPBibTeX()) workflow.add_fetcher(GoogleScholarBibTeX(api_key="your-serpapi-key"))
향후 전망
- 더 많은 데이터 소스 지원
- 참고문헌 형식 변환 기능 추가
- 그래픽 사용자 인터페이스 제공
- 더 많은 사용자 정의 옵션 지원
마무리
get-bibtex는 학술 글쓰기에서 참고문헌 관리를 단순화하는 것을 목표로 합니다. 논문 하나든 문헌 리뷰든, 효율적으로 참고문헌을 가져오고 관리할 수 있습니다. GitHub에서 프로젝트 개발에 참여하고, 제안을하거나 문제를 알려 주세요.
관련 링크
- GitHub 저장소: get-bibtex
- 이슈: 이슈
- PyPI 페이지: get-bibtex