728x90

Natural Language Processing 9

[Deep Learning for NLP]Neural network basic

Relationships between DL, representation learning, ML, AI Machine learning is a subfield of artificial intelligence. Deep learning is a subfield of machine learning, and so on. In case of ML, researchers assume that there’s sort of extracted features for a given input by human effort. But, in DL, we don’t need to invent this kind of features. Because every feature are learned automatically. We j..

[딥 러닝을 이용한 자연어 처리 입문] 토픽 모델링(Topic Modeling)

토픽 모델링(Topic Modeling)이란 기계 학습 및 자연어 처리 분야에서 토픽이라는 문서 집합의 추상적인 주제를 발견하기 위한 통계적 모델 중 하나로, 텍스트 본문의 숨겨진 의미 구조를 발견하기 위해 사용되는 텍스트 마이닝 기법이다. 1) 잠재 의미 분석(Latent Semantic Analysis, LSA) BoW에 기반한 DTM이나 TF-IDF는 기본적으로 단어의 빈도 수를 이용한 수치화 방법이기 때문에 단어의 의미를 고려하지 못한다는 단점이 있다. 이를 위한 대안으로 DTM의 잠재된(Latent) 의미를 이끌어내는 방법으로 잠재 의미 분석(Latent Semantic Analysis, LSA)이라는 방법이 있다. 잠재 의미 분석(Latent Semantic Indexing, LSI)이라고 부..

[딥 러닝을 이용한 자연어 처리 입문]언어 모델(Language Model)

01. 언어 모델(Language Model)이란? 언어 모델은 단어 시퀀스에 확률을 할당(assign)하는 일을 하는 모델이다. 단어 시퀀스에 확률을 할당하게 하기 위해서 가장 보편적으로 사용되는 방법은 언어 모델이 이전 단어들이 주어졌을 때 다음 단어를 예측하도록 하는 것이다. 언어 모델링(Language Modeling)은 주어진 단어들로부터 아직 모르는 단어를 예측하는 작업을 말한다. 즉, 언어 모델이 이전 단어들로부터 다음 단어를 예측하는 일은 언어 모델링이다. 주어진 이전 단어들로부터 다음 단어 예측하기 단어 시퀀스에 확률을 할당하기 위해서 가장 보편적으로 사용하는 방법은 이전 단어들이 주어졌을 때, 다음 단어를 예측하도록 하는 것이다. 이를 조건부 확률로 표현해보겠습니다. A. 단어 시퀀스의..

[딥 러닝을 이용한 자연어 처리 입문] 원-핫 인코딩(One-Hot Encoding)

원-핫 인코딩(One-Hot Encoding) 원-핫 인코딩은 단어 집합(Vocabulary, 서로 다른 단어들의 집합)의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 단어의 벡터 표현 방식이다. 이렇게 표현된 벡터를 원-핫 벡터(One-Hot vector)라고 한다. 원-핫 인코딩의 과정 (1) 각 단어에 고유한 인덱스를 부여한다. (정수 인코딩) (2) 표현하고 싶은 단어의 인덱스의 위치에 1을 부여하고, 다른 단어의 인덱스의 위치에는 0을 부여한다. 원-핫 인코딩(One-Hot Encoding) 예제 케라스는 원-핫 인코딩을 수행하는 유용한 도구 to_categorical()를 지원한다. 케라스만으로 정수 인코딩과 원-핫 인코딩을 ..

[딥 러닝을 이용한 자연어 처리 입문]텍스트 전처리(text preprocessing)

텍스트 전처리(Text preprocessing) 자연어 처리에서 크롤링 등으로 얻어낸 코퍼스 데이터가 필요에 맞게 전처리되지 않은 상태라면, 해당 데이터를 사용하고자하는 용도에 맞게 토큰화(tokenization) & 정제(cleaning) & 정규화(normalization)하는 일을 하게 된다. 이처럼 텍스트 전처리는 용도에 맞게 텍스트를 사전에 처리하는 작업을 말한다. 01) 토큰화(Tokenization) 주어진 코퍼스(corpus)에서 토큰(token)이라 불리는 단위로 나누는 작업을 토큰화(tokenization)라고 한다. 토큰의 단위가 상황에 따라 다르지만, 보통 의미있는 단위로 토큰을 정의합니다. 1. 단어 토큰화(Word Tokenization) 토큰의 기준을 단어(word)로 하는 ..

[딥 러닝을 이용한 자연어 처리 입문]머신 러닝 워크플로우(Machine Learning Workflow)

데이터를 수집하고 머신 러닝을 하는 과정을 크게 6가지로 나누면, 아래의 그림과 같다. 1. 수집(Acquisition) 머신 러닝을 하기 위해서는 기계에 학습시켜야 할 데이터가 필요하다. 자연어 처리의 경우, 자연어 데이터를 말뭉치 또는 코퍼스(corpus)라고 부르는데 코퍼스의 의미를 풀이하면, 조사나 연구 목적에 의해서 특정 도메인으로부터 수집된 텍스트 집합을 말한다. 코퍼스. 즉, 텍스트 데이터의 파일 형식은 txt 파일, csv 파일, xml 파일 등 다양하며 그 출처도 음성 데이터, 웹 수집기를 통해 수집된 데이터, 영화 리뷰 등 다양하다. 2. 점검 및 탐색(Inspection and exploration) 데이터가 수집되었다면, 이제 데이터를 점검하고 탐색하는 단계이다. 여기서는 데이터의 ..

[딥 러닝을 이용한 자연어 처리 입문]판다스 프로파일링(Pandas -Profiling)

실습 파일 불러오기 프롬프트에서 아래의 pip 명령을 통해 패키지를 설치한다. > pip install -U pandas-profiling 실습을 위해 아래의 링크에서 spam.csv 파일을 다운받는다. https://www.kaggle.com/uciml/sms-spam-collection-dataset SMS Spam Collection Dataset Collection of SMS messages tagged as spam or legitimate www.kaggle.com 주피터 노트북에서 아래의 코드로 spam.csv파일을 data에 저장한다. import pandas as pd import pandas_profiling data = pd.read_csv(r'C:\Users\Desktop\spam..

[딥 러닝을 이용한 자연어 처리 입문]데이터 분석 패키지

1. 판다스(Pandas) 판다스(Pandas)는 파이썬 데이터 처리를 위한 라이브러리이다. Pandas는 시리즈(Series), 데이터프레임(DataFrame), 패널(Panel)의 세 가지의 데이터 구조를 사용한다. 이 중 데이터프레임이 가장 많이 사용된다. 시리즈(Series) : 시리즈 클래스는 1차원 배열의 값(values)에 각 값에 대응되는 인덱스(index)를 부여할 수 있는 구조를 갖고 있다. import pandas as pd sr = pd.Series([1, 2, 3, 4], index = ["one", "two", "three", "four"]) print(sr) 데이터프레임(DataFrame) : 데이터프레임은 2차원 리스트를 매개변수로 전달한다. 2차원이므로 행방향 인덱스(ind..

[딥 러닝을 이용한 자연어 처리 입문]실습 환경 만들기

자연어(natural language) : 우리가 일상 생활에서 사용하는 언어 자연어 처리(natural language processing) : 자연어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 하는 일 머신러닝 실습을 위한 환경을 만들어 보자. 1. 아나콘다(Anaconda) 설치 아래의 사이트에서 아나콘다를 다운 받는다. https://www.anaconda.com/distribution/ Anaconda | Individual Edition Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine. www.anac..

728x90