본문 바로가기

Natural_Language

(8)
[NLP] 03.자연어 처리 개요 - 데이터 이해하기 아래 내용은 텐서플로우와 머신러닝으로 시작하는 자연어처리 책을 바탕으로 작성 된 내용입니다. 데이터 이해하기 " 데이터 전처리 >> 정제된 전처리 >> 탐색적 자료 분석 >> 모델 >> 사용 " - 문제 해결을 위해서는 데이터 이해가 선행되어야 하는데, 이러한 과정을 EDA라고 한다. - 이러한 과정을 통해 생각하지 못한 데이터의 여러 패턴이나 잠재적인 문제점을 발견할 수 있다. - 탐색적 데이터 분석의 흐름 데이터 가져오기 import os import re import pandas as pd import tensorflow as tf from tensorflow.keras import utils data_set = tf.keras.utils.get_file( fname = "imdb.tar.gz", ..
[NLP] 03. 자연어 처리 개요 - 텍스트 유사도 아래 내용은 텐서플로우와 머신러닝으로 시작하는 자연어처리 책을 바탕으로 작성 된 내용입니다. 텍스트 유사도( Text Similarity ) - 텍스트 유사도란, 말 그대로 텍스트가 얼마나 유사한지를 표현하는 방식 중 하나 - 유사도를 판단하는 척도가 주관적이기 대문에 데이터를 정량화하기 쉽지않고 한계가 있다. - 이를 최대한 정량화해서 모델을 만드는 것이 중요하다. - 자주 사용되는 유사도 측정 방법 자카드 유사도 / 유클리디언 유사도 / 맨하탄 유사도 / 코사인 유사도 # 단어 벡터화 - 우선 각 유사도를 측정하기 전 두가지 예시 문자을 확인 sentence = ( "휴일 인 오늘 도 서쪽 을 중심 으로 폭염 이 이어졌는데요, 내일 은 반가운 비 소식 이 있습니다.", "폭염 을 피해서 휴일 에 놀러..
[NLP] 03. 자연어 처리 개요 - 텍스트 분류 아래 내용은 텐서플로우와 머신러닝으로 시작하는 자연어처리 책을 바탕으로 작성 된 내용입니다. 02. 텍스트 분류 - 텍스트 분류는 자연어 처리 문제 중 가장 대표적이고 많이 접하는 문제이다. - 자연어 처리 기술을 활용해 특정 텍스트를 사람들이 정한 범주 중 어느 범주에 속하는지 분류하는 문제다. - 2가지 범주에 대해서는 이진 분류 문제 - 3개 이상의 범주에 대해서는 다중 분류 문제라 한다. 1> 텍스트 분류의 예시 # 스팸분류 - 분류해야 할 범주는 스팸메일과 일반메일로 2가지이다 : 이진 분류 # 감정분류 - 주어진 글이 긍정적인지 부정적인지 판단하는 문제 - 경우에 따라 중립이 추가 될 수 있고, 감정이 세분화 될 수 있기 때문에 분류하려는 의도에 따라 범주가 정해진다. # 뉴스기사분류 - 다양..
[NLP] 03. 자연어 처리 개요 - 단어표현/단어임베딩/단어벡터 아래 내용은 텐서플로우와 머신러닝으로 시작하는 자연어처리 책을 바탕으로 작성 된 내용입니다. 단어 표현 - 어떤 방식으로 텍스트를 표현해야 자연어 처리 모델에 적용할 수 있을까에 대한 답을 찾는 것 - 단어표현 : 텍스트를 모델에 적용할 수 있게 언어적인 특성을 반영해서 단어를 수치화하는 방법을 찾는것 - 단어를 수치화할 때는 주로 벡터로 표현한다. - 따라서 단어 표현 = 단어 임베딩 = 단어 벡터 원-핫 인코딩 - 단어를 하나의 벡터로 표현하는 방법인데, 각 값은 0혹은 1만 갖는다. - 알 수 있는 벡터 값 가운데 하나만 1을 가지고, 나머지는 모두 0을 가지는 방식 - 여기서 1이 되는 것은 각 단어가 어떤 단어인지 알려주는 인덱스다. - 즉, 원-핫 인코딩 방식은 각 단어의 인덱스를 정한 후 각..
[NLP] 02. 자연어 처리 개발 준비 - 자연어 토크나이징 도구/전처리 자연어 처리에는 다양한 토크나이징도구들이 있는데 이번에는 자연어 토크나이징 도구를 살펴 볼 예정 자연어 토크나이징 도구 토크나이징이란, 입력 정보(문장 또는 발화)를 하나의 특정 기본 단위로 자르는 것 // 영어 토크나이징 라이브러리 - 여기서는 영어 토크나이징 작업을 수행할 수 있는 라이브러리를 소개한다. === NLTK === - 파이썬에서 영어 텍스트 전처리 작업을 하는데 많이 쓰이는 라이브러리이다. - 50여 개가 넘는 말뭉치 리소스를 활용해 영어 텍스트를 분석할 수 있게 제공한다. # 라이브러리 설치 conda install nltk import nltk nltk.download() - nltk는 단순히 라이브러리를 설치한다고 해서 바로 토크나이징 할 수 없다. 말뭉치를 다운받아야한다. - 토크..
[NLP] 02. 자연어 처리 개발 준비 - 사이킷런 자연어처리 개발을 하는데 있어서 사용되는 라이브러리에 대한 소개 두번째로는 사이킷런 02. 사이킷런 - 사이킷런은 파이썬용 머신러닝 라이브러리이다. - 머신러닝 기술을 활용하는데 필요한 다양한 기능을 제공한다. - 딥러닝 모델을 텐서플로, 케라스, 파이토치를 이용해서 생성 할 수 있는 것처럼, 머신러닝은 주로 사이킷런을 사용 - 지도학습을 위한 모듈, 비지도학습을 위한 모듈, 모델 선택 및 평가를 위한 모듈, 데이터 변환 및 데이터를 불러오기 위한 모듈, 계산 성능 향상을 위한 모듈로 구성돼 있다. 1> 사이킷런의 모듈 1. 지도 학습 모듈 - 나이브 베이즈, 의사결정 트리, 서포트 벡터 머신 2. 비지도 학습 모듈 - 군집화, 가우시안 혼합 모델 3. 모델 선택과 평가 모듈 - 교차 검증, 모델 평가,..
[NLP] 02.자연어 처리 개발 준비 - Tensorflow 자연어 처리 개발을 하는 데 있어서 사용되는 라이브러리에 대한 소개 첫 번째로는 텐서플로우이다. 텐서플로우 tf.keras.layers.Dense INPUT_SIZE = (20, 1) input = tf.placeholder(tf.float32, shape = INPUT_SIZE) hidden = tf.keras.layers.Dense(units = 10, activation = tf.nn.sigmoid)(input) output = tf.keras.layers.Dense(units = 2, activation = tf.nn.sigmoid)(hidden) - 10개의 노드를 가지는 은닉층이 있고, 최종 출력 값은 2개의 노드가 있는 신경망 구조 tf.keras.layers.Dropout INPUT_SIZ..
[NLP] 텐서플로와 머신러닝으로 시작하는 자연어처리 앞으로 이곳 카테고리에서는 NLP에 관련 된 공부에 관해 업데이트를 할 예정 현재까지 나온 NLP의 대부분은 영어에 대한 자료가 많으나, 한국어에 관한 NLP가 궁금하던 찰나에 딱 맞춰 나온 자연어 처리 책. 머신러닝과 딥러닝 라이브러리를 활용한 자연어 처리를 아래의 책을 통해 살펴 볼 예정 좀 더 자세한 내용을 알고 싶다면 아래 링크 참고 : http://www.yes24.com/Product/Goods/69334316 텐서플로와 머신러닝으로 시작하는 자연어 처리 본 서는 기존 자연어 처리 서적과는 다른 세 가지 특징을 가지고 있다. 첫째, 자연어 처리에 활용되는 개념적인 설명에서 끝나는 것이 아니라 모델 구현에 집중한다. 그뿐만 아니라 상용 서비스를 지원하는 텐서플로를 기반으로 모델을 개발한다. 둘째..