SlideShare ist ein Scribd-Unternehmen logo
1 von 30
한글 형태소 분석하기 기초
JAVACAFE
김흥래
개요
• 텍스트 처리를 위한 기본적인 요소 이해하기
• 토큰분리 (Tokenization)
• 청크화 (Chunking)
• 구문분석 (Parsing)
• 품사 태그 부착 (POS 태깅, Part of speech)
언어의 기초
• 분석하고자 하는 텍스트를 구성하는 언어의 문법 지식이 약간
필요함.
• 주어, 동사 찾기
• 수식어 찾기 (부사, 형용사)
• 구(Phrase), 절(Clause), 문장(Sentence)
언어의 기초
• 단어는 품사로 나뉜다
꼬꼬마 형태소분석기 품사표 http://kkma.snu.ac.kr/documents/index.jsp?doc=postag
Mecab 형태소분석기 품사표 https://docs.google.com/spreadsheets/d/1-9blXKjtjeKZqsf4NzHeYJCrr49-nXeRF6D80udfcwY/edit#gid=589544265
언어의 기초
• 품사
• 명사는 보통 사람, 장소, 물건 같은것을 정의한다.
• 동사는 행동을 정의한다.
• 부사, 형용사, ….
• 구
• 나열된 단어는 여러 개의 단어로 구성될 수 있는 구에 대한 구조를 갖는다.
• 명사구 “the happy girl”
• 한정사 the와 형용사 happy로 이루어지고 일반명사 girl을 루트로 갖는다.
언어의 기초
• 절
• 절은 문장을 구성하기 위한 최소 단위이다.
• 절은 최소한 명사구(주어)와 동사구(술어)로 구성되는데, 이 구는 흔히
동사와 다른 명사구로 이뤄진다.
• 구는 절을 만들기 위해 서로 결합될 수 있다.
• The fox jumped the fence.
• 위 문장은 명사구 The fox (주어)와 동사구 jumped the fence로 이루어
진 절이다.
• 동사구는 다시 세분화 되어 명사구 the fence(목적어)와 동사 jumped
가 결합되어 구성되어 있다.
구문분석 (Parsing)
• 구문의 특성
• 어떤 문장이든지 절의 집합으로 분해될 수 있다.
• 그 절들은 다시 구의 집합으로 분해될 수 있다.
• 구는 다시 특정 품사를 갖는 단어들로 분해될 수 있다.
• 구문분석
• 품사, 구, 절과 그것들 사이의 관계를 밝히는 작업을 구문 분석이라고
한다.
말뭉치 (Corpus)
• 자연연어 연구를 위해 특정한 목적을 가지고 언어의 표본을 추
출한 집합이다.
• 형태소 분석기를 학습시키기 위해서 많은 말뭉치를 이용하면
할수록 정확도가 높아진다. (확률모델)
세종 한국어 말뭉치
21세기 세종 계획은 1997년에 그 계획이 수립되어
1998년부터 2007년까지 10년 동안 시행
대부분의 한글 형태소 분석기들이 사용하고 있는 사전이
여기서 파생됨
https://ithub.korean.go.kr/user/corpus/corpusSearchManager.do
형태소분석 (Morphology)
• 형태소의 특성
• 대부분의 언어에서 단어는 형태소(품사)로 구성된다.
• 단어는 원형(root form)을 가진다.
• 단어가 어떻게 사용되는가에 따라 다양한 접사(접두사, 접미사)를 가진
다.
형태소분석 (Morphology)
꼬꼬마 형태소분석기 http://kkma.snu.ac.kr/concordancer
기아자동차가 통상임금 판결의 여파로 10년 만에 분기 적자를 기록했습니다.
POS 태깅
• 단어를 명사, 동사, 형용사 같은 품사(POS, part of speech) 확인을 하고 태
깅한다.
• POS 태깅은 이미 POS 태그를 붙여놓은 문서의 말뭉치를 이용하여 만들어
진 통계모델을 이용한다.
기아자동차가 통상임금 판결의 여파로 10년 만에 분기 적자를 기록했습니다.
기아/NNG+자동차/NNG+가/JKS 통상/NNG+임금/NNG 판결/NNG+의/JKG
여파/NNG+로/JKM 10/NR+년/NNM 만/NNB+에/JKM 분기/NNG
적자/NNG+를/JKO 기록/NNG+하/XSV+었/EPT+습니다/EFN+./SF
POS 태깅
• 형태소 분석기마다 형태소 분석 결과가 달라질 수 있다.
• 대표적인 오픈소스 한글 형태소 비교
• http://konlpy.org/ko/v0.4.4/morph/
POS 태깅
• POS 태깅 기술이 인공지능과 만나면 객체 식별도 가능해진다.
• 향상된 동음이의어 처리
• 거미(가수) vs 거미(곤충)
• 파리(프랑스) vs 파리(곤충)
• https://cloud.google.com/natural-language/
그럼 이쯤에서 다시 Elasticsearch로 돌아가 볼까요?
마지막으로 오늘 소개 할 한글 형태소 분석기
1. Arirang
2. Seunjeon
3. OpenKoreaText
4. Nori
루씬 한글 분석기 커뮤니티에서 개발중인 한글 형태소 분석기
http://cafe.naver.com/korlucene
스칼라로 개발된 Mecab 기반의 한글 형태소 분석기
https://bitbucket.org/eunjeon/seunjeon/src/master
트위터에서 개발한 한글 형태소 분석기
https://github.com/open-korean-text
Lucene에서 제공하는 공식 한국어 형태소 분석기
https://github.com/apache/lucene-solr/tree/master/lucene/analysis/nori
https://www.elastic.co/kr/blog/nori-the-official-elasticsearch-plugin-for-korean-language-analysis
플러그인 다운로드
https://github.com/javacafe-project/elastic-book-etc
설치 및 제거
1) 설치
bin/elasticsearch-plugin install https://github.com/javacafe-
project/elastic-book-etc/raw/master/plugin/elasticsearch-analysis-
seunjeon-6.4.3.zip
2) 제거
bin/elasticsearch-plugin remove analysis-seunjeon
테스트 (기본)
설치 및 제거
1) 설치
bin/elasticsearch-plugin install analysis-nori
2) 제거
bin/elasticsearch-plugin remove analysis-nori
테스트 (기본)
한글 형태소 분석기 비교하기
테스트1 (아버지가 방에 들어가신다.)
테스트2 (아버지가방에들어가신다.)
테스트3 (주차장)
한글 형태소 분석기 비교하기
테스트1 (아버지가 방에 들어가신다.)
한글 형태소 분석기 비교하기
테스트2 (아버지가방에들어가신다.)
한글 형태소 분석기 비교하기
테스트3 (주차장)

Weitere ähnliche Inhalte

Was ist angesagt?

CSCE181 Big ideas in NLP
CSCE181 Big ideas in NLPCSCE181 Big ideas in NLP
CSCE181 Big ideas in NLPInsoo Chung
 
Page Object in XCUITest
Page Object in XCUITestPage Object in XCUITest
Page Object in XCUITestJz Chang
 
Visual C++で使えるC++11
Visual C++で使えるC++11Visual C++で使えるC++11
Visual C++で使えるC++11nekko1119
 
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくったCommon Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくったt-sin
 
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...Databricks
 
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測Toshiyuki Hirata
 
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driverJúlio de Lima
 
Programming with Python and PostgreSQL
Programming with Python and PostgreSQLProgramming with Python and PostgreSQL
Programming with Python and PostgreSQLPeter Eisentraut
 
한국어 띄어쓰기 프로그램 도전기
한국어 띄어쓰기 프로그램 도전기한국어 띄어쓰기 프로그램 도전기
한국어 띄어쓰기 프로그램 도전기Ted Taekyoon Choi
 
NLTK - Natural Language Processing in Python
NLTK - Natural Language Processing in PythonNLTK - Natural Language Processing in Python
NLTK - Natural Language Processing in Pythonshanbady
 
Functional Tests Automation with Robot Framework
Functional Tests Automation with Robot FrameworkFunctional Tests Automation with Robot Framework
Functional Tests Automation with Robot Frameworklaurent bristiel
 
Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot frameworkPrayoch Rujira
 
C++でできる!OS自作入門
C++でできる!OS自作入門C++でできる!OS自作入門
C++でできる!OS自作入門uchan_nos
 
From NLP to text mining
From NLP to text mining From NLP to text mining
From NLP to text mining Yi-Shin Chen
 
A Simple Explanation of XLNet
A Simple Explanation of XLNetA Simple Explanation of XLNet
A Simple Explanation of XLNetDomyoung Lee
 
マーク&スイープ勉強会
マーク&スイープ勉強会マーク&スイープ勉強会
マーク&スイープ勉強会7shi
 
Visual Studio を使わず .NET する
Visual Studio を使わず .NET するVisual Studio を使わず .NET する
Visual Studio を使わず .NET するm ishizaki
 
Nlp toolkits and_preprocessing_techniques
Nlp toolkits and_preprocessing_techniquesNlp toolkits and_preprocessing_techniques
Nlp toolkits and_preprocessing_techniquesankit_ppt
 

Was ist angesagt? (20)

CSCE181 Big ideas in NLP
CSCE181 Big ideas in NLPCSCE181 Big ideas in NLP
CSCE181 Big ideas in NLP
 
Page Object in XCUITest
Page Object in XCUITestPage Object in XCUITest
Page Object in XCUITest
 
Visual C++で使えるC++11
Visual C++で使えるC++11Visual C++で使えるC++11
Visual C++で使えるC++11
 
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくったCommon Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくった
 
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...
 
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
 
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
 
Programming with Python and PostgreSQL
Programming with Python and PostgreSQLProgramming with Python and PostgreSQL
Programming with Python and PostgreSQL
 
한국어 띄어쓰기 프로그램 도전기
한국어 띄어쓰기 프로그램 도전기한국어 띄어쓰기 프로그램 도전기
한국어 띄어쓰기 프로그램 도전기
 
NLTK - Natural Language Processing in Python
NLTK - Natural Language Processing in PythonNLTK - Natural Language Processing in Python
NLTK - Natural Language Processing in Python
 
Functional Tests Automation with Robot Framework
Functional Tests Automation with Robot FrameworkFunctional Tests Automation with Robot Framework
Functional Tests Automation with Robot Framework
 
Robot framework
Robot frameworkRobot framework
Robot framework
 
Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot framework
 
C++でできる!OS自作入門
C++でできる!OS自作入門C++でできる!OS自作入門
C++でできる!OS自作入門
 
From NLP to text mining
From NLP to text mining From NLP to text mining
From NLP to text mining
 
A Simple Explanation of XLNet
A Simple Explanation of XLNetA Simple Explanation of XLNet
A Simple Explanation of XLNet
 
マーク&スイープ勉強会
マーク&スイープ勉強会マーク&スイープ勉強会
マーク&スイープ勉強会
 
圏とHaskellの型
圏とHaskellの型圏とHaskellの型
圏とHaskellの型
 
Visual Studio を使わず .NET する
Visual Studio を使わず .NET するVisual Studio を使わず .NET する
Visual Studio を使わず .NET する
 
Nlp toolkits and_preprocessing_techniques
Nlp toolkits and_preprocessing_techniquesNlp toolkits and_preprocessing_techniques
Nlp toolkits and_preprocessing_techniques
 

Ähnlich wie 생초보를 위한 한글 형태소 분석하기

자연어처리 소개
자연어처리 소개자연어처리 소개
자연어처리 소개Jin wook
 
한국어 자연어처리 101
한국어 자연어처리 101한국어 자연어처리 101
한국어 자연어처리 101Junyoung Park
 
1910 tfkr3 warnikchow
1910 tfkr3 warnikchow1910 tfkr3 warnikchow
1910 tfkr3 warnikchowWarNik Chow
 
Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Taekyung Han
 
한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용r-kor
 
[NUGU Conference 2018] 세션 B-3.2 : 지식기술 소개 2
[NUGU Conference 2018] 세션 B-3.2 : 지식기술 소개 2[NUGU Conference 2018] 세션 B-3.2 : 지식기술 소개 2
[NUGU Conference 2018] 세션 B-3.2 : 지식기술 소개 2NUGU developers
 
CoreDot TechSeminar 2018 - Session3 Doh Seungheon
CoreDot TechSeminar 2018 - Session3 Doh SeungheonCoreDot TechSeminar 2018 - Session3 Doh Seungheon
CoreDot TechSeminar 2018 - Session3 Doh SeungheonCore.Today
 
Sharing development experience of educational apps for the hard of hearing (P...
Sharing development experience of educational apps for the hard of hearing (P...Sharing development experience of educational apps for the hard of hearing (P...
Sharing development experience of educational apps for the hard of hearing (P...Youngki Moon
 
기계번역과 통계기반 자연어 처리
기계번역과 통계기반 자연어 처리기계번역과 통계기반 자연어 처리
기계번역과 통계기반 자연어 처리Seonbae Kim
 
제3장 색인어 추출을 위한 언어학적 처리
제3장 색인어 추출을 위한 언어학적 처리제3장 색인어 추출을 위한 언어학적 처리
제3장 색인어 추출을 위한 언어학적 처리Chang-yong Jung
 
230404_korean_text_preprocessing.pdf
230404_korean_text_preprocessing.pdf230404_korean_text_preprocessing.pdf
230404_korean_text_preprocessing.pdfminalang
 
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?ssuseraf7587
 
글로벌소프트웨어개발 V1.0
글로벌소프트웨어개발 V1.0글로벌소프트웨어개발 V1.0
글로벌소프트웨어개발 V1.0KangJin Choi
 
GNMT로 알아보는 신경망 기반 기계번역
GNMT로 알아보는 신경망 기반 기계번역GNMT로 알아보는 신경망 기반 기계번역
GNMT로 알아보는 신경망 기반 기계번역Byeong il Ko
 
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기
<Little Big Data #1> 한국어 채팅 데이터로  머신러닝 하기<Little Big Data #1> 한국어 채팅 데이터로  머신러닝 하기
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기Han-seok Jo
 
문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine TranslationNAVER LABS
 
[Word Embedding] A Brief Introduction to Fasttext - Yonghee Cheon
[Word Embedding] A Brief Introduction to Fasttext - Yonghee Cheon[Word Embedding] A Brief Introduction to Fasttext - Yonghee Cheon
[Word Embedding] A Brief Introduction to Fasttext - Yonghee CheonYongheeCheon
 

Ähnlich wie 생초보를 위한 한글 형태소 분석하기 (19)

자연어처리 소개
자연어처리 소개자연어처리 소개
자연어처리 소개
 
한국어 자연어처리 101
한국어 자연어처리 101한국어 자연어처리 101
한국어 자연어처리 101
 
2206 Modupop!
2206 Modupop!2206 Modupop!
2206 Modupop!
 
1910 tfkr3 warnikchow
1910 tfkr3 warnikchow1910 tfkr3 warnikchow
1910 tfkr3 warnikchow
 
Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차Python을 활용한 챗봇 서비스 개발 1일차
Python을 활용한 챗봇 서비스 개발 1일차
 
한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용
 
[NUGU Conference 2018] 세션 B-3.2 : 지식기술 소개 2
[NUGU Conference 2018] 세션 B-3.2 : 지식기술 소개 2[NUGU Conference 2018] 세션 B-3.2 : 지식기술 소개 2
[NUGU Conference 2018] 세션 B-3.2 : 지식기술 소개 2
 
CoreDot TechSeminar 2018 - Session3 Doh Seungheon
CoreDot TechSeminar 2018 - Session3 Doh SeungheonCoreDot TechSeminar 2018 - Session3 Doh Seungheon
CoreDot TechSeminar 2018 - Session3 Doh Seungheon
 
파이썬과 자연어 2 | Sentence
파이썬과 자연어 2 | Sentence 파이썬과 자연어 2 | Sentence
파이썬과 자연어 2 | Sentence
 
Sharing development experience of educational apps for the hard of hearing (P...
Sharing development experience of educational apps for the hard of hearing (P...Sharing development experience of educational apps for the hard of hearing (P...
Sharing development experience of educational apps for the hard of hearing (P...
 
기계번역과 통계기반 자연어 처리
기계번역과 통계기반 자연어 처리기계번역과 통계기반 자연어 처리
기계번역과 통계기반 자연어 처리
 
제3장 색인어 추출을 위한 언어학적 처리
제3장 색인어 추출을 위한 언어학적 처리제3장 색인어 추출을 위한 언어학적 처리
제3장 색인어 추출을 위한 언어학적 처리
 
230404_korean_text_preprocessing.pdf
230404_korean_text_preprocessing.pdf230404_korean_text_preprocessing.pdf
230404_korean_text_preprocessing.pdf
 
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
[Langcon2020]롯데의 딥러닝 모델은 어떻게 자기소개서를 읽고 있을까?
 
글로벌소프트웨어개발 V1.0
글로벌소프트웨어개발 V1.0글로벌소프트웨어개발 V1.0
글로벌소프트웨어개발 V1.0
 
GNMT로 알아보는 신경망 기반 기계번역
GNMT로 알아보는 신경망 기반 기계번역GNMT로 알아보는 신경망 기반 기계번역
GNMT로 알아보는 신경망 기반 기계번역
 
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기
<Little Big Data #1> 한국어 채팅 데이터로  머신러닝 하기<Little Big Data #1> 한국어 채팅 데이터로  머신러닝 하기
<Little Big Data #1> 한국어 채팅 데이터로 머신러닝 하기
 
문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation
 
[Word Embedding] A Brief Introduction to Fasttext - Yonghee Cheon
[Word Embedding] A Brief Introduction to Fasttext - Yonghee Cheon[Word Embedding] A Brief Introduction to Fasttext - Yonghee Cheon
[Word Embedding] A Brief Introduction to Fasttext - Yonghee Cheon
 

Mehr von 흥래 김

검색엔진과 DB Like 검색의 결과가 다른 이유
검색엔진과 DB Like 검색의 결과가 다른 이유검색엔진과 DB Like 검색의 결과가 다른 이유
검색엔진과 DB Like 검색의 결과가 다른 이유흥래 김
 
Elasticsearch와 Python을 이용하여 맨땅에서 데이터 분석하기
Elasticsearch와 Python을 이용하여 맨땅에서 데이터 분석하기Elasticsearch와 Python을 이용하여 맨땅에서 데이터 분석하기
Elasticsearch와 Python을 이용하여 맨땅에서 데이터 분석하기흥래 김
 
한글 자동완성 구현하기
한글 자동완성 구현하기한글 자동완성 구현하기
한글 자동완성 구현하기흥래 김
 
한글 자모 분석 원리
한글 자모 분석 원리한글 자모 분석 원리
한글 자모 분석 원리흥래 김
 
한글 형태소 분석기 활용하기
한글 형태소 분석기 활용하기한글 형태소 분석기 활용하기
한글 형태소 분석기 활용하기흥래 김
 
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기흥래 김
 
Spring di chapter2
Spring di chapter2Spring di chapter2
Spring di chapter2흥래 김
 
Spring di chapter1
Spring di chapter1Spring di chapter1
Spring di chapter1흥래 김
 
5강 코드효율성
5강 코드효율성5강 코드효율성
5강 코드효율성흥래 김
 
2. lambda expression
2. lambda expression2. lambda expression
2. lambda expression흥래 김
 
1. introduction to java8
1. introduction to java81. introduction to java8
1. introduction to java8흥래 김
 
Spring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msaSpring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msa흥래 김
 
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE  [제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE 흥래 김
 
[DevOn 2013] Dynamic web proxy
[DevOn 2013] Dynamic web proxy[DevOn 2013] Dynamic web proxy
[DevOn 2013] Dynamic web proxy흥래 김
 
Apache http component
Apache http componentApache http component
Apache http component흥래 김
 
플랫폼 통합을 위한 Client Module 개발 & 배포
플랫폼 통합을 위한 Client Module 개발 & 배포플랫폼 통합을 위한 Client Module 개발 & 배포
플랫폼 통합을 위한 Client Module 개발 & 배포흥래 김
 
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화흥래 김
 
Spring 3.1에서 ehcache 활용 전략
Spring 3.1에서 ehcache 활용 전략Spring 3.1에서 ehcache 활용 전략
Spring 3.1에서 ehcache 활용 전략흥래 김
 
[2012 자바카페 OPEN 세미나] Introduction to google guava
[2012 자바카페 OPEN 세미나] Introduction to google guava[2012 자바카페 OPEN 세미나] Introduction to google guava
[2012 자바카페 OPEN 세미나] Introduction to google guava흥래 김
 

Mehr von 흥래 김 (20)

검색엔진과 DB Like 검색의 결과가 다른 이유
검색엔진과 DB Like 검색의 결과가 다른 이유검색엔진과 DB Like 검색의 결과가 다른 이유
검색엔진과 DB Like 검색의 결과가 다른 이유
 
Elasticsearch와 Python을 이용하여 맨땅에서 데이터 분석하기
Elasticsearch와 Python을 이용하여 맨땅에서 데이터 분석하기Elasticsearch와 Python을 이용하여 맨땅에서 데이터 분석하기
Elasticsearch와 Python을 이용하여 맨땅에서 데이터 분석하기
 
한글 자동완성 구현하기
한글 자동완성 구현하기한글 자동완성 구현하기
한글 자동완성 구현하기
 
한글 자모 분석 원리
한글 자모 분석 원리한글 자모 분석 원리
한글 자모 분석 원리
 
한글 형태소 분석기 활용하기
한글 형태소 분석기 활용하기한글 형태소 분석기 활용하기
한글 형태소 분석기 활용하기
 
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
엘라스틱서치 클러스터로 수십억 건의 데이터 운영하기
 
Spring di chapter2
Spring di chapter2Spring di chapter2
Spring di chapter2
 
Spring di chapter1
Spring di chapter1Spring di chapter1
Spring di chapter1
 
5강 코드효율성
5강 코드효율성5강 코드효율성
5강 코드효율성
 
3. stream api
3. stream api3. stream api
3. stream api
 
2. lambda expression
2. lambda expression2. lambda expression
2. lambda expression
 
1. introduction to java8
1. introduction to java81. introduction to java8
1. introduction to java8
 
Spring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msaSpring boot와 docker를 이용한 msa
Spring boot와 docker를 이용한 msa
 
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE  [제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
 
[DevOn 2013] Dynamic web proxy
[DevOn 2013] Dynamic web proxy[DevOn 2013] Dynamic web proxy
[DevOn 2013] Dynamic web proxy
 
Apache http component
Apache http componentApache http component
Apache http component
 
플랫폼 통합을 위한 Client Module 개발 & 배포
플랫폼 통합을 위한 Client Module 개발 & 배포플랫폼 통합을 위한 Client Module 개발 & 배포
플랫폼 통합을 위한 Client Module 개발 & 배포
 
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
 
Spring 3.1에서 ehcache 활용 전략
Spring 3.1에서 ehcache 활용 전략Spring 3.1에서 ehcache 활용 전략
Spring 3.1에서 ehcache 활용 전략
 
[2012 자바카페 OPEN 세미나] Introduction to google guava
[2012 자바카페 OPEN 세미나] Introduction to google guava[2012 자바카페 OPEN 세미나] Introduction to google guava
[2012 자바카페 OPEN 세미나] Introduction to google guava
 

생초보를 위한 한글 형태소 분석하기

  • 1. 한글 형태소 분석하기 기초 JAVACAFE 김흥래
  • 2. 개요 • 텍스트 처리를 위한 기본적인 요소 이해하기 • 토큰분리 (Tokenization) • 청크화 (Chunking) • 구문분석 (Parsing) • 품사 태그 부착 (POS 태깅, Part of speech)
  • 3. 언어의 기초 • 분석하고자 하는 텍스트를 구성하는 언어의 문법 지식이 약간 필요함. • 주어, 동사 찾기 • 수식어 찾기 (부사, 형용사) • 구(Phrase), 절(Clause), 문장(Sentence)
  • 4. 언어의 기초 • 단어는 품사로 나뉜다 꼬꼬마 형태소분석기 품사표 http://kkma.snu.ac.kr/documents/index.jsp?doc=postag Mecab 형태소분석기 품사표 https://docs.google.com/spreadsheets/d/1-9blXKjtjeKZqsf4NzHeYJCrr49-nXeRF6D80udfcwY/edit#gid=589544265
  • 5. 언어의 기초 • 품사 • 명사는 보통 사람, 장소, 물건 같은것을 정의한다. • 동사는 행동을 정의한다. • 부사, 형용사, …. • 구 • 나열된 단어는 여러 개의 단어로 구성될 수 있는 구에 대한 구조를 갖는다. • 명사구 “the happy girl” • 한정사 the와 형용사 happy로 이루어지고 일반명사 girl을 루트로 갖는다.
  • 6. 언어의 기초 • 절 • 절은 문장을 구성하기 위한 최소 단위이다. • 절은 최소한 명사구(주어)와 동사구(술어)로 구성되는데, 이 구는 흔히 동사와 다른 명사구로 이뤄진다. • 구는 절을 만들기 위해 서로 결합될 수 있다. • The fox jumped the fence. • 위 문장은 명사구 The fox (주어)와 동사구 jumped the fence로 이루어 진 절이다. • 동사구는 다시 세분화 되어 명사구 the fence(목적어)와 동사 jumped 가 결합되어 구성되어 있다.
  • 7. 구문분석 (Parsing) • 구문의 특성 • 어떤 문장이든지 절의 집합으로 분해될 수 있다. • 그 절들은 다시 구의 집합으로 분해될 수 있다. • 구는 다시 특정 품사를 갖는 단어들로 분해될 수 있다. • 구문분석 • 품사, 구, 절과 그것들 사이의 관계를 밝히는 작업을 구문 분석이라고 한다.
  • 8. 말뭉치 (Corpus) • 자연연어 연구를 위해 특정한 목적을 가지고 언어의 표본을 추 출한 집합이다. • 형태소 분석기를 학습시키기 위해서 많은 말뭉치를 이용하면 할수록 정확도가 높아진다. (확률모델)
  • 9. 세종 한국어 말뭉치 21세기 세종 계획은 1997년에 그 계획이 수립되어 1998년부터 2007년까지 10년 동안 시행 대부분의 한글 형태소 분석기들이 사용하고 있는 사전이 여기서 파생됨 https://ithub.korean.go.kr/user/corpus/corpusSearchManager.do
  • 10.
  • 11. 형태소분석 (Morphology) • 형태소의 특성 • 대부분의 언어에서 단어는 형태소(품사)로 구성된다. • 단어는 원형(root form)을 가진다. • 단어가 어떻게 사용되는가에 따라 다양한 접사(접두사, 접미사)를 가진 다.
  • 12. 형태소분석 (Morphology) 꼬꼬마 형태소분석기 http://kkma.snu.ac.kr/concordancer 기아자동차가 통상임금 판결의 여파로 10년 만에 분기 적자를 기록했습니다.
  • 13. POS 태깅 • 단어를 명사, 동사, 형용사 같은 품사(POS, part of speech) 확인을 하고 태 깅한다. • POS 태깅은 이미 POS 태그를 붙여놓은 문서의 말뭉치를 이용하여 만들어 진 통계모델을 이용한다. 기아자동차가 통상임금 판결의 여파로 10년 만에 분기 적자를 기록했습니다. 기아/NNG+자동차/NNG+가/JKS 통상/NNG+임금/NNG 판결/NNG+의/JKG 여파/NNG+로/JKM 10/NR+년/NNM 만/NNB+에/JKM 분기/NNG 적자/NNG+를/JKO 기록/NNG+하/XSV+었/EPT+습니다/EFN+./SF
  • 14. POS 태깅 • 형태소 분석기마다 형태소 분석 결과가 달라질 수 있다. • 대표적인 오픈소스 한글 형태소 비교 • http://konlpy.org/ko/v0.4.4/morph/
  • 15. POS 태깅 • POS 태깅 기술이 인공지능과 만나면 객체 식별도 가능해진다. • 향상된 동음이의어 처리 • 거미(가수) vs 거미(곤충) • 파리(프랑스) vs 파리(곤충) • https://cloud.google.com/natural-language/
  • 16. 그럼 이쯤에서 다시 Elasticsearch로 돌아가 볼까요?
  • 17. 마지막으로 오늘 소개 할 한글 형태소 분석기 1. Arirang 2. Seunjeon 3. OpenKoreaText 4. Nori
  • 18. 루씬 한글 분석기 커뮤니티에서 개발중인 한글 형태소 분석기 http://cafe.naver.com/korlucene
  • 19. 스칼라로 개발된 Mecab 기반의 한글 형태소 분석기 https://bitbucket.org/eunjeon/seunjeon/src/master
  • 20. 트위터에서 개발한 한글 형태소 분석기 https://github.com/open-korean-text
  • 21. Lucene에서 제공하는 공식 한국어 형태소 분석기 https://github.com/apache/lucene-solr/tree/master/lucene/analysis/nori https://www.elastic.co/kr/blog/nori-the-official-elasticsearch-plugin-for-korean-language-analysis
  • 23. 설치 및 제거 1) 설치 bin/elasticsearch-plugin install https://github.com/javacafe- project/elastic-book-etc/raw/master/plugin/elasticsearch-analysis- seunjeon-6.4.3.zip 2) 제거 bin/elasticsearch-plugin remove analysis-seunjeon
  • 25. 설치 및 제거 1) 설치 bin/elasticsearch-plugin install analysis-nori 2) 제거 bin/elasticsearch-plugin remove analysis-nori
  • 27. 한글 형태소 분석기 비교하기 테스트1 (아버지가 방에 들어가신다.) 테스트2 (아버지가방에들어가신다.) 테스트3 (주차장)
  • 28. 한글 형태소 분석기 비교하기 테스트1 (아버지가 방에 들어가신다.)
  • 29. 한글 형태소 분석기 비교하기 테스트2 (아버지가방에들어가신다.)
  • 30. 한글 형태소 분석기 비교하기 테스트3 (주차장)