2부 데이터 수집

Similar documents
DIY 챗봇 - LangCon

MySQL-.. 1

Probability Overview Naive Bayes Classifier Director of TEAMLAB Sungchul Choi

R을 이용한 텍스트 감정분석

15 홍보담당관 (언론홍보담당) 김병호 ( 金 秉 鎬 ) 16 (행정담당) 박찬해 ( 朴 鑽 海 ) 예산담당관 17 (복지행정담당) 이혁재 ( 李 赫 在 ) 18 (보육담당) 주사 이영임 ( 李 泳 任 ) 기동근무해제. 19 (장애인담당) 박노혁 ( 朴 魯 爀 ) 기동

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

PowerPoint 프레젠테이션

Secure Programming Lecture1 : Introduction

step 1-1

[ 영어영문학 ] 제 55 권 4 호 (2010) ( ) ( ) ( ) 1) Kyuchul Yoon, Ji-Yeon Oh & Sang-Cheol Ahn. Teaching English prosody through English poems with clon

C:/Users/Kuk/Documents/Laboratory/TR/ tr(a)/TR ¾ç½Ä.dvi

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

DocsPin_Korean.pages

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

170918_hjk_datayanolja_v1.0.1.

KCC2011 우수발표논문 휴먼오피니언자동분류시스템구현을위한비결정오피니언형용사구문에대한연구 1) Study on Domain-dependent Keywords Co-occurring with the Adjectives of Non-deterministic Opinion

딥러닝 첫걸음

PowerPoint Presentation

텀블러514

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Microsoft PowerPoint - Regular Expresssions.ppt

컴파일러

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

EndNote X2 초급 분당차병원도서실사서최근영 ( )

슬라이드 1

Page 2 of 5 아니다 means to not be, and is therefore the opposite of 이다. While English simply turns words like to be or to exist negative by adding not,

PowerPoint 프레젠테이션

JVM 메모리구조

Week13

01Àå

DE1-SoC Board

빅데이터 분산 컴퓨팅 -6

PHP & ASP

목 차 요약문 I Ⅰ. 연구개요 1 Ⅱ. 특허검색 DB 및시스템조사 5

3 Gas Champion : MBB : IBM BCS PO : 2 BBc : : /45

gnu-lee-oop-kor-lec06-3-chap7

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

Lab-Numpyinanutshell Copyright 2018 document created by Introduction PDF 파일다운로드 오래기다리셨습니다. 드디어 Machin Learning 강의첫번째 Lab Assi

rmi_박준용_final.PDF

4S 1차년도 평가 발표자료

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

서강대학교공과대학컴퓨터공학과 (1/5) CSE3081 (2 반 ): 알고리즘설계와분석 < 프로그래밍숙제 2> (v_1.0) 담당교수 : 임인성 2015 년 10 월 13 일 마감 : 10 월 31 일토요일오후 8 시정각 제출물, 제출방법, LATE 처리방법등 : 조교가

윈도우시스템프로그래밍

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

PowerPoint 프레젠테이션

ETL_project_best_practice1.ppt

윈도우시스템프로그래밍

IKC43_06.hwp

Chapter 1

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

PowerPoint Presentation

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

_

DBPIA-NURIMEDIA

cha4_ocw.hwp

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<C6F7C6AEB6F5B1B3C0E72E687770>

<B1B9BEC7BFF8B3EDB9AEC1FD5FC1A63234C1FD5FBFCF2E687770>

Lab-Buildamatrix Copyright 2018 document created by Introduction PDF 파일다운로드 Machin Learning의두번째랩은 Pandas와 Numpy를활용하여 Rating M

쉽게 풀어쓴 C 프로그래밍

본문01

04-다시_고속철도61~80p

강의 개요

Journal of Educational Innovation Research 2019, Vol. 29, No. 1, pp DOI: : * Research Subject

Documents Taxonomy - LASSO regression을 중심으로

Visual Basic 반복문

DW 개요.PDF

Artificial Intelligence: Assignment 6 Seung-Hoon Na December 15, Sarsa와 Q-learning Windy Gridworld Windy Gridworld의 원문은 다음 Sutton 교재의 연습문제

APOGEE Insight_KR_Base_3P11

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Artificial Intelligence: Assignment 5 Seung-Hoon Na December 15, Numpy: Tutorial 다음 자료를 참조하여 numpy기본을 공부하시오.

사회통계포럼

문서의 제목 나눔고딕B, 54pt

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Python으로 쿠키런 운영하기_ver최종.key

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

김기남_ATDC2016_160620_[키노트].key

(Microsoft Word - 2.1_03_\300\314\276\306\266\367,\261\350\307\321\301\330)

PRO1_04E [읽기 전용]

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract

chapter4

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

<C1DF3320BCF6BEF7B0E8C8B9BCAD2E687770>

Secure Programming Lecture1 : Introduction

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

PowerPoint 프레젠테이션

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

MVVM 패턴의 이해

PowerPoint 프레젠테이션

PBR PDF

DBMS & SQL Server Installation Database Laboratory

Transcription:

4 부머신러닝 (Machine Learning) Text Mining

2 1 장텍스트마이닝및영문텍스트분석기법

문서분류 (Document Classification) 개본개념 분류 ( 예측 ) 모델 3

문서분류 (Document Classification) 누구의연설문인가? 4

자동분류시스템구성과정 데이터수집 데이터가공 분류모델구축 분류및평가 DB 구성 노이즈제거 데이터변환 5

문서를표현하는데이터모델 문서를직접적으로모델링못함 Vector Space Model Vector Space Model 텍스트문서를단어색인등의식별자로구성된벡터로표현하는모델 The Vector Space Model (VSM) is a way of representing documents through the words that they contain Each document is broken down into a word frequency table Each document is represented as a vector based against the vocabulary 6

Vector Space Model Document A A dog and a cat. Document B A frog. a dog and cat 2 1 1 1 a frog 1 1 The vocabulary contains all words used a, dog, and, cat, frog Document A: A dog and a cat. Vector: (2,1,1,1,0) Document B: A frog. Vector: (1,0,0,0,1) a and cat dog frog 2 1 1 1 0 a and cat dog frog 1 0 0 0 1 7

Text data loading Scikit-learn 의 load_files 기능 Load text files with categories as subfolder names text 와 label 을자동적으로붙여준특별 bunch 타입객체를반환 레이블은 subdirectrory 의알파벳순서에따라 0 부터숫자부여함 subdirectrory 에서만데이터를읽음. ( 바로아래파일들은무시 ) Bunch 리스트타입의 data 와 target 속성이부여되는데, data 는 text 파일하나당원소하나가입력되며, target 은 subdirectrory 의알파벳순서에따라 0, 1, 2,. 와같은 label 이부여됨 data: [file_1.txt, file_2.txt,, file_43.txt, file_44.txt, ] target: [0, 0, 0,, 1, 1, 1, ] 실제로는 random 하게 suffle 됨 8

Text data loading 예 ) 영어영화평예제링크 : http://ai.stanford.edu/~amaas/data/sentiment/./data./data/aclimdb./data/aclimdb/test./data/aclimdb/test/neg./data/aclimdb/test/pos./data/aclimdb/train./data/aclimdb/train/neg./data/aclimdb/train/pos 예 ) reviews_train = load_files("./data/aclimdb_v1/aclimdb/train") Data list: reviews_train.data./data/aclimdb/train/neg/ 와./data/aclimdb/train/pos/ 의 text 파일을들을읽어, 문자열형태의리스트구성 Target list: reviews_train.target./data/aclimdb/train/neg 와./data/aclimdb/train/pos 에는각각 0 과 1 을부여한리스트구성 9

Text data loading Shuffling 디렉토리구조 10

Text data loading Text data 중에서 <br /> 삭제 11

Text data loading 클래스별샘플수확인 np.bincount Count number of occurrences of each value in array of non-negative ints 12

Text data loading Full code 13

Bag Of Words(BOW) Vector Space Model로텍스트를표현하는방법 단어들의출현횟수로표현 과정 토큰화 (tokenization) 문서를공백이나구두점을기준으로단어 ( 토큰 ) 들로분리 어휘사전구축 모든문서에나타나는단어들을수집하여사전구축 인코딩 어휘사전의각단어가문서마다몇번나타나는가를계산하여벡터로표현 14

Bag Of Words 15

BOW 로표현하기 Scikit-learn 에서제공하는 BOW 표현라이브러리 CountVectorizer Term Frequency (TF) 문서집합으로부터단어의수를세어카운트행렬을생성 TfidfVectorizer Term Frequency - Inverse Document Frequency (TF-IDF) 문서집합으로부터단어의수를세고 TF-IDF 방식으로단어의가중치를조정한카운트행렬을생성 16

어휘사전생성및확인 17

BOW 생성 입력데이터에대한 BOW 는 transform method 를이용 "The fool doth think he is wise," "but the wise man knows himself to be a fool" 18

영화리뷰에대한 BOW 학습데이터의 BOW 생성및특성출력 19

영화리뷰에대한 BOW 학습데이터의 BOW 생성및특성출력 20

영화리뷰의분류성능평가 나이브베이즈이용 21

영화리뷰의분류성능평가 분류기법중의하나인 LogisticRegression 이용 22

영화리뷰의분류성능평가 LogisticRegression 과교차검증을이용한예 여기서는학습데이터만을갖고 5 개의그룹으로분리하여테스트함 23

차원수를축소한성능개선 전체문서에서각토큰이출현하는최소의문서개수를지정할수있음 자주등장하지않는토큰을제외하여특징수를줄임 CountVectorize의인자로 min_df를부여 (df는 document frequency의약자 ) 차원수 : 74,849 -> 27,271 로줄어듬 24

차원수를축소한성능개선 min_df = 5 를사용할경우의성능 분류정확도는개선되지않으나, 차원축소로인한실행시간단축효과 참고로 max_df 도설정가능. 너무자주출현하는단어도분류에는도움이안됨 25

LogisticRegression 을이용한 full code 26

성능개선 ( 불용어제거 ) 불용어 (stopwords) 의미없는단어 (eg. the, of, all 등 ) 불용어로인해분류가정확히되지않을수있으므로제거해야함 Scikit-learn에서는 feature_extraction.text에불용어목록을갖고있음 27

성능개선 ( 불용어제거 ) 28

TF-IDF(Term Frequency - Inverse Document Frequency) 단어를갯수그대로카운트하지않고모든문서에공통적으로들어있는단어의경우문서구별능력이떨어진다고보아가중치를축소하는방법 29

TF-IDF(Term Frequency - Inverse Document Frequency) 30

단어의쌍으로구성하는 n-gram 방식 단어쌍으로표현하면단어의순서나결합하는단어의의미를표현할수있음 하나의단어만으로표현한경우 31

단어의쌍으로구성하는 n-gram 방식 Bigram 32

단어의쌍으로구성하는 n-gram 방식 1-gram 부터 trigram 까지모두포함 33

고급토큰화 ( 어간추출 -stemming) 어간 (stem) 활용어가활용할때변하지않는부분 예 ) 보다, 보니, 보고 -> 보 먹다, 먹은, 먹고 -> 먹 drawer, drawing -> draw 어간추출 (stemming) 어미를제외하고어간만을추출하는방법 참고 고급토큰화의다른방법 ( 표제어추출 ) 사전이표준말을추출하는방법 ( 먹다, 보다등 ) 34

어간추출에필요한패키지설치 nltk() Natural Language Toolkit a platform for building Python programs to work with human language data 설치 pip install nltk http://www.nltk.org/ 그리고다음코드를수행하여사전을다운로드 ( 시간이다소소요 ) 설치시오류가발생할경우 JDK 가설치되어있지않거나, 또는 JAVA_HOME 환경변수미설정 35

Stemming test 단어별 stemming 36

Stemming test 문장전체를 stemming 37

Stemming test 38

Stemming 기능을추가한 BOW 생성 39

영문자만을추출 ( 숫자및구둣점제거 ) 구두점및하나의문자로구성된단어제거 CountVectorizer(token_pattern =u'(?u)\b\w\w+\b') unicode 단어끝 단어시작 두문자이상 ( 영단어또는숫자 ) 구두점제거의다른방법 import re # Use regular expressions to do a find-and-replace review_text = re.sub("[^a-za-z]", " ", review_text) 40

Full code 실행시간이다소소요됨 41

Full code 42

43 2 장한글텍스트처리기법

KoNLPy 다양한버전의한글형태소분석기를사용할수있도록도와주는도구 http://konlpy.org/ko/latest/ 설치절차 JDK 설치 JPype1 설치 64bit OS 의경우다음사이트에서 JPype1-0.6.2-cp36-cp36m-win_amd64.whl 을다운로드한후에설치 Konlpy 설치 https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype pip install JPype1-0.6.2-cp36-cp36m-win_amd64.whl pip install konlpy 44

KoNLPy 가지원하는형태소분석기종류 Hannanum Kkma Komoran Mecab Twitter 45

Sample 한글데이터 ( 영화평 ) ratings_train.txt ratings_test.txt 구분자는 tab 으로구별함 빈문자열을 NaN 으로저장하지않고빈문자열자체로저장 46

Sample 한글데이터 ( 영화평 ) 47

문자열과평점추출 48

사용예 49

트위터형태소분석기사용법 50

나이브베이즈를이용한 full code 51

나이브베이즈를이용한 full code 실행시간이오래소요됨텍스트처리는특징수가너무많아서이를줄이는노력이필요하다.( 차원축소, 특징선택기법이용 ) 52

53 3 장 WordCloud

WordCloud 설치 : pip install wordcloud

WordCloud 예제 55

WordCloud 예제 56

WordCloud 예제 (more options) 57

WordCloud 예제 (more options) 58

한글 WordCloud 59

한글 WordCloud 60

한글 WordCloud(more options) 61

한글 WordCloud(more options) 62