[ASC] ABSA의 주요 task 소개와 데이터 탐색

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

아래 링크는 네이버블로그에 정리해뒀던 ABSA task와 사례입니다. 여기서는 실제 모델 과정을 소개하기 전에 아래 글들을 간략하게 요약 정리 합니다.
Task 소개 Link
실제 활용 사례 Link

Aspect-Based Sentiment Analysis란?


문서(리뷰 텍스트) 중 특정 category에 해당되는 내용들을 대상으로 감성분석을 수행. 예를 들면 위 그림처럼 Staffs와 Taste로 aspect를 나눠서 그에 대한 감성을 찾아내는 것.

관심 이유는? Sentiment Analysis는 NLP에서 기본이 되고 오래된 task이다. 그만큼 산업에서의 수요도 많다. 이커머스 모바일커머스가 더욱 부스팅되면서 많은 리뷰 데이터들이 생성되고 있기 때문에 앞으로도 꾸준히 사용될 task라 생각했다.
또한 현업에서부터 마켓/유저 분석을 자주 해왔기 때문에 오래된 관심분야이기도 해서 재미있게 연구해볼 수 있을 것이라 생각한다.

주요 task는?

ABSA는 하나의 task가 아니라 여러 세부 task로 구성되어 있다. SemEval이라는 NLP contest에서 정의한 task들을 소개한다.
https://alt.qcri.org/semeval2016/task5

SemEval-2014 task4

  1. aspect term extraction: 주어진 entity와 관련해서 aspect term이라 할 만한 단어 찾아내기. I liked the the service and the staff, but not the food.

  2. aspect term polarity: aspect term이 주어졌을 때 문장 내에서 그것과 관련된 감성 도출. "I hated their fajitas, but their salads were great." → {fajitas: neg., salads: pos.}

  3. aspect category detection: pre-defined aspect categories {e.g., price, food}가 들어있는지 확인. 정확한 term이 들어있지 않아도 추출. "The restaurant was expensive, but the menu was great." → {price, food}

  4. aspect category polarity: 해당 카테고리에 대한 감성

SemEval-2016 task5

  1. Sentence level ABSA

slot1 aspect category detection: 어떤 pre-defined된 Entity와 Attribute pair가 들어있는지 확인 (E#A가 하나의 카테고리가 됨, 아래 예시 참고)

slot2 opinion target expression(OTE): category(E#A)와 관련된 단어의 위치를 파악해내는 것. Opinion span과 조금 다름. 의견 있는 부분이 아니라 term을 찾아내는 것(관계된 단어, 대부분 명사, multi-words 일 수 있음)

slot3 sentiment polarity: E#A와 OTE가 있을 때, 감성을 분류

example.

"The So called laptop runs to slow and I hate it!" → {LAPTOP#OPERATION_PERFORMANCE, negative}, {LAPTOP#GENERAL, negative}

"Chow fun was dry; pork shu mai was more than usually greasy and had to share a table with loud and rude family." → {FOOD#QUALITY, "Chow fun", negative, from=0, to=8}, {FOOD#QUALITY, "pork shu mai", negative, from=18, to=30}

  1. Text-level ABSA: category(E#A)와 polarity를 찾아내는 것.

  2. Out-of-domain ABSA: 주어진 restaurant, laptop 데이터에서 학습한 모델을 다른 도메인의 데이터에서 테스트

주요 용어

Aspect Term: 문장 내에 포함된 aspect가 될 수 있는 단어

Aspect Category: 리뷰가 어떤 pre-defined 카테고리에 속할지 구분, 문장 속에 그 카테고리 이름이 직접 등장하지는 않음

Polarity: 극성이라는 뜻으로 감성의 정도를 뜻함(긍정, 부정, 중립 등)

Opinion Target Expression: aspect term과 비슷한 뜻으로 어떤 카테고리에 대해 직접적으로 표현하는 단어. 문장 속에 들어있음

AE: aspect term을 발견하고 추출하는 task(aspect extraction)

ASC: aspect sentiment classification, 어떤 aspect word에 대한 감성(극성)을 구분하는 task

데이터셋 예시


'We there were four of us arrived at noon - the place was empty - and the staff acted like we were imposing on them and they were very rude'

리뷰 문장과 카테고리, 카테고리에 대한 감성, 그리고 aspect term이 될 수 있는 target word가 표기되어 있다. 다만 랩탑 리뷰에 대한 데이터셋이나 sentihood(주변 장소에 대한 리뷰)에는 아쉽게도 target에 대한 라벨링이 되어 있지 못하다. 그래서 이번에는 Pre-defined 된 카테고리에 대한 감성만 추출해내는 모델을 연습해보았다.

이 포스팅 시리즈에서는 BERT를 활용한 ABSA task 페이퍼 소개와 직접 응용한 모델들을 소개할 계획이다.

profile
Graduate School of DataScience, NLP researcher

1개의 댓글

comment-user-thumbnail
2023년 6월 30일

안녕하세요! 글 잘 보았습니다. 혹시.. 한국어 ADSA 데이터셋은 어디서 찾을 수 있는지 아시나요? 어떻게 성능평가 하는지 보고 태스크 평가하는 메트릭과 상황을 만들어서 실험을 해보고 싶은데 정보가 많이 안나와서 ㅜㅜ 감사합니다

답글 달기