사용자의 웹 로그 데이터를 기반으로 관심사와 성향을 분석하는 서비스입니다.
EUM Classifier는 사용자의 웹 로그 데이터를 분석하여 다음과 같은 정보를 제공합니다:
-
커뮤니티 성향 분석
- 관광/체험, 식도락/맛집, 교통/이동 등 17개 카테고리별 관심도
- 사용자의 커뮤니티 활동 패턴 분석
-
정보 성향 분석
- 비자/법률, 취업/직장, 주거/부동산 등 8개 카테고리별 관심도
- 사용자의 정보 검색 패턴 분석
-
토론 성향 분석
- 정치/사회, 경제, 생활/문화 등 6개 카테고리별 관심도
- 사용자의 토론 참여 패턴 분석
- API 요청을 받으면, 유저의 웹로그를 확인, 전처리한다.
- 사전에 모든 유저의 웹로그를 기반으로 학습된 뉴럴넷을 사용, 해당 유저의 정보를 입력한다.
- 사용자의 서비스 이용 성향과 유저서비스 내의 정보를 결합해 후처리한다.
- 적절한 유저 성향 데이터를 반환한다.
- LightFM: 협업 필터링 기반 추천 모델
- TensorFlow: 딥러닝 기반 분류 모델
- scikit-learn: 데이터 전처리 및 모델 평가
- numpy: 수치 연산
- FastAPI: 고성능 비동기 웹 프레임워크
- SQLAlchemy: ORM 및 데이터베이스 관리
- PostgreSQL: 데이터베이스
- Python 3.10+
- Poetry: 의존성 관리
- Docker: 컨테이너화
-
ML 모델 통합
- LightFM과 신경망 모델을 하이브리드 모델로 통합
- 각 모델의 장점을 결합한 앙상블 방식 적용
- 모델 성능 평가 및 최적화
-
성능 개선
- 캐싱 시스템 도입
- 배치 처리 최적화
- API 응답 시간 개선
-
기능 확장
- 실시간 성향 분석
- 사용자 피드백 시스템
- A/B 테스트 지원
- 저장소 클론
git clone https://github.com/your-username/eum-classifier.git
cd eum-classifier- 가상환경 설정
python3.10 -m venv .venv
source .venv/bin/activate # Linux/Mac
# or
.venv\Scripts\activate # Windows
pip install --upgrade pip setuptools wheel- 의존성 설치(배포용)
pip install -r requirements.txt- 의존성 설치(개발용)
pip install -r requirements-dev.txt- 데이터베이스 설정
# PostgreSQL 데이터베이스 생성 및 설정
createdb eum_classifier- 서버 실행
uvicorn app.main:app --reload- 신경망 모델 학습
python app/model/classifier_model.py- LightFM 모델 학습
python app/model/lightfm_model.py- 사용자 성향 분석 (신경망)
curl -X GET "http://localhost:8000/user/35/preferences"- 사용자 성향 분석 (LightFM)
curl -X GET "http://localhost:8000/user/35/preferences/lightfm"- 로그 개수 적은 사용자의 분류
- 유저데이터 서비스와 연결, 유저 정보를 분류에 반영
- 배포용 requirements.txt 작성 후 학습 알고리즘 수정 또는 제외