🧬 연구 허브

Skill

grant-parser 코드 참조

사사에서 연구과제번호와 기관을 뽑는다. NRF·NIH·NSF·IITP 인식.

논문의 사사(Funding/Acknowledgement) 텍스트에서 과제 번호를 추출하고, 기관명을 정규화합니다. 한국(NRF, MSIT, IITP), 미국(NIH, NSF), 일본(JSPS), 중국(NSFC), 유럽(ERC) 등 주요 기관을 지원합니다.

사용법

import {
  extractGrantNumbers,
  normalizeAgency,
  normalizeAgencies,
  parseFundingInfo,
  inferAgencyFromGrant,
  summarizeFunding,
  getAgencyColor,
  AGENCY_COLORS
} from "@/lib/grant-parser"

// 1. 텍스트에서 과제 번호 추출
const grants = extractGrantNumbers(
  "This work was supported by NRF-2023R1A2C1005678 and NIH R01 GM987654"
)
// → ["2023R1A2C1005678", "R01GM987654"]

// 2. 기관명 정규화
normalizeAgency("national research foundation of korea")  // → "NRF"
normalizeAgency("national institutes of health")           // → "NIH"
normalizeAgency("japan society for the promotion of science") // → "JSPS"

// 3. WoS Funding 정보 통합 파싱
const funding = parseFundingInfo(
  "NRF; NIH",                       // fundingOrgs
  "Grant No. 2023R1A2C1005678"      // fundingText
)
// → { agencies: ["NRF", "NIH"], grantNumbers: ["2023R1A2C1005678"], fundingText: "..." }

// 4. 과제 번호로 기관 추론
inferAgencyFromGrant("2023R1A2C1005678")  // → "NRF"
inferAgencyFromGrant("R01GM987654")        // → "NIH"
inferAgencyFromGrant("2021-0-01234-001")   // → "IITP"

// 5. UI 표시용 요약
const summary = summarizeFunding(["NRF", "NIH"], ["2023R1A2C1005678", "R01GM987654"])
// → { hasGrants: true, primaryAgency: "NRF", grantCount: 2, displayText: "NRF (2)" }

// 6. 기관 배지 색상
getAgencyColor("NRF")   // → "bg-blue-100 text-blue-800 border-blue-300"
getAgencyColor("NIH")   // → "bg-green-100 text-green-800 border-green-300"
getAgencyColor("JSPS")  // → "bg-red-100 text-red-800 border-red-300"

지원 과제번호 패턴

한국

기관패턴예시
NRF (한국연구재단)YYYY R N A N A NNNN...2023R1A2C1005678
MSIT/IITPYYYY-N-NNNNN(-NNN)2021-0-01234-001

미국

기관패턴예시
NIHXNN XX NNNNN+R01 GM987654, P50 CA211015
NSF일반 패턴 매칭

일반

패턴키워드
grant/award/project + no./number/# + 번호6~20자 영숫자-하이픈

지원 기관 목록 (정규화)

한국 기관 (파란색 계열)

입력정규화배지 색상
national research foundation of koreaNRFbg-blue-100
ministry of science and ictMSITbg-blue-50
information & communications technology planning & evaluationIITPbg-indigo-100
korea health industry development instituteKHIDIbg-cyan-100
national cancer centerNCCbg-blue-100

미국 NIH 관련 (녹색 계열)

입력정규화배지 색상
national institutes of healthNIHbg-green-100
national cancer instituteNCIbg-emerald-100
national institute of general medical sciencesNIGMSbg-green-50
national heart, lung, and blood instituteNHLBIbg-green-100

미국 기타

입력정규화배지 색상
national science foundationNSFbg-orange-100
department of defenseDODbg-slate-100

아시아/유럽

입력정규화배지 색상
japan society for the promotion of scienceJSPSbg-red-100
national natural science foundation of chinaNSFCbg-amber-100
european research councilERCbg-purple-100

트러블슈팅

1. 과제 번호 미추출

원인: 비표준 형식이거나 패턴에 미등록 해결: extractGrantNumbers() 함수에 새 패턴 추가 (정규식)

2. 기관명 미인식

원인: AGENCY_ALIASES에 미등록 해결: grant-parser.ts의 AGENCY_ALIASES 맵에 추가

3. WoS Funding Text가 없음

원인: WoS 데이터에 Funding 정보가 미포함 해결: PDF 분석(batch-author-extractor 스킬)에서 펀딩 정보 추출


관련 파일

파일경로설명
파서 유틸리티src/lib/grant-parser.ts과제번호 추출, 기관 정규화
펀딩 업데이트scripts/update-paper-funding.ts일괄 펀딩 정보 업데이트
저자 추출 서비스src/lib/author-extraction-service.tsWOS 펀딩 파싱 연동

업데이트 이력

  • 2026-02: 스킬 등록