O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

한글 언어 자원과 R: KoNLP 개선과 활용

7.102 visualizações

Publicada em

RUCK 2016 District Jeju - 전희원(SK 텔레콤)

Publicada em: Dados e análise
  • Seja o primeiro a comentar

한글 언어 자원과 R: KoNLP 개선과 활용

  1. 1. KoNLP 개선과 활용 SKT 데이터 분석가/KoNLP 개발자 전희원
  2. 2. 이들의 공통점? • 워드 클라우드 예제 • 안철수 교수 대선 출마 선언문 텍스트 요약 • 국정원 의심 계정 트윗 분석 • 단어간의 연관 관계 분석 • 북한 신년사 비교 예제를 통한 텍스트 분석의 이해 • 대하드라마 정도전 분석 사례 • 한국사회의 성별갈등을 데이터로 알아보았다. • 학술 연구(교육, 사회, 정치학 관련 ) • https://scholar.google.co.kr/scholar?q=KoNLP • 책 • 데이터 시각화 (허명회 저) • R로하는 데이터 시각화 (전희원 저) • R까기, R라뷰(서진수 저) • 신입 탐정의 데이터 분석 입문 (이시다 모토히로 저) • 소프트웨어 • KoNLPy • http://konlpy-ko.readthedocs.io/ko/v0.4.3/ • Rtextrankr • https://cran.r-project.org/web/packages/Rtextrankr/index.html
  3. 3. KoNLP : Korean NLP Package
  4. 4. 한글 처리의 특수성 • 자연어 처리는 대상어에 따라 분석 방식이 상당히 달라진다. • 한국어 • 1개 이상의 형태소가 한 어절을 이루고 있다. • 형태소(morpheme) : 더 이상 분석하면 의미를 잃어버리는 말의 단위 예) 마을(village) -> 마 + 을 (더 이상 의미가 없어진다.) • 형태소 분석의 모호성 • 감기는: (N 감기)+(J 는), (V 감)+(E 기)+(J 는), (V 감기)+(E 는), ... • 형태소 분석의 필요성 • 최소 어절의 정규화 • 감기는, 감기고, 감기어…. -> 감기 로 정규화 • 검색 서비스, 기계번역, 스팸필터 등 텍스트 기반의 모든 서비스에는 반드시 필요한 과정
  5. 5.  통계적 품사 태깅  한 문장을 이루는 어절열 w1,n이 주어졌을 때, 가장 확률이 높은 태그열 t1,n을 구 함  일반적인 통계 기반 모델에서 tag의 확률  이전의 history에 대한 조건부 확률로 구함  현실적으로는 전체 history에 대해 조건부확률을 구하는 것이 불가능 ∴ n-gram 모델을 도입하여 국부적인 문맥(local context)을 이용  HMM ),(maxarg )( ),( maxarg )|(maxarg)( ,1,1 ,1 ,1,1 ,1,1,1 ,1,1 ,1 nn tn nn t nn t n wtP wP wtP wtPwT nn n   ),|( 1,1,1 qqq twtP
  6. 6. KoNLP KoNLP 구조 한나눔 형태소 분석 라이브러리 for KoNLP 한글 코퍼스 분석 도구 • KoNLP에 최적화 시킨 한나눔 형태소 분석기 • 문장 분리기, 부적합 어절 필터 등 • 대용량 사전 로딩 가능 • Concordance, Mutual Information 등 System 사전 Sejong NIADic Dictionary Interface tools From : 한나눔 형태소 분석기 사용자 매뉴얼
  7. 7. KoNLP : Korean NLP Package • R 패키지로는 유일한 한글 텍스트 전처리 도구 • openNLP, RKEA, Snowball 등 영문 전용 텍스트 전처리 도구 위주 • 라이브러리로 제공하는 기존 형태소 분석기와는 다르게 …. • 한글 텍스트 분석에 자주 쓰이는 기능 위주 인터페이스 제공 • 한글 분석에 대해 특별한 배경 지식 없이 간단한 함수로 사용가능 • 형태소 분석 및 POS Tagging 결과를 튜닝할 수 있는 사용자 사전 입력 인터페이스 제공 • 연구 분야별 사전 적용 가능, 연구자들의 활용도 높음 • 현재 시스템사전(28만) , 세종사전(8만), NIADic(93만) 사전을 제공하고 있음.
  8. 8. KoNLP v.0.80.0 개선 포인트 기존의 버그 수정/개선 빈번한 사전 데이터 호출로 인한 out of memory 대기큐로 인한 Infinite loop 현상 대용량(100만 이상 형태소) 사전 적용 메모리 사용 효율 고도화 저사양 유저들도 고품질의 사전을 활용할 수 있게 유연한 사전 활용 기반 제공 텍스트 전처리 플러그인 개발 문장 경계 인식 비정상 어절 필터 띄어쓰기 플러그인
  9. 9. OutofMemory! • 비효율적인 메모리 관리로 인한 OutofMemory 빈번 • 100만 단어 이상의 사전을 로딩하기 위해서 해결해야 되는 문제 • 개선을 통해 저사양 PC에서도 전체 130만 단어를 모두 로딩 후 분석 가능 Total: 344.3 MB Total: 176.6 MB 갤럭시S5 CPU
  10. 10. Slow?!  느림 SimplePos09() -> SimplePos22() -> extractNoun()  빠름 extractNoun() -> extractNoun() -> extractNoun()  동일 함수를 여러 번 구동하는 사용패턴에 최적화
  11. 11. More dictionary and Category!  NIADic을 통한 36만 -> 130만 형태소 사전 보강  우리말샘 사전(58만), 인사이터 사전(35만)
  12. 12. 우리말샘 인사이터
  13. 13. • 40개 -> 82개 어절 단위 형태소 • 기존 2배 이상의 형태소 후보군 도출
  14. 14. Exporting Dictionary • 형태소 사전의 txt 파일 다운로드 인터페이스 제공 • 타 형태소 분석기에 사전 데이터 활용 가능
  15. 15. 문장 경계 인식 플러그인
  16. 16. 자동 띄어쓰기(개발중) 75만 문장을 기반으로 학습된 띄어쓰기 엔 진 (한국일보 코퍼스, 세종 코퍼스..) 유니그램, 바이그램 HMM
  17. 17. Etc  useNIAdic()  Support Scala plugins  SQLite based dictionary management  Solving infinite wait of results with abnormal sentence.  Adding Hangul vignette
  18. 18. Schedule ~ 11.20 KoNLP v.0.80.0 CRAN 등록 패키지 용량 이슈, vignette 한글 이슈 등등 ~ 12.05 자동 띄어쓰기 교정 플러그인 구현/적용 사용자 정의 사전 강제 적용 옵션 구현 ~ RNN POS Tagger plugins
  19. 19. How to use KoNLP • How to Install • To install from CRAN • Install.package(“KoNLP”) • To install from github • Install.package(“devtools”) • devtools::install_github(“haven-jeon/KoNLP”) • Functions • vignette(“KoNLP-API”)
  20. 20. KoNLP v0.80.0 Tutorial
  21. 21. Q&A • https://github.com/haven-jeon/KoNLP • https://github.com/haven-jeon/Sejong • https://github.com/haven-jeon/NIADic

×