Python 7

pymongo 특정한 문자를 포함한 데이터 찾기

MongDB를 jupyter 환경에서 python언어로 사용할수 있는 방법에 대해 알아보도록 하겠습니다. from pymongo import MongoClient client = MongoClient("mongodb://localhost:27017/") # list_database_names() db에 존재하고 있는 database의 이름을 확인할수 있음 print(client.list_database_names()) ['aaa','admin'] db = client['aaa'] # 'aaa'이라는 database에 연결 table = db['table'] # 'table'이라는 table에 연결 # find_one()은 한 건의 데이터만 찾음 #여기서는 'channelType' 컬럼에서 'nav'를 포..

MongoDB 2022.07.08

[NLP②] 네이버 쇼핑 리뷰 전처리

이번에는 저번시간에 수집했던 리뷰데이터를 전처리 해보도록하겠습니다. 일반적인 전처리의 범위는 중복제거, 결측치 제거, 특수문자 제거 등이 있으며 리뷰를 의미있는 최소한의 단위로 쪼개서 품사를 태깅하는 행위를 형태소분석 및 토크나이징이라고 하는데 이건 다음 시간에 하도록 하고 이번에는 중복제거, 특수문자 제거 등의 처리를 해보겠습니다. 참고로 이 데이터는 저번시간에 수집한 네이버 쇼핑 리뷰를 사용하여 이어나가보도록 하겠습니다. df4=add_dataframe(name_,category_,reviews,stars,cnt) df4 df4.info() Int64Index: 2000 entries, 1 to 2000 Data columns (total 4 columns): # Column Non-Null Coun..

PYTHON 2022.06.26

[NLP①] 네이버 쇼핑 리뷰 크롤링 (생수)

이번에는 정형데이터가 아닌 비정형데이터를 분석하도록 하겠습니다. 분석하기 앞서 데이터를 직접 추출할건데 네이버 쇼핑에 판매하고 있는 삼다수 리뷰를 긁어 올것입니다. NLP 시리즈에서는 삼다수, 백산수, 석수, 몽베스트, 스파클, 아이시스 총 6가지의 브랜드의 데이터를 각각 2,000개씩 긁어와서 약 12,000개를 사용할 예정입니다. 네이버 쇼핑에서 제공하고 있는 리뷰는 네이버 쇼핑 자체에서 만들어진 리뷰가 아니라 "우물샵", "NS홈쇼핑", "장대리"등 다양한 인터넷 쇼핑몰에서 리뷰를 긁어오고 있는 형태입니다. from selenium import webdriver from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup..

PYTHON 2022.06.19

[정규식] re 라이브러리

정규식이란 영어 소문자, 대문자, 한글등 자연어 처리를 하기 위해서 사용되는 개념으로 파이썬에서는 re 라이브러리를 이용해서 주로 처리한다 import re p = re.compile(r'[a-z]+') m=p.match("python") print(m) 이런식으로 소문자에 맞는 문자를 매칭시키거나 search, findall, finditer 4가지의 메서드를 사용할수있으며 각 기능은 다음과같다 Method 목적 match() 문자열의 처음부터 정규식과 매치되는지 조사한다. search() 문자열 전체를 검색하여 정규식과 매치되는지 조사한다. findall() 정규식과 매치되는 모든 문자열(substring)을 리스트로 돌려준다. finditer() 정규식과 매치되는 모든 문자열(substring)을 ..

PYTHON 2022.04.16

[PYTHON 기초] 가변인자 *변수명이란?

def profile(name, age, hob1,hob2,hob3): print("이름 : {0}\t 나이: {1}\t".format(name, age), end="") print(hob1,hob2,hob3) profile("홍길동",20,"독서","등산","낚시") 위와 같이 취미를 포함한 인적사항을 출력하는 함수를 정의한다고 하면 저렇게 표현할 수 있을 것이다. 하지만 사람에 따라서 흥미가 1개일수도 여러개일수도 있는데 그때마다 함수를 수정하기는 불편할것이다. 이때를 위해 만든게 바로 가변인자이다. def profile(name, age, *hobby): print("이름 : {0}\t 나이: {1}\t".format(name, age), end="") for hob in hobby: print(h..

PYTHON 2021.02.27

[PYTHON 기초] range vs randrange

문제를 풀던 도중 다음과 같이 에러가 떠서 range와 randrange의 특성에 대해서 알아보았다. randrange는 주어진범위 안에서 int형 숫자를 1개 추출하는것이고 range는 정수형태가 아니여서 int가 씌워지지도 않고 list로는 if 문에서 값의 크기를 비교할수가 없다. 따라서 정상적으로 문제를 풀면 다음과같다. from random import * cnt =0 for i in range(1,51): good_time=randrange(5,51) if 5

PYTHON 2021.02.27

[PYTHON 기초] random모듈 사용 (중복추첨, 중복불가추첨)

random 모듈을 사용하여 추첨을 하는문제( 중복당첨불가) range함수를 사용하여 1~10 정수를 입력해준다음 list 타입으로 바꿔서 4명을 뽑은다음 치킨당첨자 1명을 먼저 배정하고 커피당첨자 3명을 추첨한다. # 회원 10명중에서 치킨1명 , 커피3명 추첨하기(중복당첨불가) from random import * users=range(1,101) users=list(users) shuffle(users) print(users) winners= sample(users,4 ) print("치킨 당첨자 : {0}".format(winners[0])) print("커피당첨자: {0}".format(winners[1:])) 이렇게 하면 중복으로당첨이 불가능한데 중복으로 당첨이가능하게 하는 방법은 이런식으로 ..

PYTHON 2021.02.27