Practice makes perfect!

Week 15 자연어처리 데이터 기초 본문

Study/AI Tech

Week 15 자연어처리 데이터 기초

na0dev 2021. 11. 8. 13:53

1. 인공지능 모델 개발을 위한 데이터

데이터의 종류

  • 말뭉치 류 : 실제 텍스트 기반의 데이터   ex) 대화문, 기사, 댓글, 주석 말뭉치, 요약 말뭉치 등
  • 사전/데이터베이스 류 : 텍스트 분석 시 참조로 사용되는 자원   ex) 온톨로지, 워드넷, 시소러스 등

언어 모델 평가를 위한 종합적인 벤치마크 등장

  • GLUE (General Language Understanding Evaluation) : 자연어 이해 (2018)
  • Super GLUE (Difficult GLUE) : 고난도 자연어 이해 (2019)
  • KILT (Knowledge-Intensive Language Tasks) : 지식기반 자연어 이해(2020)
  • GEM (Natural Language Generation,Evaluation, Metrics) : 자연어 생성(2021)

2. 데이터 관련 용어 정리

  • text : 주석, 번역, 서문 및 부록 따위에 대한 본문이나 원문
  • corpus : 어떤 기준으로든 한 덩어리로 볼 수 있는 말의 뭉치(한 저작자의 저작 전부, 특정 분야 저작 전체)
  • data : 컴퓨터가 처리할 수 있는 문자, 숫자, 소리, 그림 따위의 형태로 된 정보

텍스트 데이터의 기본 단위

  • 영어 말뭉치의 계량 단위 : 단어
  • 한국어 말뭉치의 계량 단위 : 어절
  • 한국어의 "단어"는 9품사로 분석된다 (명사, 수사, 대명사, 동사, 형용사, 관형사, 부사, 조사, 감탄사)
  • 이 중 "조사"는 체언(명사, 수사, 대명사)과 붙어서 사용되기 때문에 띄어쓰기 단위와 단어의 단위가 일치하지 않다. 또한 "어미"는 하나의 품사로 인정되지 않으며, 형태 단위이므로 독립된 단어가 아니다.
  • 동사와 형용사는 형태를 바꿔 활용 가능하다

type & token

  • 토큰화 (tokenization) → 표제어 추출 (lemmatization) / 품사 주석 (POS tagging)
  • 토큰 : 언어를 다루는 가장 작은 기본 단위 (단어, 형태소, 서브워드를 기준으로 삼을 수 있다)
  • 타입 : 토큰의 대표 형태
  • 예시
    • "이 사람은 내가 알던 사람이 아니다"
    • 토큰화 : 이 사람 은 내 가 알 더 ㄴ 사람 이 아니 다
    • 표제어 추출 : 이, 사람, 나, 알다, 아니다
    • 품사 주석 : 이/MM 사람/NNG+은/JX 나/NP+가/JKS 알/VV+더/EP+ㄴ/ETM 사람/NNG+이/JKS 아니/VA+다/EF
    • x토큰 수 : 12개, 타입 수 : 10개 ('이'는 같은 타입이지만 다른 토큰)

N-gram

연속된 N개의 단위. 입력된 단위는 글자, 형태소, 단어, 어절 등으로 사용자가 지정할 수 있다.

 

표상 (representation)

  • 대표로 삼을 만큼 상징적인 것.
  • 자연어 처리 분야에서 표현으로 번역하기도 하나, 자연어를 컴퓨터가 이해할 수 있는 기법으로 표시한다는 차원에서 표상이 더 적합하다.
  • PLM, word2vec 등을 통해 단어나 텍스트를 수치화하는 것을 표상이라고 생각하면 된다.

3. 자연어처리 데이터 형식

HTML (Hypertext Markup Language)

  • 우리가 보는 웹 페이지가 어떻게 구조화되어 있는지 브라우저로 하여금 알 수 있도록 하는 마크업 언어
  • 보통 웹 페이지를 크롤링한 자료는 HTML 형식으로 되어있다
  • 파싱 라이브러리 (beautifulsoup 등)을 통해 태그를 제외한 순수한 텍스트만 추출하여 사용한다.

XML (EXtensible Markup Language)

  • 사람과 기계가 동시에 읽기 편한 구조.
  • 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장되는 다목적 마크업 언어
  • HTML과의 차이 : HTML은 태그가 지정되어 있으나, XML은 사용자가 임의로 지정하여 사용할 수 있다.

JSON(JavaScript Object Notation) & JSONL(JavaScript Object Notation Lines)

  • "속성-값" 또는 "키-값" 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷
  • 기본 자료형 : 수, 문자열, 불린, 배열, 객체, null
  • JSONL은 JSON을 한 라인으로 만든 것

CSV (comma-seperated values)

몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일

 

TSV(tab-seperated values)

몇 가지 필드를 탭(\t)로 구분한 텍스트 데이터 및 텍스트 파일

 

* csv와 tsv는 구분자(delimiter)의 차이

* 문자열 데이터 내에 쉼표(,)가 많이 포함돼있기 때문에, 혹시나 모를 오류를 방지하기 위해 tsv 사용을 권장한다.

반응형
Comments