Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

한국어 자연어처리 101

2,599 views

Published on

Korean Natural Language Processing

Published in: Data & Analytics

한국어 자연어처리 101

  1. 1. 한국어자연어처리101 Korean Natural Language Processing
  2. 2. Korean NLP Basic POS Tagging N‑gram model Natural Language Processing Discrete Representation Bag of Words (TF‑IDF) Word Embedding (Word2Vec) Topic Modeling (LDA) Text Classification & Clustering
  3. 3. 한국어자연어처리기초‑ 형태소분석및품사태깅 형태소분석이란형태소를비롯하여, 어근, 접두사/접미사, 품사(POS, part‑of‑speech) 등다양한언어적속성의구조를파악하는것 Mecab, Twitter, Komoran, Hannanum 등 사용할패키지 R은KoNLP (https://github.com/haven‑jeon/KoNLP) Python은KoNLPy (https://github.com/konlpy/konlpy)
  4. 4. 명사만뽑을수도있고, 트위터형태소분석기는'ㅋㅋㅋ' 까지처리할수있다
  5. 5. N‑gram Model 문자열을N 만큼쪼개어이어붙이는방법 기존의input보다좋은성능을내는경우가 많다.
  6. 6. Word Representation 비정형텍스트데이터로부터의미있는정보를추출해내고 싶다. 결국 컴퓨터가 단어의의미를이해하도록해야한다. 하지만, 컴퓨터는사람의언어를이해하지못한다. 컴퓨터는문자를단지유니코드의조합으로인식할뿐, 두단어의의미적차이를모른다! 어떻게 처리해야컴퓨터가 사람의언어를이해할수있을까?
  7. 7. WordNet 수년간 노력한집단지성의결과물(아주거대한트리구조)
  8. 8. Discrete Representation 하지만위와같은방식에는다음과 같은문제들이있다. 주관적이며, 많은노동력이필요함 동의어, 반의어등에대한처리가 부족(similarity) 언어는문맥에따라의미가 달라지는데그 부분이반영이안됨
  9. 9. Bag of Words Representation 그렇다면, 단어를숫자(벡터)로표현해보자 봄= 1, 여름= 2 : 그럼여름이봄의2배인가?
  10. 10. One‑Hot Encoding 봄, 여름, 가을, 겨울이라는단어가 있으면, 봄= [1, 0, 0, 0] 여름= [0, 1, 0, 0] 가을= [0, 0, 1, 0] 겨울= [0, 0, 0, 1] 이렇게 matrix로나타내는방법, 문제는? 봄과 여름에AND 연산을해보자, 무조건 0이나온다 즉, 연관성(유사도)을계산할수없다.
  11. 11. Distributional similarity based representations 그렇다면, 단어의앞과 뒤의정보를통해단어의의미를파악해보자 예를들면, banking 이라는단어를표현할때, 단어의왼쪽과 오른쪽으로부터 banking이라는단어의정보를얻는다. (debt, crieses...) 하지만이방법은차원수가 엄청나게 커진다(sparcity)
  12. 12. Low Dimensional Vectors ‑ SVD 가장핵심적인정보들을저차원의벡터로저장하는방법! 하지만, 계산비용이아주높다는단점이있다
  13. 13. Word2Vec
  14. 14. Word2Vec Models
  15. 15. 다시돌아와서, 문서에서의미있는정보를추출하려면어떻게 해야할까?
  16. 16. TF‑IDF Vectorizer Term Frequency‑Inverse Document Frequency 역문서빈도: 단어가 문서집합내에서얼마나자주등장하는지 전체문서에서자주발생하는단어의중요도는오히려낮춘다(ex 그, 그녀) 한문서에서많이나타나는단어의중요도는높인다(ex 탄핵, 수사)
  17. 17. Topic Modeling
  18. 18. Latent Dirichlet Allocation 주어진문서에대하여각 문서에어떤주제들이존재하는지에대한확률모형 미리알고 있는주제별단어수분포를바탕으로, 주어진문서에서발견된단어수분포를분석 해당문서가 어떤주제들을함께다루고 있을지를예측할수있음
  19. 19. Latent Dirichlet Allocation 한국어LDA를돌릴때는명사와동사원형만넣고 사용한다 이외에도NMF와같이Matrix Factorization을응용한방법이있다
  20. 20. Text Classification & Clustering 그냥하던대로하면된다, 다만input만다르게 Naive Bayes Classifier Support Vector Machine K‑Means Clustering Neural Network
  21. 21. Ex) News Clustering input을Word2Vec으로넣을경우, cosine distance를계산하는클러스터링알고리즘으로수정해야한다
  22. 22. 정리 이외에도감성분석(Sentiment Analysis) , 기계번역(Neural Translation ‑ RNN, LSTM, Seq2Seq) 등이있다 언제까지나숫자놀음에만족할수는없다 추천알고리즘, 챗봇등다양한영역에서활용가능 특히심리학/사회과학영역에결합되면아주막강한힘이생긴다 슬라이드에적용된자연어처리예시코드는 https://github.com/Swalloow/Korean‑NLP 에서확인
  23. 23. 학습자료 https://www.coursera.org/learn/natural‑language‑processing/ http://cs224d.stanford.edu/syllabus.html NIPS 학회튜토리얼세션

×