|
한국어 기반의 자연어 처리 핵심 알고리즘
최근 자연어 처리에 대한 열기가 매우 뜨겁다. 생활 속에서 인터넷 정보 검색, 검색어 자동 추천, 챗봇 등 다양한 자연어 처리 알고리즘을 경험하면서 컴퓨터학은 물론 다양한 학문 영역에서 자연어 처리에 대한 관심이 높아지고 있다. 그러나 여전히 자연어 처리 분야에서는 외국 서적을 번역하여 원리를 공부하고 영어 처리를 기반으로 한 소스 코드를 대상으로 알고리즘을 구현하고 있다. 자연어 처리 알고리즘을 공부하였다면 우리 언어인 한국어를 기반으로 창의적으로 문제를 해결하는 방법을 배워야 한다.
언어 인공지능의 핵심적인 역할을 하는 자연어 처리는 언어와 소프트웨어의 융합된 분야이다. 언어를 대상으로 하므로 해당 언어에 대한 이해가 필요하고 소프트웨어로 구현하기 위해서는 컴퓨터 공학에 대한 이해가 필요하다. 그러나 최근 자연어 처리 교재들은 대부분 오픈 소스를 매뉴얼식으로 조립하는 방법을 설명하는 것이 주류를 이루고 있다. 오픈 소스 프로젝트 덕분에 컴퓨터학 전공자는 물론 비전공자도 다양한 개발 도구와 소스 코드를 활용하여 웬만한 프로젝트는 어렵지 않게 배울 수 있게 되었지만, ‘한국어 처리’에 관한 오픈 소스는 찾기 어렵고 언어 체계에 대한 내용은 생략되거나 외부 프레임워크를 호출하여 간단하게 조작하는 방법만 제시하고 있다. 한국어 처리의 기본이 되는 한글 오토마타와 한국어 정보 검색은 한글 체계와 조합 원리를 기반으로 하는데 이에 대한 설명과 알고리즘 구현 과정을 명확하게 설명하거나 가르쳐주는 책은 찾아보기 어렵다.
이 책은 한국어를 기반으로 자연어 처리를 시작하는 독자를 위해서 준비한 것으로, 한국어 프로그래밍 및 한국어 처리의 이론과 실제를 망라한 이론서이자 응용서이다. 이 책은 한국어 기반의 정보 검색, 철자 교정, 검색어 추천 등을 구현할 수 있도록 자연어 처리 알고리즘을 알기 쉽게 설명하고, 자연어 처리 커널 소스 코드와 300개 이상의 예제 코드를 제공하였다. 특히 예제 코드는 입문자도 자연어 처리 프로그래밍을 경험하고 실습 수준이 아닌 실용적인 수준의 결과물을 구현하는 데에 실질적인 도움이 될 것이다.
PART 1 파이썬 한글 처리
Chapter 01 파이썬 기초
1. 한글 변수 및 함수 선언
2. 한글 텍스트 파일 열기(Open)
3. 한글 텍스트 파일 읽기(Read)
4. 한글 처리를 위한 내장 함수
Chapter 02 문자열의 한글 처리
1. 문자열(str) 생성과 인덱스
2. 문자열(str) 탐색
3. 문자열(str) 변경과 합성
4. 문자열(str) 추출과 분할
5. 문자열(str) 루프 처리
Chapter 03 목록형 자료의 한글 처리
1. 목록(list)
2. 튜플(tuple)
3. 사전(dict)
4. 집합(set)
Chapter 04 정렬과 컴프리헨션
1. 목록(list) 정렬(sort)
2. sorted( ) 함수 정렬
3. 컴프리헨션(comprehension)
PART 2 한글 공학 이론과 구현
Chapter 05 한글 코드와 유니코드
1. 한글 자모와 음절
2. 한글 코드의 역사와 종류
3. 유니코드(Unicode)
Chapter 06 한글 코드 변환 알고리즘
1. 음절형 한글 코드와 자모형 한글 코드
2. 음절의 자모 변환
3. 자모의 음절 변환
Chapter 07 한글 오토마타와 두벌식 자모 변환 알고리즘
1. 두벌식 조합과 자모
2. 한글 오토마타(Automata)
3. 음절의 두벌식 자모 변환
4. 반각 자모와 초/중/종성 자모의 두벌식 자모 변환
Chapter 08 한/영 변환 알고리즘
1. 영한 변환
2. 한영 변환
PART 3 정보 검색과 자연어 처리
Chapter 09 한국어 정보 검색 알고리즘
1. 선형 탐색
2. 역파일 색인과 자동 색인
3. 정보 검색 시스템 구현
Chapter 10 단어 및 토큰 처리
1. 단어 처리
2. 토큰과 문자 영역
3. 토큰 처리
Chapter 11 키워드 및 용례 추출 알고리즘
1. 키워드 추출
2. 키워드 용례 추출
3. 키워드 목록 정렬과 통계
Chapter 12 단어 유사도 측정 알고리즘
1. 자카드 거리(Jaccard Distance)
2. 타니모토 거리(Tanimoto Distance)
3. 레벤슈타인 거리(Levenshtein Distance)
4. 코사인 거리(Cosine Distance)
Chapter 13 철자 교정 알고리즘
1. 철자 교정 알고리즘의 원리
2. 초/중/종성 기반 철자 교정
3. 두벌식 자모 기반 철자 교정
Chapter 14 한/영 변환 철자 교정 알고리즘
1. 영한 변환 철자 교정
2. 한영 변환 철자 교정
Chapter 15 n-gram 기반 철자 교정 알고리즘
1. n-gram 기반 철자 교정 알고리즘의 원리
2. n-gram 기반 한글 철자 교정
3. n-gram 기반 한/영 변환 및 철자 교정
Chapter 16 검색어 자동 추천 알고리즘
1. 문자열 일치 탐색
2. 트라이(trie) 알고리즘
3. 두벌식 자모 기반 검색어 자동 추천
4. 초/중/종성 기반 검색어 자동 추천
Chapter 17 한/영 변환 자동 추천 알고리즘
1. 영한 변환 자동 추천
2. 한영 변환 자동 추천
3. 한글 및 영문자 단어 동시 자동 추천
Chapter 18 n-gram 기반 철자 교정 자동 추천 알고리즘
1. n-gram 기반 철자 교정 자동 추천의 원리
2. n-gram 기반 한글 철자 교정 자동 추천
3. n-gram 기반 한/영 변환 철자 교정 자동 추천
PART 4 데이터 기반 추천
Chapter 19 파이썬 통계 처리 기초
1. 통계 기초 및 데이터 시각화
2. 도수분포와 히스토그램
3. 산포도와 상관 계수
Chapter 20 영화 추천 알고리즘
1. 협업 필터링 기반 영화 추천
2. 콘텐츠 기반 영화 추천
3. 텍스트 기반 영화 추천
PART 5 부 록
1. t2bot 커널(kernel)과 예제 소스 코드
2. 웹 스크래퍼 구현
3. 영어 토큰 처리기와 어휘 빈도 사전
4. t2bot 자동 색인 시스템 매뉴얼
5. 유니코드의 한글 자모와 호환 문자 코드
박건숙
문학박사
상명대학교 대학원 한국학과 조교수(현재)
상명대학교 사범대학 국어교육과 전임강사(지냄)
서울대학교 국어교육연구소 선임연구원(지냄)
저서
<생각하고 표현하기, 한번쉬고 말하기>
<쓰기 교육을 위한 ⓔ논술 프로그램의 구현과 실제>
<한국어와 한국어 교육 Ⅰ>(공저)
<한국어 인공지능I : Python으로 시작하는 한글 처리>