전상민
PM, Review Generation, Star Classification김신곤
Data Crawling, Retrieval김재영
Data Crawling, Preprocessing, Image Generation박세진
Data Preprocessing, Chatbot손희락
Retrieval, Image Generation, Recommendation심우창
Data Crawling, Text Style Transfer이상준
Review Generation, Star Classification, Text Style Transfer
전체적인 구조입니다.
서울의 2호선 지하철역 51개를 배달 장소로 선정하여 메뉴, 별점, 리뷰, 카테고리 등 의 주요 정보를 요기요 에서 크롤링 진행하여 AWS의 MySQL DB에 저장하도록 하였습니다.
EDA 진행 중, 별점과 리뷰가 상이한 경우를 확인하였습니다. 이에 따라, 유저가 준 별점은 신뢰도가 떨어지는 지표라고 판단했고, 리뷰에 대한 새로운 별점 지표를 마련하고자 했습니다. 별점(1~5점)별로 샘플링한 약 14000개의 데이터를 바탕으로 요리 관련 별점, 배달 관련 별점을 1, 3, 5 점으로 태깅 을 진행하였습니다.
Re-Tagging한 데이터들을 바탕으로 학습을 진행하였을 때, 각 모델은 f1 score에서 다음과 같은 차이를 보였습니다. 이에 따라, 별점 Re-Tagging을 위한 모델로는 RoBERTa-Large로 5-fold를 돌린 모델 을 사용하였습니다.
해당 모델로 크롤링한 60만개의 데이터의 점수를 다시 정의하였습니다. 이 데이터들은 Huggingface Dataset 으로 관리되었고, 이는 리뷰 생성과 키워드 검색의 학습 데이터로 사용 되었습니다.
리뷰 데이터에 대한 inference 결과, 모델의 크기 등을 고려하여 여러 모델들 중에서도 상대적으로 가볍고 inference 소요시간이 적게 걸리는 kogpt2-base-v2 모델 을 선택하였습니다.
생성된 리뷰와 가장 유사한 기존 리뷰를 얻고, 기존 리뷰의 이미지를 사용하는 방법으로 Elastic Serach를 이용하여 사진 리뷰 기능을 제공 하고자 하였습니다.
GRU모델은 encoder, decoder로 이용한 seq2seq with attention 방식을 이용하였습니다. 하지만 리뷰 데이터를 input으로 넣어줬을 때 생각보다 잘 바뀌지 않아 최종적으로 KoBART 모델 을 사용하였습니다.
- 입력받은 키워드를 기반으로 식당 추천 후 식당 정보 제공
- 크롤링 데이터를 분석하여 카테고리별 인기 식당 순위 제공
- 자동화 적용하여 매일 오전 2시 요기요 리뷰 데이터 크롤링 진행
git clone https://github.com/boostcampaitech2/final-project-level3-nlp-04.git
cd final-project-level3-nlp-04
pip install -r requirements.txt
pip install git+https://github.com/SKT-AI/KoBART#egg=kobart
cd chatbot
python3 discord_bot.py
- Discord Token
- DB config file
- Review Generate
2.MP4
- Review based Restaurant Top3
2.MP4
- Keyword based Restaurant Top10