본 코드는 비꼬는 후기 감지와 과장, 허위광고 감지를 수행하는 코드입니다.
- 정의
필수
: review_application_core
부수
: review_application_web
ubuntu 18.04, python 3.6.9, RTX 2080TI, requirements.txt
review_application_core의 정의
- generate_data.py : 과장, 허위광고 감지 기능에 대한 데이터를 생성하는 코드입니다.
cd review_application_core
python generate_data.py
- train.py : 두 가지 기능에 대하여 모델이 학습을 진행하는 코드입니다.
cd review_application_core
python train.py [options]
- General Parameters:
--model_name
(필수): 학습 할 기능 - (비꼬는 후기 감지-bert_sarcasm), (과장, 허위광고 감지-bert_siamese)
--lr
: 학습시 러닝레이트
--seq_len
: 리뷰, 방 설명에 대해 사용할 문자열의 길이
--gpu_id
: 사용할 그래픽카드 번호
--batch_size
: 학습시 배치 사이즈
--epoch
: 학습될 횟수
- common : 두 가지 기능에 대하여 공통적으로 사용되는 코드입니다.
파일명 |
내용 |
config.py |
기능, 그래픡카드, 배치사이즈와 같은 가변적으로 바뀔 수 있는 값을 입력 받는 코드입니다. |
data_utils.py |
스파크, 데이터 샘플링와 같은 데이터와 관련된 함수들이 있는 코드입니다. |
file_utils.py |
학습된 모델에 대한 정보를 저장, 호출하는 코드입니다. |
metrics.py |
학습된 모델에 대하여 f1-score, precision, recall과 같은 지표를 측정하는 코드입니다. |
models.py |
버트 모델에 대하여 파인튜닝용 모델로 변환하는 코드입니다. |
tokenizer.py |
버트 모델에 학습되기 전 BPE, 인덱싱 해주는 코드입니다. |
- data : 두 가지 기능에 대하여 모델이 학습, 예측하는 데이터입니다.
폴더명 |
내용 |
False_Exaggerated_advertisement.csv |
과장, 허위광고 감지 기능을 수행하기 위해 yelp 데이터를 과장, 허위광고 유/무에 대해 라벨링을 한 데이터입니다. |
reddit |
비꼬는 후기 감지 기능에 사용되는 reddit 데이터입니다. |
yelp |
비꼬는 후기 감지 기능에 사용되는 yelp 데이터입니다. |
- model : 두 가지 기능에 대하여 모델이 학습된 모델이 저장된 폴더입니다.
폴더명 |
내용 |
FEAD |
과장, 허위광고 감지 모델 |
SRD |
비꼬는 후기 감지 모델 |
폴더명 |
내용 |
bert_base_uncased |
구글이 제공한 Bert-base 모델에 대한 단어장, 가중치가 있는 폴더입니다. |
review_application_web의 정의
- django, mysql 사용합니다.
- application 폴더에 Service에 필요한 GET, Tokenizer, Database Save 코드가 있습니다.
- Service 서버의 주소는 192.9.66.224 입니다.
- Service의 기본적인 url은 application이며, 기능에 따라 뒤에 기능명이 붙습니다. ex) 192.9.66.224:8000/application/fead
- FEAD, SRD 기능의 사용예시 코드는 sample_FEAD.py, sample_SRD.py 입니다.
컬럼 |
내용 |
description |
방에 대한 카테고리에 대한 설명 |
review |
사용자의 리뷰 내용 |
predict_label |
본 모델이 예측한 라벨 |
컬럼 |
내용 |
review |
사용자의 리뷰 내용 |
predict_label |
본 모델이 예측한 라벨 |
모델 |
Accuracy |
F1-score |
BERT-siamese |
0.77 |
0.78 |
Text Similarity Using Siamese Deep Neural Network(Mueller, 2016) |
0.62 |
0.59 |
One Label Prediction |
0.66 |
- |
모델 |
Accuracy |
F1-score |
BERT-sarcasm |
0.74 |
0.76 |
SarcasmDetection(Khodak, 2017) |
0.68 |
0.68 |
One Label Prediction |
0.51 |
- |
- BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(arXiv preprint)
- Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
- Siamese Recurrent Architectures for Learning Sentence Similarity(AAAI2016)
- A Large Self-Annotated Corpus for Sarcasm(Proceedings of the Linguistic Resource and Evaluation Conference)