https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d5e55966-ff6b-42d5-95e1-c795605ced44/Frame_1.png

기술 스택

  1. Firebase Hosting

    Web Static Asset 들을 무료로 호스팅 가능함. CDN 설정과 HTTPS 까지 자동으로 설정한다.

  2. Cloud Run

    완전 관리형 방식의 Docker Container serverless 플랫폼이다.

    사용량에 따른 초당 과금 방식으로 비용을 지불한다. 우리 서비스는 free tier 에서 사용 가능

  3. Docker Container

    코드가 실행 환경에 상관없이 동일하게 실행 할 수 있는 Linux Container 서비스.

    일종에 가상화인데 Host OS 의 커널을 사용한다는 점에서 다른 가상화와 다르고 더 가벼움

  4. Flask

    Micro web framework

  5. Tensorflow

  6. Pytorch

모듈별 설명

  1. Controller

    Flask 를 이용해서 HTTP 요청을 처리함.

    HTTP 요청을 받아서 클라이언트로부터 전송된 쿼리를 토대로 Classifier , BERT_Similarity 등의 모듈을 호출해서 추천 결과를 유저에게 응답함.

  2. Classifier

    LDA 결과 해석 (라벨 결정)

    위의 페이지에 기술된 라벨로 사용자의 쿼리를 분류하는 기능을 함.

    Parameters

  3. BERT_similarity

    https://huggingface.co/sentence-transformers/paraphrase-xlm-r-multilingual-v1

    위의 모델을 이용해서 사용자의 입력을 임베딩 하고 cosine 유사도 분석을 통해 dataset 에서 입력과 가장 유사한 문장 3개를 추론함. (label 안에서)

    리뷰 텍스트는 review.csv 로부터 가져오고 데이터셋 리뷰들의 임베딩 데이터는 bert_vec.csv 에서 불러온다. 데이터셋은 미리 임베딩 해놓아서 쿼리가 들어올때마다 처리하지 않도록 한다.

    Parameters

  4. Doc2Vec_similarity, FastText_similarity, Finetuned_similarity

    위의 모델을 이용해서 사용자의 입력을 임베딩 하고 cosine 유사도 분석을 통해 dataset 에서 입력과 가장 유사한 문장 3개를 추론함.

    데이터 셋의 임베딩 데이터는 doc2vec.csv 에 미리 저장해놓고 로드해서 사용한다.

    Interface 는 BERT_similarity 와 같음.

  5. Word2Vec_similarity

    위의 모델을 이용해서 사용자의 입력을 임베딩 하고 cosine 유사도 분석을 통해 dataset 에서 입력과 가장 유사한 문장 3개를 추론함.

    데이터 셋의 임베딩 데이터는 word2vec.csv 에 미리 저장해놓는다.

    Interface 는 BERT_similarity 와 같음.

  6. WordRank_Keywords

    사용자의 입력 문장과 similarity 모듈을 통해서 추론한 유사문장을 입력받아서 웹페이지에서 마스킹 할 부분의 index 와 컬러를 정해서 반환함.

    Parameters

  7. Preprocessor

    텍스트 데이터를 토큰화, 짧은 단어 제거, stopwords 제거, 어간 추출 등을 하는 전처리기.

    모듈마다 전처리가 다르면 결과도 다를수밖에 없으므로 전처리 된 데이터를 사용해야 한다면 꼭 이 모듈의 전처리기를 사용한다.

    Parameters

HTTP Interface

BaseURL - 배포 시 생성

POST infer/class