김민지 | 원종효 | 김헤원 |
---|---|---|
@ggororok |
wonjonghyo |
@hxe0ne |
- 2024-05-12 ~ 2024-07-16
-
데이터 구축: 최종 837개의 데이터 사용
- "농촌진흥청 국립원예특작과학원 오늘의 꽃"(open API), "순천만국가정원 탄생화"(pdf), “어니스트 플라워”의 꽃도감(웹크롤링/Selenium) 데이터 사용
- 꽃 이름, 월, 일자, 계절, 꽃말, 설명(기념일 등 따로 추가) , 이미지(링크), 색상, (선택한 색상, 중앙 색상들) 칼럼 사용
- 월을 통해 계절 추출
- 순천만국가정원 데이터 기준으로 일자 채우기, 없는 일자는 월별 탄생화로 채움
- 상황(기념일) 검색해서 설명 칼럼에 추가
- 나무 데이터 삭제, 이미지 링크 변경
- 완전히 중복되는 데이터 합치기 (중복제거)
- 사용자 입력에 월이 나오지 않는 경우, 사용자 로그를 통해 월,계절 가져오기 -
색상 추출
- PIL, 군집화를 통해 이미지에서 4개의 중심 색상 추출하여 가장 적합한 1개의 색상 선정
- HSV코드를 이용한 8개의 색상 군집화를 통해 색상 칼럼 생성 -
모델링(bert)
1. 전처리
2. 토큰화, 벡터화(bert)
3. 사용자 입력 및 유사도 계산 -
성능평가 (벡터:bert, bigbird, KLUEroberta / 유사도: cosine, vec db)
1. 테스트셋 구축 (월, 계절, 색상 키워드 기준)
2. 키워드 유무 기준으로 성능 평가
*참고용 정도로만 사용
*간단 비교 결과 bert(cosine), KLUE(cosine)으로 결정 -> 정확도 비교 결과 KLUE(cosine)으로 결정 (맥락적인 부분)
* 키워드 판단을 위해 TF-IDF도 섞어서 사용
최종: KLUE-RoBERTa + TF-IDF 를 8:2 비율로 사용
- openAI의 API를 가져와서 멘트 생성 (GPT-4) 이용
- 컬러 팔레트 사용: Color Hunt 사이트 https://colorhunt.co/
- Selenium을 통한 웹크롤링을 기반으로 컬러 팔레트의 rgb 코드 가져오기 (인기순, 찜 1000개 기준)
- 선정된 꽃의 RGB의 값과 가장 유사한 색상을 가진 팔레트 추출 (유클리드 거리 이용)
- 선정된 팔레트에서 어두운 색상 제거, 선정된 색(본인의 색) 제외한 팔레트 색상으로 어울리는 색상 꽃1, 꽃2 추출 (유클리드 거리 이용)
- FastAPI를 이용하여 API 키 생성
- AWS의 EC2를 통해서 배포 (nginx, ubunta 활용)