patent-analysis-viz
수집된 특허 데이터를 분류 체계에 따라 분류하고, 트렌드를 분석하며, 정적/인터랙티브 시각화 대시보드를 생성하는 스킬입니다.
이 스킬은 3단계 파이프라인의 L3 (Analysis) 단계입니다.
표준 분석 스크립트
이 스킬은 scripts/analyze_patents.py 표준 분석 스크립트를 포함합니다. 이 스크립트가 11개 고정 출력물을 생성하고 대시보드·보고서가 그 파일명을 그대로 참조하므로, patent-analyzer 에이전트는 분석을 이 스크립트로 수행합니다.
스크립트 참조 및 실행
스크립트는 이 스킬의 상대경로에 위치합니다:
scripts/analyze_patents.py
실행 방법:
python scripts/analyze_patents.py --config output/classification_config.json
Step 1. 상대경로로 실행 (최우선)
스킬이 로드된 컨텍스트에서 상대경로 scripts/analyze_patents.py를 직접 참조하여 실행합니다.
Step 2. 상대경로 실패 시 Glob 폴백
Glob: **/patent-analysis-viz/scripts/analyze_patents.py
Step 3. Glob도 실패 시 확장 탐색
Glob: **/analyze_patents.py
스크립트를 끝내 찾지 못하면 직접 Python 코드를 작성하지 말고, 에러를 보고한 뒤 사용자에게 경로 확인을 요청하세요. 자체 구현은 고정 출력물 계약을 깨뜨립니다.
Pipeline
Config Generation
↓ classification_config.json 생성 (에이전트의 역할)
Load Data
↓ Excel 특허 데이터 읽기 (단일/병합)
Classify (IPC → keyword → Other)
↓ 분류 축 레이블 부여
Analyze (5 types)
↓ 분포, 교차표, 연도별 트렌드, 화이트스페이스, 기관 랭킹
Visualize
↓ Matplotlib 8 PNG + Plotly HTML 대시보드
Export
↓ Excel 6시트 + Markdown 보고서
Verify
↓ 11개 필수 출력물 검증
Classification Config Schema
에이전트는 연구 계획(L1)에서 도출한 분류 체계를 JSON 형식으로 작성합니다.
{
"metadata": {
"title": "연구 주제 특허 분석",
"dashboard_title": "연구 주제 특허 분석 대시보드",
"period": "2020-2026",
"analysis_date": "2026년 3월"
},
"input": {
"file": "output/deduplicated_patents.xlsx"
},
"output": {
"dir": "output",
"viz_dir": "output/visualizations"
},
"year_range": [2020, 2027],
"classification": {
"axis1": {
"name": "기술 유형",
"other_label": "기타",
"order": ["Category A", "Category B", "기타"],
"colors": {"Category A": "#1E88E5", "기타": "#95A5A6"},
"ipc_map": {"Category A": ["G06N", "G06F"]},
"keywords": {"Category A": ["keyword1", "keyword2"]}
},
"axis2": {
"name": "적용 분야",
"other_label": "기타",
"order": ["Domain X", "Domain Y", "기타"],
"colors": {"Domain X": "#1565C0", "기타": "#95A5A6"},
"ipc_map": {},
"keywords": {"Domain X": ["keyword3"]}
}
}
}
Config 필드 설명
| 필드 | 필수 | 설명 |
|---|---|---|
metadata.title |
O | 보고서 제목 |
metadata.dashboard_title |
O | 대시보드 제목 |
metadata.period |
- | 분석 기간 텍스트 |
metadata.analysis_date |
- | 분석 일자 |
input.file |
O | 입력 Excel 파일 경로 |
output.dir |
- | 출력 디렉토리 (기본값: output) |
output.viz_dir |
- | 시각화 디렉토리 (기본값: output/visualizations) |
year_range |
- | [시작연도, 끝연도+1] (기본값: [2020, 2027]) |
classification.axis1 |
O | 분류 축 1 설정 |
classification.axis2 |
O | 분류 축 2 설정 |
축(axis) 설정 필드
| 필드 | 필수 | 설명 |
|---|---|---|
name |
O | 축 이름 (예: "기술 유형") |
other_label |
- | 미분류 레이블 (기본값: "기타") |
order |
O | 카테고리 정렬 순서 배열 |
colors |
O | 카테고리별 HEX 색상 맵 |
ipc_map |
- | 카테고리별 IPC 코드 접두사 배열 |
keywords |
- | 카테고리별 키워드 배열 |
Classification Logic
분류는 IPC 우선 → 키워드 폴백 → "Other" 순서로 양 축 모두 동일하게 적용됩니다.
for each patent:
for each axis:
category = match_ipc(ipcNumber, axis.ipc_map)
or match_keywords(title + abstract, axis.keywords)
or axis.other_label
키워드 매칭은 점수 기반 — 가장 많은 키워드가 매칭된 카테고리가 선택됩니다.
5 Analysis Types
- Distribution — 각 분류 축별 카테고리 건수 비율
- Cross-tabulation — 축 1 × 축 2 교차표 히트맵
- Yearly Trends — 연도별 카테고리별 출원 추이
- White Space — 저밀도 (축1, 축2) 조합 식별 (임계값: 25% 분위수)
- Institutional Ranking — Top 20 출원인 × 주력 기술축 분포
고정 출력물 (파일명 변경 금지)
output/
├── classification_config.json # 분류 설정 (에이전트 생성)
├── deduplicated_patents.xlsx # 입력 데이터 (병합 시)
├── patent_analysis_report.xlsx # Excel 보고서 (6 시트)
│ ├── Sheet: All_Patents
│ ├── Sheet: Distribution
│ ├── Sheet: Cross_Tabulation
│ ├── Sheet: Yearly_Trends
│ ├── Sheet: White_Space
│ └── Sheet: Top_Institutions
├── patent_classification_summary.md # Markdown 요약 (7 섹션)
└── visualizations/
├── axis1_distribution.png # 축 1 파이차트
├── axis2_distribution.png # 축 2 수평 바차트
├── cross_tabulation_heatmap.png # 축 1 × 축 2 히트맵
├── yearly_trend.png # 연도별 카테고리 추이
├── white_space_analysis.png # 화이트스페이스 (★ 표시)
├── top_institutions.png # 상위 20 누적 바차트
├── institution_by_category.png # 상위 10 그룹 바차트
├── combined_dashboard.png # 3×3 종합 대시보드
└── patent_dashboard.html # 인터랙티브 대시보드
11개 파일이 모두 생성되어야 분석 완료로 간주합니다.