[필수 과제] Data Preprocessing

210906

1. Spacy를 이용한 영어 전처리

import spacy
spacy_en = spacy.load('en')
  • 고급 자연어 처리를 위한 파이썬 오픈소스 라이브러리이다. 영어의 경우 토큰화를 사용하는 대표적인 도구 중 하나이며 그 외에는 NLTK가 있다. 한국어는 지원하지 않는다.

nlp = spacy.load('en_core_web_sm')
  • en_core_web_sm

    • en_core : consist of english language

    • web : written web text

      • blog, news, comments

    • sm : small

1.1 Tokenization

내용 없음

1.2 불용어 (Stopword)

불용어(Stop word)는 분석에 큰 의미가 없는 단어를 지칭한다. 예를 들어 the, a, an, is, I, my 등과 같이 문장을 구성하는 필수 요소지만 문맥적으로 큰 의미가 없는 단어가 이에 속한다.

  • spacy에서 지정한 불용어들은 다음과 같다. 내가 보기엔 불용어가 아닌 것 같은 단어도 있는 것 같다.

  • spacy로 만들어진 token들은 is_stop 이라는 속성을 가지며 이 값이 True일 경우 불용어에 해당한다. 위 코드는 불용어가 아닌 토큰들을 출력하는 코드

1.3 Lemmatization

표제어 추출이라고 하며, 단어의 어간을 추출하는 작업을 의미한다. 마치 study, studied, studying 에서 study라는 어간을 추출하는 것과 같다.

1.4 그외 token class의 attributes

  • is_punct : 문장부호에 해당하는 지

  • is_space : 공백에 해당하는지

  • shape : 글자수를 특정 문자의 연속체로 표현하며 각 특정 문자는 다음과 같은 의미가 있다.

    • x : 소문자

    • X : 대문자

    • d : 숫자

    • , : 기호

빈칸완성 과제 1

2. 한국어 전처리

2.1 Mecab을 이용한 형태소 분석 기반 토크나이징

  • Mecab은 Tokenizer 도구 중 하나이며 오픈 소스 형태소 분석 엔진이다. 이 중 Mecab-ko-dic은 한국어 형태소 분석을 하기 위한 프로젝트이다.

  • Mecabkonlpy 패키지와 eunjoen 패키지에 존재한다. 여기서는 konlpy 패키지를 사용했다.

  • operator 는 파이썬의 내장 연산자에 해당하는 효율적인 함수 집합을 반환한다.

    • operator.add(x, y)는 x+y와 동등한 표현이다.

    • 여기서는 operator.itemgetter 를 사용하기 위해 임포트했다.

      • 이는 주로 sorted와 같은 함수의 key 매개변수에 적용되어 다중 수준의 정렬을 가능하게 해주는 모듈이다.

      • 다음 예시로 살펴보자. 예시 참고 링크

  • 나이 순서대로 sort된 모습. itemgetter(2) 로 사용하면 성적순으로 정렬될 것이다. 대신에 lambda x : x[1] 과 같이도 사용할 수 있다.

  • 해당 item이 클래스의 객체일 경우는 attrgetter 를 사용해야 한다.

2.2 음절 단위 토크나이징 실습

내용 없음

빈칸완성 과제 2

Last updated

Was this helpful?