
"HDBSCAN으로 특허 기술군 자동 분류하기"
지난 글에서는 Sentence-BERT로 만든 특허 임베딩을 UMAP 또는 t-SNE로 2차원 공간에 시각화해 기술지도를 그려보았다. 각 특허를 하나의 점으로 표현하고, 의미적으로 유사한 특허들이 가까운 위치에 모이는지 확인하는 것이 목표였다.
이번 글에서는 여기서 한 단계 더 나아간다.
이전 글에서는 기술지도를 사람이 보고 “이 특허들은 제조 설비 이상탐지 쪽에 가깝다”, “이 특허들은 이미지 기반 결함검출 쪽에 가깝다”는 식으로 해석했다. 하지만 실제 특허 데이터가 100건, 1,000건, 10,000건으로 늘어나면 사람이 직접 모든 특허를 보고 분류하기 어렵다.
따라서 이번 글에서는 특허 임베딩을 기반으로 유사한 특허들을 자동으로 묶는 클러스터링을 적용해본다.
이번에 사용할 방법은 HDBSCAN이다.
Patent Text
↓
Sentence-BERT Embedding
↓
UMAP Dimensionality Reduction
↓
HDBSCAN Clustering
↓
Technology Cluster Labeling
↓
Technology Intelligence
이번 글의 목표는 다음과 같다.
특허 임베딩의 분포를 기반으로 유사한 기술문제를 다루는 특허들이 자동으로 하나의 기술군으로 묶이는지 확인한다.
1. 왜 클러스터링이 필요한가
특허 분석에서 유사도 검색은 특정 특허 하나를 기준으로 가까운 특허를 찾는 방식이다.
예를 들어 P001이라는 제조장비 이상탐지 특허가 있을 때, 이와 유사한 특허 Top-5를 찾는 식이다.
Query Patent: P001
↓
Top 1: P003 예지보전 특허
Top 2: P002 고장진단 특허
Top 3: P006 상태 모니터링 특허
이 방식은 특정 특허를 깊게 볼 때는 유용하다.
하지만 전체 기술영역의 구조를 보기에는 부족하다.
기술전략이나 기술평가 관점에서는 다음과 같은 질문이 더 중요하다.
전체 특허들은 몇 개의 기술군으로 나뉘는가?
각 기술군은 어떤 문제를 다루는가?
특정 기업은 어떤 기술군에 집중하고 있는가?
기술군별로 특허가 과밀한 영역은 어디인가?
새롭게 부상하는 기술군은 무엇인가?
기술군에 속하지 못하는 특허는 무엇인가?
이 질문에 답하기 위해서는 특허들을 자동으로 그룹화해야 한다.
즉, 클러스터링은 Patent Intelligence Agent가 단순 검색기를 넘어 기술구조 분석 도구로 확장되는 핵심 단계다.
2. 클러스터링이란 무엇인가
클러스터링은 정답 라벨 없이 데이터의 구조를 보고 비슷한 데이터끼리 묶는 비지도학습 방법이다.
특허 분석에 적용하면 다음과 같다.
입력 데이터
- 특허 제목
- 특허 초록
- 특허 임베딩 벡터
모델의 역할
- 의미적으로 가까운 특허들을 하나의 그룹으로 묶음
출력 결과
- Cluster 0: 제조 설비 이상탐지
- Cluster 1: 이미지 기반 결함검출
- Cluster 2: 금융 이상거래 탐지
- Cluster 3: 의료 이상징후 감지
- Noise: 어느 그룹에도 명확히 속하지 않는 특허
중요한 점은 클러스터링 모델이 처음부터 “제조”, “금융”, “의료”라는 이름을 알고 있는 것이 아니라는 점이다.
모델은 단지 임베딩 공간에서 가까운 점들을 묶는다.
그 후 사람이 각 클러스터에 속한 특허 제목과 초록을 보고 기술군 이름을 붙여야 한다.
즉, 클러스터링은 자동 분류의 시작점이지, 최종 해석 그 자체는 아니다.
3. 왜 HDBSCAN인가
클러스터링 방법에는 여러 가지가 있다. 가장 대표적인 방법은 K-Means다.
하지만 특허 데이터에는 K-Means보다 HDBSCAN이 더 적합한 경우가 많다.
K-Means는 미리 클러스터 개수를 정해야 한다.
K-Means
- 클러스터 개수 K를 사람이 미리 정해야 함
- 모든 데이터를 반드시 어떤 클러스터에 할당함
- 구형 또는 균일한 군집에 적합
하지만 특허 데이터에서는 처음부터 몇 개의 기술군이 존재하는지 알기 어렵다.
또 어떤 특허는 특정 기술군에 명확히 속하지 않을 수도 있다.
HDBSCAN은 이런 상황에 더 유리하다.
HDBSCAN
- 클러스터 개수를 미리 정하지 않아도 됨
- 밀도가 높은 영역을 자동으로 군집화
- 애매한 데이터는 Noise로 분류 가능
- 기술군 크기가 서로 달라도 비교적 유연하게 동작
특허 분석 관점에서 HDBSCAN의 장점은 명확하다.
특허 데이터의 특징
- 기술군 개수를 사전에 알기 어렵다.
- 일부 특허는 여러 기술군 사이에 걸쳐 있다.
- 특정 기술영역에 특허가 많이 몰릴 수 있다.
- 일부 특허는 독립적이거나 희소한 기술일 수 있다.
HDBSCAN의 장점
- 군집 수를 자동으로 찾는다.
- 모호한 특허를 Noise로 남길 수 있다.
- 밀도 기반으로 기술군을 식별한다.
따라서 이번 프로젝트에서는 HDBSCAN을 사용해 특허 기술군을 자동 분류해본다.
4. 이번 실험의 전체 구조
이번 실험의 전체 파이프라인은 다음과 같다.
Patent Dataset
↓
Title + Abstract 결합
↓
Sentence-BERT Embedding
↓
UMAP 차원축소
↓
HDBSCAN Clustering
↓
Cluster Label 부여
↓
기술군 해석
여기서 UMAP은 두 가지 목적으로 사용된다.
첫째, 고차원 임베딩을 클러스터링하기 좋은 형태로 줄인다.
둘째, 결과를 2차원 공간에 시각화한다.
다만 주의할 점이 있다.
시각화용 2D UMAP과 클러스터링용 UMAP은 목적이 다를 수 있다.
논문형 분석으로 확장한다면, 클러스터링은 5차원 또는 10차원으로 축소한 임베딩에서 수행하고, 시각화만 2차원으로 하는 방식이 더 안정적일 수 있다.
이번 글에서는 이해를 위해 간단한 구조로 진행한다.
5. 실험용 샘플 데이터
이전 글과 비슷하게 Anomaly Detection 관련 샘플 특허 데이터를 사용한다.
import pandas as pd
data = [
{
"patent_id": "P001",
"title": "Method for anomaly detection in manufacturing equipment",
"abstract": "A method includes collecting sensor data and detecting abnormal states using a trained machine learning model.",
"domain": "Manufacturing"
},
{
"patent_id": "P002",
"title": "System for fault diagnosis of industrial machines",
"abstract": "The invention relates to diagnosing machine faults based on vibration and temperature sensor data.",
"domain": "Manufacturing"
},
{
"patent_id": "P003",
"title": "Predictive maintenance method using machine learning",
"abstract": "Provided is a method for predicting equipment failure by analyzing time-series sensor signals.",
"domain": "Manufacturing"
},
{
"patent_id": "P004",
"title": "Condition monitoring apparatus for rotating machinery",
"abstract": "An apparatus monitors the operating condition of rotating machines using vibration signals and detects early signs of failure.",
"domain": "Manufacturing"
},
{
"patent_id": "P005",
"title": "Defect detection method for visual inspection",
"abstract": "A computer vision method detects defects in product images using a neural network.",
"domain": "Vision Inspection"
},
{
"patent_id": "P006",
"title": "Image-based quality inspection system",
"abstract": "A system identifies defective products by analyzing captured images with a deep learning model.",
"domain": "Vision Inspection"
},
{
"patent_id": "P007",
"title": "Surface defect classification using convolutional neural network",
"abstract": "A method classifies surface defects of manufactured products based on image features extracted by a convolutional neural network.",
"domain": "Vision Inspection"
},
{
"patent_id": "P008",
"title": "Abnormal transaction detection system",
"abstract": "A system detects abnormal financial transactions using historical transaction patterns and machine learning.",
"domain": "Finance"
},
{
"patent_id": "P009",
"title": "Fraud detection method using transaction behavior analysis",
"abstract": "A method determines fraudulent transactions by learning abnormal user behavior patterns from financial data.",
"domain": "Finance"
},
{
"patent_id": "P010",
"title": "Medical anomaly detection using patient monitoring data",
"abstract": "A system detects abnormal patient conditions by analyzing physiological time-series signals.",
"domain": "Healthcare"
},
{
"patent_id": "P011",
"title": "Abnormal symptom detection in wearable healthcare devices",
"abstract": "A wearable device detects abnormal health signals by monitoring heart rate and oxygen saturation patterns.",
"domain": "Healthcare"
},
{
"patent_id": "P012",
"title": "Battery fault detection system",
"abstract": "A battery management system detects abnormal voltage and temperature patterns to prevent battery failure.",
"domain": "Battery"
},
{
"patent_id": "P013",
"title": "Thermal runaway prediction for battery packs",
"abstract": "A method predicts thermal runaway risk by analyzing temperature, voltage, and current signals of battery cells.",
"domain": "Battery"
}
]
df = pd.DataFrame(data)
df.head()
여기서 domain은 모델이 사용하기 위한 정답 라벨이 아니라, 나중에 클러스터링 결과를 해석하기 위한 참고 라벨이다.
실제 프로젝트에서는 domain 없이 클러스터링을 수행한 뒤, 각 클러스터에 속한 특허를 보고 사람이 기술군 이름을 붙이는 방식이 더 자연스럽다.
6. 분석용 텍스트 만들기
이제 Title과 Abstract를 결합해 analysis_text를 만든다.
df["analysis_text"] = df["title"] + " " + df["abstract"]
df[["patent_id", "analysis_text"]].head()
초기 특허 분석에서는 Title + Abstract 조합이 가장 적합하다.
Title
- 기술 주제를 압축적으로 표현
Abstract
- 기술문제와 해결방식을 요약
Title + Abstract
- 주제와 기술 내용을 함께 반영
7. Sentence-BERT 임베딩 생성
Google Colab에서 Sentence-BERT를 사용하기 위해 패키지를 설치한다.
!pip install sentence-transformers
모델을 불러온다.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("all-MiniLM-L6-v2")
특허 텍스트를 임베딩으로 변환한다.
texts = df["analysis_text"].tolist()
embeddings = model.encode(texts)
embeddings.shape
출력은 다음과 비슷하다.
(13, 384)
이는 13개의 특허가 각각 384차원 벡터로 표현되었다는 의미다.
8. UMAP으로 클러스터링용 차원축소
HDBSCAN은 고차원 벡터에도 적용할 수 있지만, 실무적으로는 UMAP으로 차원을 줄인 뒤 클러스터링을 적용하는 경우가 많다.
여기서는 클러스터링용으로 5차원 UMAP을 만든다.
!pip install umap-learn
import umap
umap_cluster = umap.UMAP(
n_components=5,
n_neighbors=3,
min_dist=0.0,
random_state=42
)
embeddings_umap_5d = umap_cluster.fit_transform(embeddings)
embeddings_umap_5d.shape
출력은 다음과 같은 형태가 된다.
(13, 5)
즉, 384차원 특허 임베딩이 5차원으로 축소되었다.
왜 바로 2차원으로 줄이지 않고 5차원을 쓰는가?
2차원 UMAP
- 시각화에는 좋다.
- 하지만 정보 손실이 클 수 있다.
5차원 또는 10차원 UMAP
- 클러스터링에 필요한 구조를 더 보존할 수 있다.
- HDBSCAN 입력으로 사용하기 적합하다.
이번 글에서는 클러스터링용으로 5차원 UMAP을 사용하고, 시각화용으로는 2차원 UMAP을 따로 만든다.
9. HDBSCAN으로 클러스터링하기
이제 HDBSCAN을 설치한다.
!pip install hdbscan
HDBSCAN을 적용한다.
import hdbscan
clusterer = hdbscan.HDBSCAN(
min_cluster_size=2,
min_samples=1
)
cluster_labels = clusterer.fit_predict(embeddings_umap_5d)
df["cluster"] = cluster_labels
df[["patent_id", "title", "domain", "cluster"]]
여기서 cluster 값은 모델이 부여한 클러스터 번호다.
예상 결과는 다음과 같은 형태일 수 있다.
patent_id | domain | cluster
P001 | Manufacturing | 0
P002 | Manufacturing | 0
P003 | Manufacturing | 0
P004 | Manufacturing | 0
P005 | Vision Inspection | 1
P006 | Vision Inspection | 1
P007 | Vision Inspection | 1
P008 | Finance | 2
P009 | Finance | 2
P010 | Healthcare | 3
P011 | Healthcare | 3
P012 | Battery | 4
P013 | Battery | 4
실제 결과는 모델, 데이터, 파라미터에 따라 달라질 수 있다.
중요한 것은 HDBSCAN이 사람이 부여한 domain 라벨을 보지 않았다는 점이다.
모델은 오직 특허 텍스트 임베딩의 분포만 보고 클러스터를 구성한다.
10. Noise는 무엇인가
HDBSCAN의 결과에서 cluster = -1이 나올 수 있다.
이것은 Noise를 의미한다.
cluster = 0, 1, 2, ...
→ 특정 클러스터에 속한 데이터
cluster = -1
→ 어느 클러스터에도 명확히 속하지 않는 데이터
특허 분석에서 Noise는 오히려 중요한 신호일 수 있다.
Noise로 분류된 특허의 가능성
- 데이터셋 주제와 맞지 않는 특허
- 여러 기술군에 걸친 융합 특허
- 독립적인 신규 기술
- 초록 정보가 부족한 특허
- 표현이 특이한 특허
따라서 Noise를 무조건 오류로 보면 안 된다.
특허 기술지도에서 Noise는 “해석이 필요한 후보군”이다.
특히 기술공백, 융합기술, 신규 응용분야를 찾을 때 Noise 특허를 별도로 검토할 가치가 있다.
11. 클러스터별 특허 확인하기
이제 각 클러스터에 어떤 특허가 들어갔는지 확인한다.
for cluster_id in sorted(df["cluster"].unique()):
print(f"\nCluster {cluster_id}")
subset = df[df["cluster"] == cluster_id]
for _, row in subset.iterrows():
print(f"- {row['patent_id']}: {row['title']}")
출력 예시는 다음과 같다.
Cluster 0
- P001: Method for anomaly detection in manufacturing equipment
- P002: System for fault diagnosis of industrial machines
- P003: Predictive maintenance method using machine learning
- P004: Condition monitoring apparatus for rotating machinery
Cluster 1
- P005: Defect detection method for visual inspection
- P006: Image-based quality inspection system
- P007: Surface defect classification using convolutional neural network
Cluster 2
- P008: Abnormal transaction detection system
- P009: Fraud detection method using transaction behavior analysis
Cluster 3
- P010: Medical anomaly detection using patient monitoring data
- P011: Abnormal symptom detection in wearable healthcare devices
Cluster 4
- P012: Battery fault detection system
- P013: Thermal runaway prediction for battery packs
이제 사람이 각 클러스터를 보고 기술군 이름을 붙일 수 있다.
12. 클러스터 이름 붙이기
클러스터링 모델은 숫자 라벨만 제공한다.
Cluster 0
Cluster 1
Cluster 2
Cluster 3
Cluster 4
하지만 분석 리포트에는 숫자만으로는 의미가 없다.
따라서 각 클러스터에 사람이 해석 가능한 이름을 붙여야 한다.
예를 들어 다음과 같이 정리할 수 있다.
Cluster 0
→ 센서 기반 설비 진단 및 예지보전 기술군
Cluster 1
→ 이미지 기반 품질검사 및 결함검출 기술군
Cluster 2
→ 금융거래 이상탐지 및 사기탐지 기술군
Cluster 3
→ 헬스케어 신호 기반 이상징후 감지 기술군
Cluster 4
→ 배터리 상태진단 및 안전관리 기술군
클러스터 이름을 붙일 때는 다음 기준을 사용한다.
클러스터 라벨링 기준
1. 클러스터 내 특허 제목에서 반복되는 키워드
2. 초록에서 반복되는 기술 문제
3. 사용 데이터 유형
4. 적용 산업 또는 장비
5. 출력 결과 또는 기술 목적
이 작업은 완전히 자동화하기보다, AI 요약과 사람 검토를 결합하는 방식이 적절하다.
13. 클러스터별 대표 키워드 추출하기
클러스터 이름을 붙일 때 대표 키워드를 보면 도움이 된다.
간단하게 TF-IDF를 이용해 클러스터별 주요 단어를 추출할 수 있다.
from sklearn.feature_extraction.text import TfidfVectorizer
def extract_top_keywords(texts, top_n=5):
vectorizer = TfidfVectorizer(
stop_words="english",
lowercase=True
)
tfidf_matrix = vectorizer.fit_transform(texts)
feature_names = vectorizer.get_feature_names_out()
scores = tfidf_matrix.sum(axis=0).A1
top_indices = scores.argsort()[::-1][:top_n]
return [feature_names[i] for i in top_indices]
클러스터별 키워드를 확인한다.
for cluster_id in sorted(df["cluster"].unique()):
if cluster_id == -1:
continue
subset = df[df["cluster"] == cluster_id]
keywords = extract_top_keywords(subset["analysis_text"], top_n=5)
print(f"Cluster {cluster_id}: {keywords}")
예상 결과는 다음과 같은 형태다.
Cluster 0: ['sensor', 'equipment', 'machine', 'failure', 'vibration']
Cluster 1: ['image', 'defect', 'inspection', 'vision', 'neural']
Cluster 2: ['transaction', 'financial', 'fraud', 'behavior', 'abnormal']
Cluster 3: ['health', 'patient', 'wearable', 'signals', 'physiological']
Cluster 4: ['battery', 'temperature', 'voltage', 'thermal', 'failure']
이 키워드는 클러스터 라벨링의 근거로 사용할 수 있다.
14. 2차원 기술지도에 클러스터 표시하기
이제 시각화용 UMAP 2D 좌표를 만든다.
umap_visual = umap.UMAP(
n_components=2,
n_neighbors=3,
min_dist=0.1,
random_state=42
)
embeddings_umap_2d = umap_visual.fit_transform(embeddings)
df["x"] = embeddings_umap_2d[:, 0]
df["y"] = embeddings_umap_2d[:, 1]
이제 클러스터 번호를 색상으로 표시한다.
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 7))
for cluster_id in sorted(df["cluster"].unique()):
subset = df[df["cluster"] == cluster_id]
label = "Noise" if cluster_id == -1 else f"Cluster {cluster_id}"
plt.scatter(
subset["x"],
subset["y"],
label=label,
s=80
)
for _, row in df.iterrows():
plt.text(
row["x"] + 0.02,
row["y"] + 0.02,
row["patent_id"],
fontsize=9
)
plt.title("Patent Technology Clusters using Sentence-BERT + UMAP + HDBSCAN")
plt.xlabel("UMAP Dimension 1")
plt.ylabel("UMAP Dimension 2")
plt.legend()
plt.grid(True)
plt.show()
이 그래프에서는 각 점이 특허 하나를 의미하고, 색상은 HDBSCAN이 부여한 클러스터를 의미한다.
점 하나 = 특허 하나
점의 위치 = 특허 임베딩의 2D 좌표
점의 색상 = HDBSCAN 클러스터
클러스터 -1 = Noise
15. 클러스터링 결과 해석하기
클러스터링 결과를 해석할 때는 다음 순서가 좋다.
1. 각 클러스터에 속한 특허 제목 확인
2. 각 클러스터의 Abstract 공통점 확인
3. 대표 키워드 추출
4. 적용 도메인 확인
5. 기술문제와 해결방식 정리
6. 클러스터 이름 부여
7. 이상하게 묶인 특허 또는 Noise 검토
예를 들어 Cluster 0이 다음 특허들로 구성되었다고 하자.
P001: Method for anomaly detection in manufacturing equipment
P002: System for fault diagnosis of industrial machines
P003: Predictive maintenance method using machine learning
P004: Condition monitoring apparatus for rotating machinery
이 클러스터는 다음과 같이 해석할 수 있다.
Cluster 0
기술군명: 센서 기반 설비 진단 및 예지보전
공통 문제:
- 설비 상태 이상을 조기에 감지
- 고장 발생 전 유지보수 판단
- 센서 데이터를 활용한 상태 모니터링
주요 데이터:
- 진동 데이터
- 온도 데이터
- 시계열 센서 데이터
기술 목적:
- 고장 예방
- 장비 가동률 향상
- 유지보수 비용 절감
이렇게 정리하면 단순 클러스터 번호가 기술 인사이트로 바뀐다.
16. 기술평가 관점에서 클러스터링 결과 보기
특허 클러스터링은 단순 기술분류를 넘어서 기술평가에도 활용될 수 있다.
기술평가 관점에서는 다음과 같은 질문을 던질 수 있다.
기술성 관점
- 특정 기업의 특허가 어느 기술군에 집중되어 있는가?
- 클러스터 내에서 해당 기업의 특허가 중심에 가까운가?
- 기술군이 기존 기술과 얼마나 차별화되어 있는가?
시장성 관점
- 해당 기술군이 어떤 산업 문제를 해결하는가?
- 적용 가능한 시장이 넓은가?
- 여러 산업으로 확장 가능한 기술인가?
경쟁성 관점
- 특정 클러스터에 출원인이 과도하게 몰려 있는가?
- 경쟁기업 간 기술 유사도가 높은가?
- 차별화된 기술 포지션을 가진 기업은 누구인가?
리스크 관점
- 해당 기술군이 데이터 품질, 규제, 인증, 신뢰성 검증에 민감한가?
- 실험실 수준 기술인지, 실제 제품 적용 가능성이 있는지 추가 검토가 필요한가?
즉, 클러스터링은 기술문헌을 자동으로 묶는 데서 끝나지 않는다.
각 기술군의 의미를 해석하고, 기업의 기술 포지션과 사업화 가능성을 판단하는 보조도구로 활용할 수 있다.
17. HDBSCAN 결과를 과신하면 안 된다
HDBSCAN은 유용하지만 완벽한 분류기는 아니다.
특허 클러스터링 결과를 해석할 때는 다음 한계를 반드시 고려해야 한다.
한계 1. 데이터셋 구성에 민감하다
- 어떤 키워드로 특허를 수집했는지에 따라 클러스터가 달라진다.
한계 2. 임베딩 모델에 의존한다
- Sentence-BERT가 기술적 의미를 잘못 반영하면 클러스터링도 왜곡된다.
한계 3. 파라미터에 따라 결과가 달라진다
- min_cluster_size, min_samples 값에 따라 군집 수가 달라질 수 있다.
한계 4. 클러스터 이름은 사람이 붙여야 한다
- 모델은 숫자 라벨만 제공한다.
한계 5. 법적 권리범위를 판단하지 못한다
- 비슷한 텍스트라도 청구항 범위는 다를 수 있다.
따라서 클러스터링 결과는 최종 결론이 아니라, 기술문헌을 검토하기 위한 탐색 결과로 봐야 한다.
AI가 묶어준 결과를 그대로 믿는 것이 아니라, 대표 특허의 제목, 초록, 청구항을 직접 확인해야 한다.
18. 이번 실험의 의미
이번 실험은 Patent Intelligence Agent의 분석 기능을 한 단계 확장한 것이다.
이전까지는 다음과 같은 구조였다.
특정 특허 입력
↓
유사 특허 검색
↓
Top-K 결과 확인
이번에는 다음과 같은 구조가 되었다.
특허 Corpus 전체 입력
↓
임베딩 공간에서 유사 문헌군 탐색
↓
기술군 자동 분류
↓
클러스터별 기술 이슈 해석
이 차이는 중요하다.
유사 특허 검색은 문헌 단위 분석이다.
클러스터링은 기술군 단위 분석이다.
즉, Patent Intelligence Agent가 단순 검색 도구에서 기술 인사이트 도출 도구로 확장되는 단계다.
19. 정리
이번 글에서는 Sentence-BERT 임베딩과 HDBSCAN을 활용해 특허 기술군을 자동 분류하는 방법을 정리했다.
핵심은 다음과 같다.
| 핵심 요약 |
| 1. 클러스터링은 정답 라벨 없이 유사한 특허들을 자동으로 묶는 비지도학습이다. 2. K-Means는 클러스터 수를 미리 정해야 하지만 HDBSCAN은 밀도 기반으로 군집을 찾는다. 3. HDBSCAN은 어느 군집에도 명확히 속하지 않는 특허를 Noise로 분류할 수 있다. 4. 특허 텍스트를 Sentence-BERT로 임베딩하고, UMAP으로 차원축소한 뒤 HDBSCAN을 적용한다. 5. 클러스터 번호 자체는 의미가 없으며, 사람이 특허 제목과 초록을 확인해 기술군 이름을 붙여야 한다. 6. 클러스터링 결과는 기술성, 시장성, 경쟁성, 리스크 관점에서 해석할 수 있다. 7. AI가 분류한 결과를 그대로 믿지 말고, 대표 특허 원문 검토로 타당성을 확인해야 한다. |
이번 단계까지 오면 Patent Intelligence Agent는 단순히 유사 특허를 찾는 도구를 넘어, 특허 문헌을 기술군 단위로 구조화하는 분석 도구가 된다.
다음 글에서는 클러스터링 결과를 기업 단위로 확장한다.
즉, 특허 하나하나가 아니라 출원인 단위로 특허 포트폴리오를 묶고, 기업별 기술 포지션과 경쟁사 유사도를 분석하는 방법을 정리할 예정이다.
다음 글 예고
"기업별 특허 포트폴리오 벡터 만들기"
다음 글에서는 각 기업이 보유한 특허 임베딩을 하나의 포트폴리오 벡터로 집계하고, 기업 간 기술 유사도를 계산해 경쟁구도를 분석해볼 예정이다.
'Project > Patent Intelligent Agent' 카테고리의 다른 글
| Patent Intelligence Agent #9; RAG로 특허 기반 기술동향 리포트 생성하기 (0) | 2026.06.23 |
|---|---|
| Patent Intelligence Agent #8; 기업별 특허 포트폴리오 벡터 만들기 (0) | 2026.06.23 |
| Patent Intelligence Agent #6 (0) | 2026.06.22 |
| Patent Intelligence Agent #5 (0) | 2026.06.16 |
| Patent Intelligence Agent #4 (0) | 2026.06.16 |