Giter Site home page Giter Site logo

final-project-level3-nlp-04's Introduction

리뷰, 직접 쓰지 말고 이제는 FooReview로!

1. Team

😎 팀원 소개

😎 팀원별 역할

  • 전상민 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. FooReview

전체적인 구조입니다.

2.1 Data

서울의 2호선 지하철역 51개를 배달 장소로 선정하여 메뉴, 별점, 리뷰, 카테고리 등 의 주요 정보를 요기요 에서 크롤링 진행하여 AWS의 MySQL DB에 저장하도록 하였습니다.

2.2 Review Generation

2.2.1 Review Re-Tagging

EDA 진행 중, 별점과 리뷰가 상이한 경우를 확인하였습니다. 이에 따라, 유저가 준 별점은 신뢰도가 떨어지는 지표라고 판단했고, 리뷰에 대한 새로운 별점 지표를 마련하고자 했습니다. 별점(1~5점)별로 샘플링한 약 14000개의 데이터를 바탕으로 요리 관련 별점, 배달 관련 별점을 1, 3, 5 점으로 태깅 을 진행하였습니다.

2.2.2 Classification Model

Re-Tagging한 데이터들을 바탕으로 학습을 진행하였을 때, 각 모델은 f1 score에서 다음과 같은 차이를 보였습니다. 이에 따라, 별점 Re-Tagging을 위한 모델로는 RoBERTa-Large로 5-fold를 돌린 모델 을 사용하였습니다.

해당 모델로 크롤링한 60만개의 데이터의 점수를 다시 정의하였습니다. 이 데이터들은 Huggingface Dataset 으로 관리되었고, 이는 리뷰 생성과 키워드 검색의 학습 데이터로 사용 되었습니다.

2.2.3 Generation Model

리뷰 데이터에 대한 inference 결과, 모델의 크기 등을 고려하여 여러 모델들 중에서도 상대적으로 가볍고 inference 소요시간이 적게 걸리는 kogpt2-base-v2 모델 을 선택하였습니다.

2.2.4 Elastic Search

생성된 리뷰와 가장 유사한 기존 리뷰를 얻고, 기존 리뷰의 이미지를 사용하는 방법으로 Elastic Serach를 이용하여 사진 리뷰 기능을 제공 하고자 하였습니다.

2.2.5 Translation standard to dialect

GRU모델은 encoder, decoder로 이용한 seq2seq with attention 방식을 이용하였습니다. 하지만 리뷰 데이터를 input으로 넣어줬을 때 생각보다 잘 바뀌지 않아 최종적으로 KoBART 모델 을 사용하였습니다.

스크린샷 2021-12-22 오후 3 38 11

2.2.6 Additional Functions

  • 입력받은 키워드를 기반으로 식당 추천 후 식당 정보 제공
  • 크롤링 데이터를 분석하여 카테고리별 인기 식당 순위 제공
  • 자동화 적용하여 매일 오전 2시 요기요 리뷰 데이터 크롤링 진행

3. Run FooReview

3.1 git clone

git clone https://github.com/boostcampaitech2/final-project-level3-nlp-04.git
cd final-project-level3-nlp-04

3.2 Requirements Install

pip install -r requirements.txt
pip install git+https://github.com/SKT-AI/KoBART#egg=kobart

3.3 Run FooReview

cd chatbot
python3 discord_bot.py

3.4 What You Need Is

  • Discord Token
  • DB config file

4. Demo Video

  1. Review Generate
2.MP4
  1. Review based Restaurant Top3
2.MP4
  1. Keyword based Restaurant Top10
3.MP4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.