Skip to content

Gemini API를 활용한 아티클 데이터 파싱 프로그램

Notifications You must be signed in to change notification settings

moamoaon/moaon-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Moaon Data Processing

블로그 아티클을 AI를 활용하여 자동으로 요약, 직군 분류, 토픽 분류하는 프로그램입니다.

📋 기능

  • 요약 생성: 블로그 글을 웹사이트 미리보기용 200자 이내로 요약
  • 직군 분류: 아티클을 적절한 직군(FE, BE, ANDROID, IOS, INFRA, NON_TECH)으로 분류
  • 토픽 분류: 직군에 맞는 토픽을 1-3개 선택하여 분류
  • 처리 방식 선택: 기존 방식(한 번에 저장) 또는 배치 방식(중간 저장) 선택 가능
  • 터미널 입력: 실행 시 처리 방식과 배치 크기를 터미널에서 입력

🚀 사용법

1. API Key 준비

Google Gemini API Key가 필요합니다.

API Key 발급 방법:

  1. Google AI Studio 접속
  2. Google 계정으로 로그인
  3. "Get API Key" 클릭
  4. "Create API Key" 선택
  5. 발급받은 API Key를 복사

참고: API Key는 프로그램 실행 시 터미널에서 입력받습니다. 코드에 직접 입력할 필요가 없습니다.

2. 입력 파일 준비

파일 위치:

src/main/resources/input.csv

파일 형식:

CSV 파일의 첫 번째 줄부터 데이터를 읽습니다. 엑셀 파일의 경우 CSV로 추출하기 기능을 이용하세요.

컬럼 설명 예시
id 아티클 고유 ID 1, 2, 3, ...
content 블로그 글 내용 "React의 성능 최적화에 대해..."
sector 기존 직군 FE, BE, ANDROID, IOS, INFRA, NON_TECH

예시:

1,"React의 성능 최적화 기법에 대해 설명합니다. useMemo와 useCallback을 활용한 렌더링 최적화 방법을 다룹니다.",FE
2,"Spring Boot에서 JPA를 사용한 데이터베이스 연동 방법을 설명합니다.",BE
3,"GitHub Actions를 활용한 CI/CD 파이프라인 구축 방법을 다룹니다.",INFRA

3. 프로그램 실행

./gradlew run

실행하면 다음과 같은 메뉴가 나타납니다:

========== Moaon Data Processing ==========
Gemini API Key를 입력하세요: [여기에 API Key 입력]
처리 방식을 선택하세요:
1. 기존 방식 (모든 데이터 처리 후 한 번에 저장)
2. 배치 방식 (배치 단위로 처리하며 중간 저장)
선택 (1 또는 2): 

기존 방식 (1번 선택)

  • 모든 아티클을 처리한 후 한 번에 파일에 저장
  • 메모리 사용량이 많지만 처리 속도가 빠름
  • 중간에 프로그램이 종료되면 모든 결과가 손실됨

배치 방식 (2번 선택)

  • 배치 크기를 입력받아 배치 단위로 처리
  • 각 배치 완료 시마다 결과를 파일에 저장
  • 중간에 프로그램이 종료되어도 완료된 배치의 결과는 보존됨

4. 처리 방식별 특징

기존 방식

  • 장점: 빠른 처리 속도, 메모리 효율적
  • 단점: 중간 종료 시 데이터 손실 위험

배치 방식

  • 장점: 안전한 처리, 중간 저장으로 데이터 보존
  • 단점: 상대적으로 느린 처리 속도
  • 배치 크기: 사용자가 직접 설정 (기본값: 10)

5. 결과 파일 확인

프로그램 실행 후 두 개의 파일이 생성됩니다.

📄 output_article.csv

위치: src/main/resources/output_article.csv

내용: 아티클별 요약 정보

  • 헤더: id, summary, sector
  • 각 아티클이 하나의 행을 차지

📄 output_topics.csv

위치: src/main/resources/output_topics.csv

내용: 아티클-토픽 매핑 정보

  • 헤더: article_id, topics
  • 아티클 하나당 토픽 하나씩 별도 행으로 작성 (정규화된 형태)

About

Gemini API를 활용한 아티클 데이터 파싱 프로그램

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages