공부 내용 정리
자연어란?
자연어는 natural language, ordinary language로써, 사람들이 일상적으로 쓰는 언어를 부르는 개념이다. 인공적으로 만들어진 언어인 인공어와 반대되는 개념이다.
자연어 처리 이해 방법
문장의 컨텍스트(Context)를 이해해야, 문장 안에 있는 단어 한 개 한 개가 어떤 의미인지 알 수 있다.
사람은 'Apple'이 사과인지, 바나나인지 문맥을 통해 바로 구분할 수 있지만 기계는 할 수 없다. 그리고 사람은 '안경'을 검색하면 '눈'이나 '시력'등 단어간 의미가 있는 관계성을 바로 인식할 수 있지만 기계는 어렵다.
그렇기 때문에 단어를 수치로 표현하여 기계가 이해하도록 해야 한다. 이 방법이 바로 Word Embedding인데, 간단히 말해서 텍스트를 숫자로 표현하는 것이다. 중요한 것은 같은 문자라고 하더라도 다른 수치로 표현할 수 있고, 단어를 사전을 통해 매핑해서 벡터로 만드는 것이다.
예를 들면 Hi my name is NLP라는 문장이 있으면 [Hi, my, name, is, NLP]로 분류하고 One hot encoding을 통해 0또는 1로 나타낸다. 예시로 Hi는 [1, 0, 0, 0, 0], NLP는 [0, 0, 0, 0, 1]로 나타낸다. 이렇게 벡터화를 시켜 숫자로 표현하여 기계가 알아들을 수 있게 해야한다.
자연어 처리 용어
Document : 텍스트(문서)
Corpus(말뭉치) : 텍스트(문서)의 집합
Token(토큰) : 단어처럼 의미를 가지는 요소
Morphemes(형태소) : 의미를 가지는 언어에서 최소 단위
POS(품사) : ex) Nouns(명사), Verbs(동사)
Stopword(불용어) : I, my, me, 조사, 접미사와 같이 자주 나타나지만 실제 의미에 크게 기여하지 못하는 단어들
Stemming(어간 추출) : 어간만 추출하는 것 (ex - running, runs, run -> run)
Lemmatization(음소표기법) : 앞뒤 문맥을 보고 단어를 식별하는 것
자연어처리 Python 라이브러리
1. NLTK
대표적인 자연어 처리 라이브러리
말뭉치(corpora)다운로드, Word POS, NER Classification, Document Classification의 기능이 있다.
2. KoNLPy
우리나라 한글에 특화된 자연어 처리 라이브러리
단어 품사별 분류, Hannanum, Kkma, Komoran, Twitter를 활용할 수 있는 기능이 있다.
3. Gensim
문서 사이의 유사도 계산과 텍스트 분석을 돕는 라이브러리(Word2Vec을 제공)
Topic Modeling(LDA, LSI, HDP), Word Embedding(Word2Vec)을 활용할 수 있는 기능이 있다.
4. Scikit-learn
대표적인 Python 머신러닝 라이브러리이고 문서 전처리용 클래스를 제공한다.
DicVectorizer, CountVectorizer, TfidVectorizer, HashingVectorizer의 기능이 있다.
자연어 처리 기법을 이용한 머신러닝 방법
단계
1. Word Embedding: 벡터화
2. 학습
3. 예측
학습, 예측은 기존 머신러닝 방법과 동일하기 때문에 핵심은 Word Embedding을 어떻게 하느냐가 가장 중요하다. 즉 데이터를 어떻게 벡터화해서 기계가 알아들을 수 있게 만드는 것이 가장 중요하다.
다음 기초 내용 정리 2에서 계속
'딥러닝 > 자연어처리' 카테고리의 다른 글
NLP논문리뷰 - ELMo (Deep contextualized word representations) (0) | 2021.03.31 |
---|---|
NLP - FastText 논문리뷰 (Enriching Word Vectors with Subword Information) (0) | 2021.03.18 |
[파이썬으로 배우는 응용 텍스트 분석] 텍스트 분석 도구 (0) | 2021.02.18 |
NLP(자연어처리) - 정규표현식 with python (2) (0) | 2021.02.11 |
NLP(자연어처리) - 정규표현식 with python (1) (0) | 2021.02.10 |
최근댓글