논문 : arxiv.org/abs/1802.05365 논문 제목 : Deep contextualized word representations 1. Introduction ELMo가 세상에 나오기 전에 Word2Vec과 Glove가 대표적인 단어 임베딩 방법이었습니다. 여기서 단어 임베딩이란 단어의 의미를 숫자로 표현한 것인데, 선행학습된 임베딩이 NLP의 성능 발전에 큰 영향을 주었습니다. 자연어처리 분야는 데이터가 굉장히 많이 들어가는데, 이 단어 임베딩을 함으로써 더 많은 단어들을 이해하기 때문에 단어 임베딩은 매우 중요합니다. 이 이유는 단어 임베딩을 선행 레이어부터 시작하면, 학습의 속도도 적어지고 단어 임베딩을 하지 않고 학습한다면 학습 도중에 단어 임베딩을 해야하기 때문에 시간이 굉장히 많이 ..
딥러닝/자연어처리 검색 결과
NLP 논문리뷰 논문제목 : Enriching Word Vectors with Subword Information 논문링크 : arxiv.org/abs/1607.04606 1. Abstract & information 기존 모델은 단어마다 다른 벡터를 할당하여 단어의 형태를 무시한다. 위와 같은 문제점을 해결하기 위해 Skip-gram을 기반으로 한 모델에 각 단어를 character n-gram 벡터의 조합으로 표현하였다. 그랬더니 학습 속도가 빠르고, 학습 데이터에 등장하지 않은 단어도 표현이 가능해졌다. 9개 언어에 대해 단어 유사도 및 추론 태스크를 통해 평가했더니 SOTA(state-of-the-art)를 달성하였다. 기존 모델은 parameter를 공유하지 않는 다른 벡터로 단어를 표현하였다...
자연어 처리를 위한 텍스트 분석 기술은 주로 응용 머신러닝에 해당하므로 풍부한 과학 계산 라이브러리 및 수치 계산 라이브러리를 갖춘 언어가 필요하다. 파이썬 언어에는 텍스트를 대상으로 머신러닝을 수행하는데 필요한 도구들인 사이킷런, NLTK, Gensim, SpaCy, NetworkX, Yellowbrick 등을 갖추고 있다. 1. 사이킷런 (scikit-learn) 사이킷런은 일반적인 머신러닝용 API를 제공하던 SciPy를 확장한 것으로 사이썬(Cython)의 최상단에 구축됨으로써 고성능 C 라이브러리가 들어있게 된 셈이므로 높은 성능을 낼 뿐만 아니라 사용하기도 쉽다. 따라서 이를 사용하여 중소 규모 데이터 셋을 쉽게 분석할 수 있으며, 교차 검증 및 하이퍼 파라미터 조율을 위한 유틸리티 뿐만 아니..
NLP(자연어처리) - 정규표현식 with python (1) 글에 이어서 진행됩니다. 메타문자 별도 표기법(자주 사용하는) 앞 글에서 [0-9], [가-힣]과 같은 표현을 보았는데, 이 표현보다는 w와 d처럼 한 문자로 메타문자를 표현하는 방법을 자주 사용한다. 이 글에서는 대표적으로 \w와 \d에 대해 알아보고, 대문자와 소문자의 차이에 대해 다루고자 한다. text = "텍스트마이닝은 정말 신기해요.ㅎ헤ㅏ핳" re.findall('[\w]', text) >>> ['텍','스','트','마','이','닝','은','정','말','신','기','해','요','ㅎ','헤','ㅏ','핳'] re.findall('[\W]', text) >>> [' ', ' ', '.'] ph = '''안녕하세요. 제 전화번..
정규표현식이란? 정규표현식의 사전적인 의미로는 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이다. 즉 텍스트 데이터의 표현 방법을 다루는 것이라고 생각하면 된다. 하지만 코드가 간단한 만큼 가독성이 떨어져서 표현식을 제대로 숙지하지 않으면 이해하기 힘들다는 문제점이 있다. 하지만 텍스트 데이터를 처리하기 위한 가장 기초적인 문법이고, 데이터 익명화와 같은 여러 기술에서 많이 사용하게 된다. 자연어처리를 하기 위한 토대인 것이다. 문자열 검색 import re re.match('연어','연어초밥') >>> match='연어' re.match('장어','연어초밥') >>> 아무것도 x re.search('연어','연어초밥') >>> match='연어' re.search('장어','장어초밥..
공부 내용 정리 자연어란? 자연어는 natural language, ordinary language로써, 사람들이 일상적으로 쓰는 언어를 부르는 개념이다. 인공적으로 만들어진 언어인 인공어와 반대되는 개념이다. 자연어 처리 이해 방법 문장의 컨텍스트(Context)를 이해해야, 문장 안에 있는 단어 한 개 한 개가 어떤 의미인지 알 수 있다. 사람은 'Apple'이 사과인지, 바나나인지 문맥을 통해 바로 구분할 수 있지만 기계는 할 수 없다. 그리고 사람은 '안경'을 검색하면 '눈'이나 '시력'등 단어간 의미가 있는 관계성을 바로 인식할 수 있지만 기계는 어렵다. 그렇기 때문에 단어를 수치로 표현하여 기계가 이해하도록 해야 한다. 이 방법이 바로 Word Embedding인데, 간단히 말해서 텍스트를 숫..
최근댓글