Data Science
-
[Data Visualization] folium으로 지도에 데이터 시각화하기Data Science/Data Visualization 2021. 7. 25. 18:54
위도, 경도와 같은 지리 정보를 가지고 있는 데이터는 아래처럼 scatter plot 을 이용하기도 합니다. 하지만 지도 위에 표시해서 위치 정보에 대해서 자세히 알아보고 싶을 때가 있습니다 . 이럴 때 folium을 이용해서 지도 위에 정보를 표시해볼 수 있습니다. folium을 이용해 지도 위에 데이터를 표시하기 위해 위도, 경도 데이터가 필요해서 서울 열린데이터 광장에서 서울시 나눔카 거점리스트 정보 데이터를 다운받아 사용해보았습니다. http://data.seoul.go.kr/dataList/OA-13544/S/1/datasetView.do 서울시 나눔카 거점리스트 정보 서울시 통합 나눔카로서 통합 거점정보 정보를 제공한다. data.seoul.go.kr pandas를 이용해서 데이터를 불러오겠습..
-
[Data Visualization] 데이터 시각화 - plotly : Interactive scatter plotData Science/Data Visualization 2021. 7. 13. 22:32
Interactive Plot은 마우스를 가져다 대면 해당 데이터의 정보를 표시해 주고, 줌인 등 기능을 활용할 수 있는 그래프입니다. 파이썬에서 간단하게 plotly 라이브러리를 이용해서 interactive plot을 그릴 수 있습니다. Plotly Scatter Plot seaborn의 penguins 데이터를 사용해보겠습니다. 먼저 load_dataset으로 데이터를 불러와줍니다. import seaborn as sns df = sns.load_dataset('penguins') df 먼저 간단하게 x와 y의 관계를 나타내는 scatter plot을 그려보겠습니다. 마우스를 가져다 대면 해당 데이터의 x, y 값이 표시되어 데이터에 대해서 상세한 내용을 알 수 있습니다. import plotly...
-
[Data Engineering] Spotify API spotipy 사용하기Data Science/Data Engineering 2021. 7. 3. 21:46
먼저 spotipy 를 사용하기 위해서는 spotipy를 설치해야 합니다. pip install spotipy 스포티파이의 api를 사용하기 위해서는 먼저 개발자 계정을 등록해야 하는데 기존에 스포티파이에 사용하는 계정이 있다면 해당 계정에 로그인하고 개발자 계정을 등록하기만 해도 되고, 기존에 사용하던 계정이 없다면 계정을 만든 후 개발자 계정을 등록하면 사용할 수 있습니다. developer.spotify.com My Dashboard | Spotify for Developers Create and manage Spotify Applications to use the Spotify Web API. Obtain credentials to authenticate with Spotify and fetch ..
-
[Data Engineering] selenium으로 리뷰 크롤링하기Data Science/Data Engineering 2021. 6. 27. 21:38
코스메틱 제품의 리뷰 분석을 위한 데이터를 수집하기 위해, 동적 페이지의 리뷰 크롤링이 가능한 selenium을 사용하여 올리브영의 제품 리뷰를 크롤링 해보았습니다. 먼저 selenium을 사용하기 위해서는 설치를 해주어야 합니다. ! pip install selenium 1) 페이지 넘기는 함수 먼저 리뷰 페이지를 넘기기 위한 함수를 만들어주기 위해 크롬에서 F12를 누르거나 개발자 도구를 클릭하고, 페이지 버튼 쪽에 마우스를 대면 페이지 바가 'div.pageing'라고 css selector가 표시되는 것을 볼 수 있습니다. 그리고 현재 페이지는 strong, 현재 페이지가 아닌 나머지 페이지는 a 로 태그가 되어 있는데, 이를 활용해서 페이지를 넘기는 함수를 만들어줄 수 있습니다. # 페이지 넘기..
-
[Python] 문자열 한 글자씩 자르기Data Science/Python 2021. 5. 19. 23:47
파이썬에서 문자열을 나눌 때는 split을 사용할 수 있다. .split() 이렇게 괄호 안에 아무것도 없을 때는 공백을 기준으로 나눠주고 .split(',') 괄호 안에 특정 값을 넣어주면 그것을 기준으로 문자열을 나눠준다. "I am Groot".split(' ') "apple,banana,mango,cherry".split(',') 하지만 문자열이 한 글자씩 나눠져 들어있는 리스트가 필요했고, 그 방법을 찾아보다가 list()를 발견했다. 아래와 같이 간단하게 list()의 괄호 안에 문자열을 넣어주면 한 글자씩 나눠진 문자열이 담긴 리스트를 돌려준다. list("I am Groot") 데이터 타입이 문자열인 숫자도 마찬가지로 나누기가 가능하다. list("01012345678") 단순히 list(..
-
[Deep Learning] Bag-of-Words(BoW) - CountVectorizer, TF-IDF VectorizerData Science/Machine Learning & Deep Learning 2021. 4. 18. 23:36
머신러닝 모델에 텍스트를 이용하기 위해서는 텍스트를 토큰화한 것을 컴퓨터가 이해할 수 있도록 벡터화 해주어야 합니다. 벡터화 방법 중 BoW( Bag of Words )는 단어의 존재 여부와 그 빈도 정보만을 고려해 벡터화하는 모델입니다. CountVectorizer 단어의 출현 빈도로 여러 문서를 벡터화하는 방법 행에 문서, 열에 토큰, 그 값(value)으로 문서에서 토큰의 출현 횟수 모든 문자를 소문자로 전환하여 계산 from sklearn.feature_extraction.text import CountVectorizer # Count vectorizer. vect = CountVectorizer(stop_words = 'english', max_features = 20) # fit & trans..
-
[Deep Learning] NLP - 어간추출(stemming) & 표제어추출(lemmatization)Data Science/Machine Learning & Deep Learning 2021. 4. 16. 15:46
어간 추출과 표제어 추출은 token 의 수를 줄일 수 있습니다. apple, apples가 있다면 apple 하나로 하여 단어의 수를 줄일 수 있는 것입니다. 어간추출 Stemming 접사를 제거하고 단어의 의미가 포함된 핵심 부분만 남겨 변환 어간과 접사 분리( ing, ed, s 와 같은 것들을 제거 ) ex ) wolves -> wolv from nltk.stem import PorterStemmer ps = PorterStemmer() text = 'Wolves were feeding in the forest' words = text.split(" ") for word in words: print(ps.stem(word)) 표제어추출 Lemmatization 단어들은 기본 사전형 단어 형태인 l..
-
[Deep Learning] NLP - 통계적 트리밍(Trimming)Data Science/Machine Learning & Deep Learning 2021. 4. 15. 00:58
자연어 처리에서 불용어 사전을 이용해서 불용어를 직접 제거해주는 방법도 있지만, 통계적인 방법을 이용해서 전체 말뭉치에서 너무 많이 쓰였거나 너무 적게 쓰인 토큰을 제거해주는 방법도 있습니다. 위 왼쪽 그래프는 토큰화 후 토큰의 누적 분포를 나타낸 그래프입니다. 그래프를 통해 소수의 단어들이 전체 텍스트 데이터의 약 90%를 차지하고 있음을 알 수 있습니다. 이는 전체 말뭉치에서 자주 나타나는 단어들(그래프의 왼쪽)이거나 자주 나타나지 않는 단어들(그래프의 오른쪽)로 너무 많이 또는 너무 드물게 나타나기 때문에 텍스트 큰 의미를 가지지 못하고 통찰력을 제공하지 못할 확률이 높습니다. 따라서 통계적 트리밍으로 너무 많이 쓰인 토큰과 너무 적게 쓰인 토큰을 제거하여 우측 그래프와 같은 분포를 만들어 주겠습니..