분류 전체보기 16

[선형대수] 1차 연립방정식과 가우스소거법

Gauss Elimination(가우스 소거법)은 선형 연립 방정식을 푸는 데 사용되는 방법 중 하나로, 행렬의 연산을 통해 계수 행렬을 삼각행렬(upper triangular matrix)로 만들어 원하는 해를 구하는 과정이다. 삼각행렬 중 대각선에 위치한 것은 pivot으로 0이 되면 안된다. uvw로 설명을 하겠다 (1) 2u + v + w = 5 (2) 4u - 6v = -2 (3) -2u + 7v +2w = 9 여기서 가우스 소거법의 첫번째 조건은 변수의 계수가 0이 아닌 것을 첫번째로 소거하는 것이다. 또한, 기준이 되는 첫번째 식은 모든 변수가 존재해야 한다. (1) 2u + v + w = 5 이것을 기준으로 두자. 기준이 되는 식으로 (2), (3)번 식의 변수를 하나식 소거한다. (2)의..

카테고리 없음 2023.08.19

[선형대수] 선형성 정의 및 1차 연립방정식의 의미

Linearity(선형성)을 가지기 위해서는 2가지의 조건이 필요합니다. 첫번째는 중첩의 원리(Superposition) f(x1+x2) = f(x1)+f(x2) 두번째는 Homogeniety의 원리 f(ax) = af(x) * a = 상수 이 두가지의 조건이 모두 충족한 것이 바로 선형성을 가진다고 말할 수 있다. f(a1x1+a2x2) = a1f(x1)+a2f(x2) 이 조건을 생각하며 직선의 방정식 중 어떤 것이 선형성을 가지는 지 알아보자. 1) y = mx 2) y = mx + n 1) m(a1x1 + a2x2) = ma1x1 + ma2x2 = m(a1x1 + a2x2) = 선형성을 가진다 2) m(a1x1 + a2x2) + 2n = a1(mx1 + n) + a2(mx2 + n) = 선형성을 가..

카테고리 없음 2023.08.19

14. 한글 text 데이터 분석 및 전처리

우리가 영어로 된 text data를 전처리 하고자 할때는 nltk라는 라이브러리를 사용했다. 그런데 nitk는 한국어를 지원하지 않는다. 그래서 한글용 라이브러리인 Konlpy를 사용한다. 이건 좋긴 한데, 설치가 매우 까다롭다. from konlpy.tag import Okt tokenizer = Okt() tokens = tokenizer.pos("아버지 가방에 들어가신다.", norm=True, stem=True) print(tokens) [('아버지', 'Noun'), ('가방', 'Noun'), ('에', 'Josa'), ('들어가다', 'Verb'), ('.', 'Punctuation')] 테스트를 해보면 다음과 같다. nltk는 nltk.word_tokenizer(문장 입력) >> nltk..

카테고리 없음 2023.07.10

13. 네이버 뉴스 데이터 크롤링

urlopen(url) 함수를 request.get(url).content 함수로 바꿔서 사용한다고 말한 적이 있다. 지금이 바로 그 시점이다. urlopen()함수의 한계점이란, url 주소 중 한글이 포함되면 인식을 할 수 없게 된다. 바로 에러가 터진다. 그래서 request.get(url)로 url 주소의 html 정보를 가져오고, content 함수로 html 정보를 컴퓨터가 읽기 쉽게 byte로 받는 것이다. byte로 받는 이유는 BeautifulSoup 함수는 바이트 정보가 필요하기 때문이다. 우선, 필요한 라이브러리를 import 해주자. import requests from urllib.request import urlopen from bs4 import BeautifulSoup imp..

카테고리 없음 2023.07.10

12. Text Data

만약 A문서, B문서 두개의 text 문서가 있다고 가정을 해보자. 우리는 A문서와 B문서 두 문서의 유사도 분석을 진행하고자 한다. 문서의 유사도를 분석할때 각 문서의 stopwords(불용어)를 제거한 모든 문장의 단어의 출현 횟수를 counting 해주고, 그 단어들로 두 문서의 내용이 얼마나 유사한지 유사도를 분석한다. 그런데 두 문서의 유사도 분석에서 중요한 것이 있다. 만약 우리가 문서를 작성할 때 문서의 내용과는 관계 없이 흔히 쓰이는 표현 혹은 단어가 있다고 생각을 해보자. A문서와 B문서가 완전 상반된 내용을 가지고 있는 문서라도 흔히 쓰이는 표현 혹은 단어로 인해 유사도가 높다고 분석이 될 수도 있는 경우가 발생한다. 이때 TF-IDF vectonnizer를 사용한다. TF-IDF ve..

카테고리 없음 2023.07.06

11. Text Data

이제, darkknight.txt 파일에서 자주 등장하는 명사 단어를 추출하는 작업을 진행하겠습니다. 가장 많이 사용하는 단어는 Counter 함수를 사용하면 편리합니다. 자주 등장하는 명사 단어를 추출하기 전까지 코드를 짜겠습니다. import nltk from nltk.corpus import stopwords from collections import Countera f= open('darkknight.txt', 'r', encoding = 'utf-8') file_line = f.readline() token = nltk.word_tokenize(file_line) token_pos = nltk.pos_tag(token) stopWords = stopwords.words('english') sto..

카테고리 없음 2023.07.06

10. Text Data 전처리 작업

앞서 설명한 web scraping으로 얻어낸 text data를 전처리 하는 작업을 시작하겠습니다. 우선 얻어낸 text data를 하나의 str 문자열 변수로 묶어 줍니다. str_munja = '안녕하세요. 저는 str 문자열 변수로 묶인 text data입니다.' 이 문자열을 각각의 단어로 쪼개고, 각 단어의 품사를 구분하고, text data를 분석하는데 필요 없는 형태소를 제거하는 작업을 해주면 됩니다. 3가지의 작업 단계가 있는데, 사실 text data를 분석하는 과정에는 각 단어의 품사를 구분하는 과정은 중요하지 않습니다. 첫번째, Tokenize 작업(형태소 분석) text data 전체를 하나의 단어 수준으로 쪼개는 작업을 의미합니다. 리스트 형식으로 쪼개줍니다. ['안녕하세요', '..

카테고리 없음 2023.07.05

09. Web Scraping

이제 네이버에 영화 제목을 입력 후, 각종 정보를 scraping 해보자. from bs4 import BeautifulSoup from urllib.request import urlopen url='https://search.naver.com/search.naver?&query=%EC%8A%A4%ED%8C%8C%EC%9D%B4%EB%8D%94%EB%A7%A8%EB%85%B8%EC%9B%A8%EC%9D%B4%ED%99%88' URL = urlopen(url) html_rsp = BeautifulSoup(URL, 'html.parser') title = html_rsp.find('strong', {'class':'_text'}) print(title.get_text()) 스파이더맨 노웨이 홈의 제목을 출력..

카테고리 없음 2023.07.04

08. Wep Scraping

이제 다음 사전에서 'happiness' 단어를 검색해서 단어 이름과 뜻을 출력해주는 간단한 wep scraping 코드를 짜보자. 앞서 소개한 BeautifulSoup과 urlopen을 사용하기 위해 import 해주자. from bs4 import BeautifulSoup from urllib.request import urlopen 그리고 다음 사전의 url 주소와 'happiness' 단어를 입력했을 때 url 주소를 분석하고 str 문장으로 만든다. word = happiness url = 'https://alldic.daum.net/search.do?q='+word http_rsp = urlopen(url) html_rsp = BeautifulSoup(http_rsp, 'html.paser')..

카테고리 없음 2023.07.03

07. Web Scraping

이제 web scraping에 대해 공부를 해보자. web scraping은 특정 데이터를 web link에 들어가서 모두 긁어 오는 것을 말한다. 간단한 web scraping은 프로그램을 사용할 수 있고, 복잡한 web scraping은 직접 code를 짜야 한다. 프로그램을 사용한 web scraping은 엄청 단순한 web scraping만 할 수 있다. web scraping의 대표적인 프로그램인 ScrapeStorm으로 설명을 하겠다. ScrapeStorm 화면에 web scraping을 할 url 주소를 입력해주자. 나는 coupang의 남성패션 페이지 url 주소를 입력해주겠다. 흔히 보이는 쿠팡의 화면이다. 이 url 주소를 ScrapeStorm 에 입력하면 표 형식으로 데이터를 정리해준..

카테고리 없음 2023.07.03