한국어 임베딩과 R언어

홍성학

2022년 9월 24일

한국어 임베딩과 R언어

요약

과거의 한국어 자연어처리와 텍스트마이닝에 대해서 돌아보고
현재 워드임베딩을 중심으로 바뀐 자연어처리 패러다임과 함께
R에서 사용가능한 관련 패키지와 방법에 대해 간단하게 소개합니다

내용 contents

  • 한국어 자연어처리와 텍스트마이닝의 어려운점
  • 자연어처리의 새 패러다임 워드임베딩

한국어 자연어처리 - 과거

과거 3가지 문제가 있었음

  • 글자의 문제 (인코딩의 문제)
  • 한국어 언어구조의 문제
  • 연구를 위한 지원과 자료 부족의 문제

한국어 자연어처리 - 현재

지금은

  • 글자의 문제 (인코딩의 문제) ➡️ UTF-8로 해결됨
  • 한국어 언어구조의 문제 ➡️ 포기
  • 연구를 위한 지원과 자료 부족의 문제 ➡️ 나아졌지만 영어권에 비해서 부족

R로 하는 한국어 자연어처리?

미리 말하는 결론

  • R은 텍스트 데이터를 처리하는데 매우 불리
  • Python은 좀 낫지만 여전히 불리
  • 다른 컴퓨터랭귀지도 마찬가지
  • 컴퓨터랭귀지 문제가 아니라 비정형 데이터와 자언어의 문제
  • 워드임베딩은 자연어에 비교적 비의존적으로 텍스트마이닝이 가능

한국어 자연어처리 - 형태소분석기

한국어를 위한 아주 좋은 형태소분석기, 구문분석기가 많지 않음

  • 은전한닢(MeCab), 노리(Nori), 꼬꼬마(Kkma), 한나눔(Hannanum), OKT, Soynlp, 구글 센텐스피스 (Google Sentence Piece)
    • 기계학습(HMM, CRF) 기반
    • 21세기세종계획 + 각자의 추가 말뭉치
  • 규칙기반(rule base)의 형태소분석기는 현재는 많이 쓰이지 않음
    • 처리 속도가 빠르고 매우 깔금한 결과가 도출됨
    • 룰(문법)을 고치기가 매우 어려움
    • 신조어, 문법파괴, 예외사항에 취약

한국어 자연어처리 - 형태소분석기

그림 출처

한국어 자연어처리 - 구문분석기

구문분석기 (Language Parser)

  • 입력된 문장을 파싱해서 트리구조로 분석
  • 주어, 목적어, 서술어 등을 찾을 수 있음

“아버지가 식사를 하신다”
“아버지가” ➡️ 주어 / “식사를” ➡️ 목적어 / “하신다” ➡️ 서술어

한국어 자연어처리 - 개체명인식기

개체명인식기 (NER, Named Entity Recognition)

개체명: 제품명, 지명, 인명, 기관명, 회사명, 브랜드명, 이메일, URL, 전화번호?

기생충은 스토리 만으로도 훌륭하고 일상 코메디 물과 어찌보면 스릴러가 함께 잘 혼합된 영화라고 볼 수 있습니다. 
그러나 이야기를 관통하고 많은 장면에서 보이는 계단을 통해 사회적인 높낮이와 실질적인 장소로서의 높낮이로 이야기를 풀어가고 있습니다. 
...