[Research] Khaiii 토크나이저를 활용한 리뷰 데이터셋 구축 - 1. Pipeline 계획

Jonas M·2021년 8월 17일
0
post-thumbnail

앞서 토크나이저 비교 포스팅에서 카카오의 Khaiii를 활용하여 Aspect Extraction task를 위한 데이터셋 라벨링 작업을 해보기로 결정했다. 여기엔 어떤 단계를 밟아가면서 이 작업을 수행할지 계획을 메모해두려고 한다.
여기서는 대략적인 틀에 대해서 소개하고, 진행하고 있는 내용을 짧게짧게 다음 시리즈로 공유할 생각이다.

리뷰 전처리


리뷰는 정말 자유분방하다. 띄어쓰기가 일관되게 지켜지거나 안 지켜지는 것도 아니고, 오타도 많다. 심지어 아무 내용이 없이 이모티콘만 남겨져 있는 경우도 있다.
스크래퍼로 리뷰를 긁어오는 과정에선 '한달사용기', '재구매'를 안내하는 문구만 지웠다. 리뷰 데이터를 탐색한 결과 추가로 처리해줘야할 내용들이 있어서 적용해본다.

Aspect 후보군 선정


카카오의 Khaiii 토크나이저를 활용해 아래처럼 형태소 단위로 자른다. 그리고 하나의 상품군 내에서 형태소의 빈도를 표현하는 counter를 만들고, word-level에서의 유사 TF-IDF score를 커스터마이징하여 스코어를 뽑아낸다. 그리고 이 둘을 함께 활용해서 aspect 단어가 될 만한 후보군들을 추출해본다.

Aspect의 결정

이 부분은 AI 모델이 해야 하지만, 학습을 위한 데이터셋을 구축할 때에는 수작업이 들어가야한다. 한국어로 라벨링된 데이터셋이 없고, aspect라는 게 어떤 객관적인 기준이 있는 게 아니라 단지 상품을 잘 표현해줄 수 있는 단어들이기 때문에 어떤 룰(Rule) 만으로 완전하게 판단할 수 없다.

여기서는 앞서 선정한 aspect 후보군을 seed로 삼고, 상품군A에 대한 모든 리뷰들을 대상으로 Word2Vec(skipgram) 방식으로 embedding 벡터들을 학습하여, 유사한 단어들을 추려낸다.
Pre-defined된 카테고리와 그에 해당하는 문장 내 주요 단어(aspect word) 관계처럼 seed와 관계된 단어들을 일단 다 뽑아보는 것이다. 그리고 파일로 뽑아내어 직접 부적절한 단어들은 걸러낸다..(걸러냈다)

Labeling

AE나 AOPE(Aspect-Opinion Pair Extraction)을 위한 데이터셋은 흔치 않다.

  • SemEval에서의 ABSA 데이터셋은 리뷰, aspect 카테고리, aspect word, aspect에 대한 감성, 그리고 aspect word의 위치(index)가 포함되어 있다. 레스토랑 데이터셋 2,500여 건에 대해서만 이렇게 잘 갖춰져 있고 랩탑 데이터셋는 aspect word에 대한 레이블이 따로 존재하지 않는다.

    I’ve asked a cart attendant for a lotus leaf wrapped rice and she replied back rice and just walked away. → {SERVICE#GENERAL, “cart attendant”, negative, from="12" to="26"}

  • AOPE 태스크는 중국 연구자들(알리바바나 칭화대 등)에 의해 많이 이뤄지고 있다. TOWE(Target-wise Opinion Words Extraction) paper link 연구자는 이 태스크를 위해 아래와 같은 형태로 태깅된 데이터셋을 직접 구축하고 공개했다. Aspect 뿐 아니라 Opinion까지 구축된 리뷰 데이터셋은 이게 거의 유일하다고 봐도 무방하다.

    sentence: Easy to start up and does not overheat as much as other laptops.
    aspect: Easy\O to\O start\B up\I and\O does\O not\O overheat\O as\O much\O as\O other\O laptops\O .\O
    opinion: Easy\B to\O start\O up\O and\O does\O not\O overheat\O as\O much\O as\O other\O laptops\O .\O

여기서는 한글 리뷰로 아래 TOWE 형태의 데이터셋을 구축해보려고 한다. 이후 Token level classification으로 접근해야 하기 때문이다.

profile
Graduate School of DataScience, NLP researcher. AI engineer at NAVER PlaceAI

0개의 댓글