Go to: Na-Rae Han's home page  

워크샵: 파이썬을 사용한 텍스트 처리

동국대학교, 2016년 8월 9일

개요

파이썬(Python)은 범용 프로그래밍 언어로써, 특히 자연언어 처리 분야에서 핵심적인 언어로 부각 받고 있는 컴퓨터 언어입니다. 그 장점으로 무엇보다도 초보자에게 있어 배우기 쉽다는 점을 들수가 있지요. 통사와 디자인 면에서 자연언어와 (그래봤자 영어입니다만...) 가깝기 때문에, 이공계가 아니라 전산쪽으로 전혀 문외한인 인문학부 전공자들에게 있어 접근하기 쉬운 언어이기도 합니다. 이번 워크샵에서는 Python 3와 NLTK (Natural Language Toolkit)을 사용해서 텍스트 처리, 또 코퍼스 처리가 어떻게 진행 되는지에 대해 소개해 보도록 합니다.


준비

Windows 노트북 컴퓨터 지침.
수강 전 다음을 설치: *설치 시에는 좀 꼼꼼히 체크해야 할 부분도 많고 데이터 다운로드 (전부 다 하려면 1.8기가) 시간도 걸리고 하니 충분히 여유를 가지고 할 것.


Exercise 1: 텍스트의 기본 처리

첫 연습은 하나의 짧은 문단에 대한 기본 처리입니다. 문자열로서의 텍스트의 속성, 이를 단어들의 리스트로 변환하는 법, 프린팅, 반복 구문(for loop)을 소개합니다.
  1. 스크립트 파일 ex1.py를 다운받아 데스크탑에 저장.
  2. Python 3 IDLE을 실행. 쉘 (shell) 창이 뜨는 것을 확인.
  3. File --> Open 메뉴를 통해 다운받은 ex1.py 스크립트 파일을 연다.
  4. 스크립트 파일에 들어있는 명령어들을 하나 하나, 차례대로 쉘 창에서 실행해 본다. (직접 입력 또는 복사 모두 가능.)
  5. 각 명령어가 어떻게 작동하는지 이해가 된다면, 이제 스크립트 파일 자체를 한번에 실행해 본다. Run --> Run Module 메뉴 또는 F5를 사용한다. 쉘이 재시동 되고, 모든 명령어가 차례로 실행되는 것을 볼 수 있다.


Exercise 2: 텍스트 파일 처리하기

두번째 연습은 스크립트 자체에 내포된 짧은 문단이 아닌, 외장된 텍스트 파일을 처리 방법을 소개합니다.
  1. gettysburg_address.txt (링컨의 게티스버그 연설) 파일을 다운받아 데스크탑에 저장.
  2. ex1.py를 다음과 같이 편집한다.
    1. mytext가 담긴 첫 11줄을 지우기 보다는 커멘트화 한다. 마우스로 11줄 선택 후, 메뉴에서 Format --> Comment Out
    2. 다음의 명령줄을 첨가한다.
      mytext = open("gettysburg_address.txt").read()
    이 명령은 텍스트 파일을 열어서 (open) 그 내용을 읽어 들여 (read) 결과물을 mytext 변수에 할당한다.
    즉 이전에 스크립트에 내포 되어 있던 짧은 문단을 텍스트 파일의 내용물로 바꿔친 결과가 된다.
  3. 이렇게 새로 편집된 ex1.py를 실행해 본다. (Run --> Run Module 또는 F5)
  4. 이제 결과가 게티스버그 연설문에 적용된 것을 볼 수 있다.


Exercise 3: NLTK 사용하기

세번째 연습은 NLTK에 내장된 토큰화 기능과 품사태깅 기능, 그리고 NLTK data에 포함된 코퍼스 사용법을 알아 봅니다.
  1. 스크립트 파일 ex3.py를 다운받아 데스크탑에 저장.
  2. Python IDLE의 File --> Open 메뉴를 통해 다운받은 ex3.py 스크립트 파일을 연다.
  3. 스크립트 파일에 들어있는 명령어들을 하나 하나, 차례대로 쉘 창에서 실행해 본다. (직접 입력 또는 복사 모두 가능.)
  4. 각 명령어가 어떻게 작동하는지 이해가 된다면, 이제 스크립트 파일 자체를 한번에 실행해 본다. Run --> Run Module 메뉴 또는 F5를 사용한다. 쉘이 재시동 되고, 모든 명령어가 차례로 실행되는 것을 볼 수 있다.


마치며

파이썬을 공부하는 방법에는 여러가지가 있지만, 프로그래밍 초보자라면 혼자 독학하기보다는 강의를 들을 것을 추천합니다.



Python help:

NLTK & NLP:
  • NLTK home
  • NLTK book
  • LING 1330/2330 Introduction to Computational Linguistics