코어닷 기술 세미나 2018
Session #3 : 도승헌 (코어닷투데이 개발자)
LDA와 3개월 함께한 자연어처리 시행착오기
16:00 ~ 16:50
한국어 자연어 처리를 하면서 알아야 할 최소한의 지식을 전달합니다. 전처리부터 토픽모델링까지 3개월간 동거동락한 Gensim 라이브러리의 비밀을 알려드립니다.
- 자연어 처리의 기본 이론
- 토픽 모델링과 LDA
- Gensim을 이용한 매우 쉬운 자연어 처리
https://coredottoday.github.io/2018/10/15/Coredot-기술-세미나/
코어닷 기술 세미나 2018
Session #3 : 도승헌 (코어닷투데이 개발자)
LDA와 3개월 함께한 자연어처리 시행착오기
16:00 ~ 16:50
한국어 자연어 처리를 하면서 알아야 할 최소한의 지식을 전달합니다. 전처리부터 토픽모델링까지 3개월간 동거동락한 Gensim 라이브러리의 비밀을 알려드립니다.
- 자연어 처리의 기본 이론
- 토픽 모델링과 LDA
- Gensim을 이용한 매우 쉬운 자연어 처리
https://coredottoday.github.io/2018/10/15/Coredot-기술-세미나/
AI/Machine Learning의 한 분야인 Natural Language Processing (NLP)에 대해서 발표를 할 예정입니다. NLP는 한국어로 “자연어 처리”로서 Computer Vision 및 Image Processing에서 “언어적 문맥” 이해와 “그 처리”는 상당히 중요한 역할을 차지합니다. Image/Video를 Language화하여 처리하는 다양한 알고리즘이 존재하며 CVPR/ICCV의 학회에서도 핫한 분야 중 하나입니다. 대표적인 분야는 Image/Video Captioning, Description 및 Visual Q&A 등이 있습니다.
그 중에서도 핵심 Background가 되는 Word2Vec에 대해서 소개하고자 합니다. Word2Vec은 언어처리 뿐만 아니라 Generative Model과도 연관성이 높다는 것이 특징이며. NLP의 모든 분야에서의 핵심 이론으로 보시면 되겠습니다.
스티븐 블랙히스, 앤서니 존스 지음 | 오현석 옮김 | 한빛미디어
함수형 반응형 프로그래밍에 관한 최초의 종합 안내서
프로그램은 ‘어떻게’가 아니라 ‘무엇’을 기술하는 선언적인 문서여야 한다는 주장을 받아들이는 사람이 점점 늘고 있다. 이런 흐름은 함수형 언어의 부흥으로 이어졌다. 함수형 언어로는 프로그램을 더 선언적인 방식으로 작성할 수 있고, 이를 이벤트 처리에 결합한 것이 함수형 반응형 프로그래밍(FRP)이다. 지난 수십 년 동안 이벤트 처리 인프라를 책임진 관찰자 패턴은, 한편으로는 버그의 온상이 되기도 했다. FRP는 관찰자 패턴의 잠재적 버그 원인을 근본적으로 차단하여 더 복잡한 시스템으로 쉽게 확장할 수 있도록 해준다.
이 책의 저자는 FRP 프레임워크인 소듐(Sodium)의 창시자로서, FRP의 기초부터 기존 프로젝트를 점진적으로 FRP 시스템으로 탈바꿈시키는 방법까지 친절히 안내한다.
프루프리딩에 오류가 있으면 편집자와 심사 위원에게 부정적인 오류를 주게 됩니다. 논문에서 못 보고 지나친 작은 실수가 독자에게 오해를 불러일으키거나 혼란을 유발하는 경우도 종종 있습니다.
이 글에서는 저자들이 논문 프루프리딩 시 흔히 저지르기 쉬운 언어와 포맷 상의 오류에 대해 설명하고자 합니다. 그리고 앞으로 이를 피할 수 있는 다섯 가지 손쉬운 방법 역시 소개하겠습니다.
AI/Machine Learning의 한 분야인 Natural Language Processing (NLP)에 대해서 발표를 할 예정입니다. NLP는 한국어로 “자연어 처리”로서 Computer Vision 및 Image Processing에서 “언어적 문맥” 이해와 “그 처리”는 상당히 중요한 역할을 차지합니다. Image/Video를 Language화하여 처리하는 다양한 알고리즘이 존재하며 CVPR/ICCV의 학회에서도 핫한 분야 중 하나입니다. 대표적인 분야는 Image/Video Captioning, Description 및 Visual Q&A 등이 있습니다.
그 중에서도 핵심 Background가 되는 Word2Vec에 대해서 소개하고자 합니다. Word2Vec은 언어처리 뿐만 아니라 Generative Model과도 연관성이 높다는 것이 특징이며. NLP의 모든 분야에서의 핵심 이론으로 보시면 되겠습니다.
스티븐 블랙히스, 앤서니 존스 지음 | 오현석 옮김 | 한빛미디어
함수형 반응형 프로그래밍에 관한 최초의 종합 안내서
프로그램은 ‘어떻게’가 아니라 ‘무엇’을 기술하는 선언적인 문서여야 한다는 주장을 받아들이는 사람이 점점 늘고 있다. 이런 흐름은 함수형 언어의 부흥으로 이어졌다. 함수형 언어로는 프로그램을 더 선언적인 방식으로 작성할 수 있고, 이를 이벤트 처리에 결합한 것이 함수형 반응형 프로그래밍(FRP)이다. 지난 수십 년 동안 이벤트 처리 인프라를 책임진 관찰자 패턴은, 한편으로는 버그의 온상이 되기도 했다. FRP는 관찰자 패턴의 잠재적 버그 원인을 근본적으로 차단하여 더 복잡한 시스템으로 쉽게 확장할 수 있도록 해준다.
이 책의 저자는 FRP 프레임워크인 소듐(Sodium)의 창시자로서, FRP의 기초부터 기존 프로젝트를 점진적으로 FRP 시스템으로 탈바꿈시키는 방법까지 친절히 안내한다.
프루프리딩에 오류가 있으면 편집자와 심사 위원에게 부정적인 오류를 주게 됩니다. 논문에서 못 보고 지나친 작은 실수가 독자에게 오해를 불러일으키거나 혼란을 유발하는 경우도 종종 있습니다.
이 글에서는 저자들이 논문 프루프리딩 시 흔히 저지르기 쉬운 언어와 포맷 상의 오류에 대해 설명하고자 합니다. 그리고 앞으로 이를 피할 수 있는 다섯 가지 손쉬운 방법 역시 소개하겠습니다.
2. word2vec의 정의
• 비지도 방식의 단어 임베딩 접
근법
• 표현 벡터의 단일 요소와 대조
적으로 전체 표현 벡터의 활성
화 패턴에 의해 단어의 의미가
캡처되므로 분산 표현
3. Wordnet
• wordnet은 프린스턴 대학교에서 과거에 영어단어들에 대해서 구축한 일종의 온톨로지로, 단어간에 어떤 관계를 가지
고 있는지를 정리한 온톨로지다. 사전처럼 단어별로 개별적인 의미를 정리하는 것보다, 이렇게 단어간의 관계를 중심
으로 정리할 경우 그 활용도가 높아질 수 있다.
• 일반적으로 ‘온톨로지’는 특정 세계에 대해 잘 구축된 체계 정도로 번역할 수 있다(학술적으로 들어가면 좀 달라진다).
• 지속적으로 유지보수되어야 하는 문제점이 있기는 하지만, 현재 영단어에 대해서는 가장 잘 정의된 온톨로지 라고 할
수 있다.
• 국내에서도 부산대에서 비슷한 작업을 수행한 적이 있으나, 완전히 공개되지 않아서 접근성 등의 문제가 있음
• wordnet의 경우는 nltk에 통합되어 상대적으로 쉽게 쓸 수 있음
• 물론 최근에는 word-embedding 등을 사용해서 온톨로지 없이도 온톨로지와 비슷한 효과를 내고 있기 때문에, 이 라이
브러리가 반드시 필요한가?에 대해서는 현재는 의문이 있다.
• Word-embedding과 wordnet을 활용하면, 좀 더 재미있는 짓을 할 수 있지 않을까? 싶은데, 예를 들어서 1) 빠르게 학
습한다거나, 2)…..아무튼…
• wordnet에서 단어 간에 성립할 수 있는 관계는 대략 다음과 같은 정도로 표현된다.
워드넷에서 다음 네 가지를 어떻게 활용하는지 이후에 설명한다.
• synonym: 동의어
• antonym: 반의어
• hypernym: 상의어
• hyponym: 하위어
4. TF-IDF
• TF(단어 빈도, term frequency)는 특정한 단어가 문서 내에 얼
마나 자주 등장하는지를 나타내는 값. 이 값이 높을수록 문서
에서 중요하다고 생각할 수 있다.
• 하지만 하나의 문서에서 많이 나오지 않고 다른 문서에서 자
주 등장하면 단어의 중요도는 낮아진다.
• DF(문서 빈도, document frequency)라고 하며, 이 값의 역수
를 IDF(역문서 빈도, inverse document frequency)라고 한다.
• TF-IDF는 TF와 IDF를 곱한 값으로 점수가 높은 단어일수록
다른 문서에는 많지 않고 해당 문서에서 자주 등장하는 단어
를 의미한다.
7. Word2vec skip-gram
• word2vec 모델은 학습시간을 줄이기 위해 트릭을 쓰는
데, 바 로 네거티브 샘플링(negative sampling) 이다.
• 네거티브 샘플링은 앞의 그림에서 처럼 'Training
Sample'과 같은 단어 쌍들에 포함되어 있지 않는 가짜 단
어 쌍들을 만들어 낸다.
• 지정한 윈도우 사이즈 내에서 포함되지 않는 단어들을
포함시켜 단어 쌍들을 만들어 내는것이다.
• 예를 들어 위의 그림에서 두번째 줄에서 윈도우 사이즈
내에 포 함되지 않는 lazy라는 단어를 뽑아 (quick,
lazy)라는 단어쌍을 만드는 것이다.
9. Word2vec CBOW
• 주어진 단어에 대해 앞 뒤로 C/2개
씩 총 C개의 단어를 Input으로 사용
하여, 주어진 단어를 맞추기 위한
네트워크를 만든다.
• CBOW의 계산량
• C개의 단어를 Projection 하는 데에 C x N
• Projection Layer에서 Output Layer로 가는 데에 N x V