본문 바로가기

카테고리 없음

한국어 자연어 처리 분류 모델 학습을 위한 텍스트 데이터 세트 소개

※ 이 글은 필자의 경험을 바탕으로 쓰였으며, 잘못된 정보를 포함하고 있을 수 있습니다. 

 

  한국어 자연어 처리 인공지능(AI)를 처음 공부하는 사람에게 처음으로 자주 다루어지는 데이터 세트는 "네이버 영화 리뷰 데이터 세트(NSMC)"다. 실제로 처음 한국어 자연어 처리 공부를 할 때, 분류 모델을 학습하기 위하여 굉장히 자주 사용하는 데이터 세트다. 자연어 처리를 처음 공부하는 사람이라면 꼭 알아두면 좋다. 혹은 한국어 자연어 처리 서비스를 개발하는 경우, 자주 사용된다.

 

1. 네이버 영화 리뷰 (NSMC) 데이터 세트

 

  본 데이터 세트는 네이버 영화 리뷰 문자열에 대하여 긍정 혹은 부정 정보를 담은 레이블이 포함된 텍스트 데이터 세트다.

 

  ▶ GitHub 링크: https://github.com/e9t/nsmc

 

GitHub - e9t/nsmc: Naver sentiment movie corpus

Naver sentiment movie corpus. Contribute to e9t/nsmc development by creating an account on GitHub.

github.com

 

  테스트 데이터의 텍스트 파일(.txt) 파일을 확인해 보면, 다음과 같은 내용을 확인할 수 있다.

 

 

  네이버 영화 리뷰 데이터 세트에 대하여 알아보자. 이 데이터 세트는 총 20만 개의 텍스트로 구성되어 있고, 긍정 및 부정에 대한 정보가 절반씩 포함되어 있다.

 

  - 전체 데이터 중에서 10만 개의 리뷰 데이터는 부정(negative)으로 분류되어 있다.

    - 원래 리뷰 중에서 별점이 1~4점으로 매겨진 리뷰에 적용되었다고 한다.

  - 전체 데이터 중에서 10만 개의 리뷰 데이터는 긍정(postiive)으로 분류되어 있다.

    - 원래 리뷰 중에서 별점이 9~10점으로 매겨진 리뷰에 적용되었다고 한다.

 

  이때, 구체적으로 전체 데이터 20만 개 중에서, 학습 데이터 및 평가 데이터의 구분은 다음과 같이 구성된다.

 

  - 학습 데이터 개수: 15만 개
  - 테스트 데이터 개수: 5만 개

한국어 자연어 처리 분류 모델에서 굉장히 자주 사용되는 데이터 세트라는 점에서,
자연어 처리를 처음 공부하는 사람이라면 꼭 알아두면 좋다.
혹은 한국어 자연어 처리 서비스를 개발하는 경우, 자주 사용된다.

참고로, 간단한 모델을 사용하면 정확도(accuracy) 80% 정도를 얻을 수 있으며,
최근에 성능이 뛰어난 트랜스포머 및 BERT를 사용하는 경우, SOTA 성능으로
정확도 90% 정도를 얻을 수 있다.

 

2. 한국어 편견(bias) 및 혐오(hate) 발언 분류 데이터 세트

 

  본 데이터 세트는 네이버 영화 리뷰 문자열에 대하여 긍정 혹은 부정 정보를 담은 레이블이 포함된 텍스트 데이터 세트다.

 

  - 한국어로 작성된 혐오(hate) 발언(speech) 관련 텍스트를 포함한 데이터 세트다.

  - 원본 Github 링크에서는 데이터 세트를 (1) labeled(2) unlabeled(3) news_title로 구분하였다.

 

  ▶ GitHub 링크https://github.com/kocohub/korean-hate-speech

 

GitHub - kocohub/korean-hate-speech: Korean HateSpeech Dataset

Korean HateSpeech Dataset. Contribute to kocohub/korean-hate-speech development by creating an account on GitHub.

github.com

 

  연애 관련 기사(뉴스)에 달린 댓글에 대하여 (1) 편견(bias) 및 (2) 혐오(hate)에 대한 정보를 포함하는 텍스트 데이터를 수집했다고 한다. 그래서 다양한 악성 댓글(악플)과 선한 댓글(선플)에 대한 텍스트를 확인할 수 있다.

 

  이떄, 총 9,381개 텍스트를 포함한 레이블이 포함된(labeled) 텍스트(text) 데이터 세트는 구체적으로 다음과 같이 분류된다. 사람이 직접 레이블을 진행한 댓글(comment) 데이터라고 한다.

 

  - 학습 데이터 세트(training dataset): 총 7,896개
  - 검증 데이터 세트(validation dataset): 총 471개
  - 테스트 데이터 세트(test dataset): 총 974개

  특정한 연애 뉴스에 달린 댓글을 수집한다. 각 데이터는 다음과 같은 속성(property)으로 구성된다. 구체적으로 각 댓글은 두 가지 측면에서 레이블 정보를 2개 가지고 있다. 구체적으로 공식 GitHub 저장소에서는 "Each comment is annotated on two aspects."라고 명시되어 있다.

- 기사의 제목(title) 문자열
- 댓글(comment) 문자열
- 사회적 편견(social bias): {"없음(none)", "성별(gender)", "기타(others)"} 중에서 하나를 선택
- 혐오 표현(hate speech): {"없음(none)", "공격적(offensive)", "혐오성(hate)"} 중에서 하나를 선택

  기본적으로 여러 개의 클래스 중에서 하나를 선택하는 경우로 볼 수 있기 때문에, 이는 다중 클래스(multi-class) 분류 상황으로 이해할 수 있다. 사실 필자가 생각하기에는 "혐오 표현 분류" 작업(task)에 대해서는 공격성과 혐오성이 동시에 발현될 수 있는데, 이를 multi-class 분류 문제로 보는 것은 조금 의아하긴 하다.

  아무튼 multi-class 분류 모델로 보고, 이를 판단하는 작업에 적합한 데이터 세트다. 자주 사용되는 한국어 텍스트 분류 데이터 세트의 경우, 대부분 이진 분류(binary classification) 목적으로 만들어진 텍스트 데이터 세트인 경우가 많기 때문에, 이 데이터 세트는 유용하게 사용될 수 있다. 다시 말해 3개의 클래스(카테고리) 중 하나를 선택하도록 모델을 학습할 수 있다.

 

  참고로 위 링크는 원본 논문 데이터 세트 깃 허브 주소이다. (필자가 찾은) 이를 조금 더 사용하기 편리하게 정리해 놓은 GitHub 저장소(repository)가 있는데, 다음과 같다. 여기에서는 KoELECTRA를 이용한 학습 방법도 제안하고 있다.

 

  ▶ GitHub 링크: https://github.com/monologg/korean-hate-speech-koelectra

 

GitHub - monologg/korean-hate-speech-koelectra: Bias, Hate classification with KoELECTRA 👿

Bias, Hate classification with KoELECTRA 👿. Contribute to monologg/korean-hate-speech-koelectra development by creating an account on GitHub.

github.com

 

  검증(validation) 데이터 세트의 내용을 확인해 보면, 다음과 같은 내용을 확인할 수 있다. 데이터 수집 및 레이블은 모두 원본 논문의 저자가 수집하고 레이블한 것으로 보인다.