전체 글
-
빈도 분석(frequency analysis)- 영어편Text Analysis 2021. 11. 24. 22:33
*본 게시물은 21-2학기 연세대학교 일반대학원 온라인데이터수집과분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 앞선 포스트들에서 Counter를 사용한 빈도 분석의 예들을 보여드렸었습니다. 이 포스트에서는 보다 체계적이고 본격적인 빈도 분석의 예를 다루고자 합니다. 이번 포스트에서는 영어 text를 원시 말뭉치로 하겠습니다. 빈도분석의 목적 빈도분석은 왜하는걸까요? 가장 얻기 쉬운 정보라서? 그럴 수도 있겠지만 빈도분석의 주된 목적은 '주요 키워드 찾기'입니다. '주요 키워드'를 찾는 것이 중요한 이유는 주요한 주제와 연결되기 때문입니다. 즉 빈도분석은 주요 키워드를 통해 주요 주제가 무엇인지 찾고자 할 때 사용하는 분석 기법입니다. 빈도분석의 순서 및 방법 순서는 '1. 텍스트 준비 -> 2. 전..
-
Text 전처리(preprocessing)- korean 한글편Text Analysis 2021. 11. 24. 18:15
*본 게시물은 21-2학기 연세대학교 일반대학원 온라인데이터수집과분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 드디어 한글 전처리입니다. 앞서 영어는 단어가 token이 된다고 했습니다. 때문에 띄어쓰기를 기준으로 간단하게 토크나이징을 할 수 있었는데요, 한글은 다릅니다 ㅠ_ㅠ 한글은 '형태소'를 단위로 하기 때문입니다. 학창시절 배우셨듯이 한국어는 교착어적 특성을 가집니다. 즉 조사, 어미가 붙어 다양한 곡용, 활용이 이루어집니다. 때문에 tokenizing을 위해서는 이 조사, 어미까지 고려하는 tokenization이 필요합니다. 가령 '나는 티스토리에 글을 쓴다'라는 문장의 경우, '나, 는, 티스토리, 에, 글, 을, 쓰, ㄴ다'와 같이 조사, 어미까지 분리하는 토크나이징이 이루어지게 됩니..
-
Text 전처리(preprocessing)- english 영어편Text Analysis 2021. 11. 24. 00:31
*본 게시물은 21-2학기 연세대학교 일반대학원 온라인데이터수집과분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 앞선 포스트에서 잠시 text 전처리는 영어와 한국어가 다르다고 말씀드렸었습니다. 언뜻 생각해도 영어는 알파벳이고 한글은 한글자모이니 다를 것 같기도 한데... 정확히 이야기하라고 하면 어렵습니다.ㅠㅠ 우선 텍스트 전처리가 무엇인지부터 설명하겠습니다. 텍스트 전처리 텍스트 전처리란, 텍스트 분석에 적합한 형태로 텍스트를 준비하는 것을 말합니다. 전처리를 거치게 되면 조금 더 정확한 분석 결과 도출이 가능합니다. 전처리 이후의 결과물은 '불용어가 제거된 특정한 품사들의 단어(ex. 명사)입니다. 비단 명사뿐만이 아니라도, 최종적으로 선택되는 단어들은 해당 문서의 특성을 잘 나타내는 것이어야 ..
-
Text Analysis의 시작Text Analysis 2021. 11. 23. 22:45
*본 게시물은 21-2학기 연세대학교 일반대학원 온라인데이터수집과분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 온라인에서 데이터를 '수집'하는 것을 배웠으니 이제는 '분석'을 해야합니다. 그러기 위해서는 Text Analysis에 대해 먼저 배워야 합니다. (이 수업은 언론홍보영상학과에서 열렸기 때문에 비전공자로써 교수님께서 수업시간에 text analysis를 사회과학적으로 설명해주시는 것이 매우 인상깊었습니다.) Text Analysis란 말 그대로 텍스트를 분석하는 것입니다. 분석 '방법'에는 크게 2가지가 있습니다. 하나, 사람이 manually하게 분석하는 것 둘, 컴퓨터를 이용해서 분석하는 것입니다. 이 수업도 그렇고 NLP도 그렇고 모두 '컴퓨터'를 통해 text를 분석하게 됩니다. 그..
-
웹 스크래핑 기초: 소스코드 읽기와 태그 찾기Python/NLP용 python 2021. 10. 23. 17:52
*본 게시물은 21-2학기 연세대학교 일반대학원 온라인데이터수집과분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 웹스크래핑은 흔히 '크롤링'으로 알고 있는 온라인 데이터 수집 방법입니다. 다만 스크래핑은 하나의 웹 페이지에 존재하는 정보를 가져오는 행위인 반면 크롤링은 전체 사이트를 긁어온다는 점에서 차이가 있습니다. 웹에는 굉장히 많은 데이터가 존재합니다. 웹 페이지들로 구성된 홈페이지는 서버에서 raw data인 소스코드를 받아서 사용자들에게 예쁘게 보여주는 역할을 합니다.(raw data인 소스코드는 chrome > '페이지 소스 보기'로 확인 가능합니다.) 소스코드는 다양한 language들로 작성됩니다. 특히 html이 많이 쓰입니다. html 소스코드는 특히 여러개의 태그로 구성됩니다. 가..
-
file read and write 코드Python/NLP용 python 2021. 10. 23. 12:13
*본 게시물은 21-2학기 연세대학교 일반대학원 온라인데이터수집과분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 약 2년 가량 자연어 처리 코드들을 만지면서 제일 많이 접했던 코드는 파일(주로 말뭉치)을 읽어오거나 쓰는 것(주로 전처리한 내용들)이었습니다. BUT 해도해도 맨날 헷갈림 ㅋㅋㅋ 수업 내용 정리할 겸 계속 기억해놓을 겸 정리하려고 합니다. 1. 파일 열고 읽기(open and 'r'ead) 일단 파일을 읽어오는 함수 open()이 있습니다. 이 open()은 인자로 '파일 이름/경로', 와 '모드'를 받습니다. 가령 test.txt라는 파일이 있습니다. 이 파일은 다음과 같은 내용을 담고 있습니다. -------------------- 1 2 3 4 5 -------------------..
-
4. 자료형(data types)- 리스트(list)Python 2021. 9. 11. 14:48
*본 게시물은 21-2학기 연세대학교 일반대학원 온라인데이터수집과분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 대망의 리스트입니다. 리스트는 자연어 처리를 하는 사람이라면 정말 모를 수가 없을 정도로 유명하고, 또 저같은 문과 쪼렙들(?)에게는 딕셔너리와 더불어 두려움의 대상으로 다가오는! 도대체가 [:-1]은 뭐고 [:]가 뭔지 눈물을 흘리게 만드는 자료형입니다... 리스트 겹괄호 쓰여지면 토크나이징도 제대로 안되는거 아시져 흑... 1. 리스트의 정의 아무튼 리스트는 '여러 개의 데이터, 값을 저장하기 위해' 사용되는 데이터 타입입니다. 저장되는 데이터들은 타입이 달라도 상관 없습니다. 리스트 선언은 '[]'(각괄호; square brackets)로 선언하며, 데이터들은 쉼표로 구분됩니다. 또한..
-
3. 자료형(data types)- 숫자 numbersPython 2021. 9. 11. 13:11
*본 게시물은 21-2학기 연세대학교 일반대학원 온라인데이터수집과분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 앞선 게시물에서 데이터 타입에는 6개가 있다고 말씀드렸습니다. 숫자, 리스트, 문자열, 딕셔너리, 튜플, 집합인데 여기서는 먼저 숫자에 대해 정리하려 합니다. 1. 숫자 종류(4) (1) 정수(int; integer) 보편적으로 생각하는 그 숫자입니다. 자연수와 0, 그리고 음의 정수 모두를 말합니다. -1000, -23, 0, 1, 2, 100000000... (2) 소수(float; floating point numbers) 소숫점 달린 애들입니다. -3.141592, -1.1, 0.00001, 2.4 (3) 복소수(complex numbers) 실수(real number)와 허수(im..