Skip to content

사용자 맞춤 도서 추천 및 독서 기록 플랫폼 ShowBook입니다. 본 프로젝트는 책을 읽고싶어하는 사람들의 독서에 대한 흥미를 유도하고자 기획되었습니다. 사용자의 취향을 분석하여 개인 맞춤형 도서를 추천함으로써, 독서에 대한 관심을 높이고 독서 문화를 활성화하려는 목적을 가지고 있습니다.

Notifications You must be signed in to change notification settings

jason9865/ShowBook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

독서 추천/흥미 유도 플랫폼

showbook

기획 의도

본 프로젝트는 책을 읽고싶어하는 사람들의 독서에 대한 흥미를 유도하고자 기획되었습니다.
사용자의 취향을 분석하여 개인 맞춤형 도서를 추천함으로써, 독서에 대한 관심을 높이고 독서 문화를 활성화하려는 목적을 가지고 있습니다.

프로젝트 구조

  • main: 프로젝트의 메인 브랜치로, 현재 산출물 및 기타 파일들이 등록되어 있습니다.
  • front: 프론트엔드 개발을 위한 브랜치입니다. 사용자 인터페이스 디자인, 클라이언트 사이드 로직, 프론트엔드 관련 기술 스택의 개발이 이 브랜치에서 진행됩니다.
  • back: 백엔드 개발을 위한 브랜치입니다.서버 사이드 로직, 데이터베이스 관리, API 개발 등 백엔드 관련 작업이 이 브랜치에서 이루어집니다.
  • ML: ML 기능 개발을 위한 브랜치입니다. 데이터 크롤링, 전처리, 추천 모델 학습 및 성능 평가, 그리고 Flask를 통한 API 개발 등 ML 관련 작업이 이 브랜치에서 진행됩니다.

기술 스택






서비스 플로우

시스템 아키텍처

ERD

메인 기능

  • 책 추천: 취향 분석을 통한 사용자 맞춤형 도서 추천
  • 슈욱: 숏폼 형태의 후기 작성 기능
    • 이미지 안의 키워드의 빈도를 통해 사용자 맞춤 숏폼 제공
  • 서재: 도서 목록 관리
  • 마이페이지: 개인의 독서현황을 시각적으로 확인

세부 사항

  • 회원 가입 시, 사용자 설문 기반 + 크롤링한 책 데이터 기반으로 추천
  • 독서 현황 기록
  • 슈욱을 통해 독서에 대한 흥미 유도 및 공유

추천 시스템 구축 과정

데이터 수집

교보문고 웹사이트로부터 약 1만 2천 여개의 도서 데이터 수집

  • 책 제목, 책 소개, 저자, 페이지 수, 출판사, 책 사진
  • 파이썬 Request, Selenium 라이브러리를 활용

데이터 전처리

  • 띄어쓰기, 맞춤법 검사
  • 정규 표현식을 활용하여 한글, 공백 이외 문자 제거
  • 토큰화(Okt, MeCab)
  • 불용어 처리

모델 학습

  1. 워드 임베딩
    • 책 설명(description) → 벡터화
    • Word2Vec, FastText
      • 사전학습모델 사용, Word2Vec에 비해 좋은 성능
      • 하지만 모델 용량이 큰 관계로 경량화 예정
        • Vector Size : 300 → 100
    • 임베딩된 단어들을 바탕으로 단어 벡터 생성
    • 이들의 평균을 문서 벡터화
  2. 유사도 계산
    • 코사인 유사도 → 책 간의 유사도 측정
    • 유사도가 높은 상위 5개의 책을 추천

모델 서빙

  • 학습된 모델을 Flask 서버에 서빙
  • 사용자 선호 카테고리/서재에 저장된 책을 바탕 유사한 책 추천

About

사용자 맞춤 도서 추천 및 독서 기록 플랫폼 ShowBook입니다. 본 프로젝트는 책을 읽고싶어하는 사람들의 독서에 대한 흥미를 유도하고자 기획되었습니다. 사용자의 취향을 분석하여 개인 맞춤형 도서를 추천함으로써, 독서에 대한 관심을 높이고 독서 문화를 활성화하려는 목적을 가지고 있습니다.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published