분류 전체보기 175

[이론] 바이트페어 변환

정통적인 글(뉴스, 칼럼 등)은 기본적인 품사양식에 맞춰져있어 품사태그로 전처리 쉽지만,신조어가 포함되어있는 등에는 바이트페어 변환이 유용할 수 있음 바이트단위로 텍스트를 나눔빈도확률에 따라 최적화된 토큰셋 1. spm모듈텍스트뭉치를 텍스트 파일로 생성 텍스트 뭉치를 입력받게 되어있음텍스트파일에 구축을 해놓으면, 텍스트 파일을 그대로 입력해 학습 가능import sentencepiece as spmimport pandas as pdimport re#텍스트파일 열어주기df = pd.read_csv('./data/sentence2_test.csv')#인터페이스가 텍스트 뭉치를 넣게 만들어놨음# 추가 쓰기모드('a')로 텍스트 파일 열기with open('./data/sentence2_test.txt', 'a..

[이론] 형태소 분석

형태소분석기mecabOktKkmaHannanumKomorankiwipiepymecab과 kiwipiepy 설치https://python-mecab-ko.readthedocs.io/en/latest/https://bab2min.github.io/kiwipiepy/v0.16.2/kr/ kiwipiepy API documentation (v0.16.2)Package kiwipiepy Kiwipiepy란? Kiwipiepy는 한국어 형태소 분석기인 Kiwi(Korean Intelligent Word Identifier)의 Python 모듈입니다. C++로 작성되었고 다른 패키지에 의존성이 없으므로 C++ 컴파일이 가능한 환경이라bab2min.github.io!pip install python-mecab-ko k..

[이론] 텍스트 클렌징

text = df.loc[0,'text']text 1. 특수문자 제거## 특수문자 정규식을 첫번째 인자로 입력## 공백을 두번째 인자로 입력import rertext = re.sub(r'[^\w\s]', '', text)rtext파이썬 내부 모듈 rere.sub() 함수는 안에 정규식을 넣어, 정규식에 해당하는 문자 교체  r'[^\w\s]' 정규식\w : 알파벳, 숫자\s : 공백^ : 제외한 모든 특수문자를 찾음해당 특수문자를 빈 문자열('')로 대체하여 제거 2. 불용어 제거# 토큰화 후 반복문을 활용sptext = rtext.split(' ')st_words = ['','초','이','등']nw = []for w in sptext: #분리된 문자 하나 들고옴 if w not in st_wo..

[이론] 토큰화

텍스트 데이터는 데이터중에서도 가장 노이즈가 크며 변수가 많은 데이터입니다.따라서 텍스트를 분석하기 앞서 분석의 용이성을 위해 몇가지의 전처리 작업을 해줍니다.토큰화텍스트 클렌징형태소 분석바이트페어벡터화 : 빈도기반의 벡터import pandas as pddf = pd.read_csv('./data/reviews.csv')df = df.dropna()df 1. 토큰화 : split()text = df.loc[0,'text']text 띄어쓰기 기준으로 텍스트 분리text = text.split(' ')text 2. 숫자 인코딩## 고유 토큰을 찾기위해 set 구조 활용uq = set()for text in df['text']: sp = text.split(' ') for w in sp: ..

[이론] 키워드 분석

텍스트 데이터 전처리텍스트클렌징- 특수문자 제거- 불용어 제거 : 필요없는 자주 등장 단어 (ex. 특정 단어, 그리고, 또는..)- 소문자 변환 토큰화(Tokenization)단어 토큰화 : 의미있는 단어 기반으로 자르는 것 (그 의미단어를 토큰이라 함)문장 토큰화 : 긴 문장을 여러 문장으로 분리 벡터화(Embedding)특정 단어를 머신러닝 모델이 이해할수 있게끔 특정 벡터값(소숫값)에 임베딩키워드 시각화키워드 빈도 그래프빈도가 높은 순으로 나열 (주로 막대그래프)한눈에 파악 가능함 워드 클라우드사용된 키워드들의 빈도가 높을수록 글자 크기를 크게 해서 표현함흥미 유발 장점 lDA토픽 모델링비슷한 키워드끼리 군집화단어의 유사도로 군집화시켜서 그룹별로 볼 수 있게함 Word2vec 유사도 그래프키워드간..

[실습] 웹 크롤링

1. 네이버 블로그 홈에서 원하는 키워드로 검색하여 나온 게시물 내용을 10페이지 이상 크롤링- 게시물에 내용에는 제목, 요약글, 날짜, 작성자가 포함2. 날짜 검색을 활용하여 기간을 월별로 나누어 최근 6개월의 글을 크롤링 (선택) 1. 게시물 크롤링from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom time import sleepimport randomimport pandas as pddriver = webdriver.Chrome()url = f'https://section.blog.naver.com/Search/Post.naver?pageNo=1&rangeType=ALL&orderBy=sim&keyword=%EB..

[이론] 웹 크롤링2

네이버스토어 리뷰 크롤링from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom time import sleepimport randomimport pandas as pddriver = webdriver.Chrome()url = 'https://search.shopping.naver.com/catalog/36469633619?&NaPm=ct%3Dm5dgs6pk%7Cci%3D015aafa6380fee91492086d7c024ada7555e941d%7Ctr%3Dslcc%7Csn%3D95694%7Chk%3D9bd7db85c193e4cf84550e4f83d011516d101f48'driver.get(url)  리뷰 가져오기상위요소 ..

[이론] sellenium을 활용한 크롤링

웹드라이버 구동from selenium import webdriver# driver = webdriver.Chrome('./chromedriver.exe') #115 버전이하driver = webdriver.Chrome() #116 버전이상 selenium모듈에서 webdriver 클래스로 원하는 브라우저에서 열 수 있음chrome이 아닌 브라우저 사용시 webdriver설치 필요 get() : url로 원하는 주소 접속url = 'https://play.google.com/store/apps/details?id=com.towneers.www'driver.get(url) 원하는 요소를 찾기 : 2가지 선택자 1. CSS_SELECTOR from selenium.webdriver.common.by impo..

[이론] 웹 크롤링

웹 크롤링 : 웹 페이지에서 텍스트 데이터를 자동으로 수집 잘하면 어필이 가능한 기술!웹페이지에 대한 소스가 어려운 편 컴퓨터가 자동으로 수집하기 때문에 정보를 지속적으로 모을 수 있음직접 데이터 패턴 추출하는 과정이 필요 과정- 목표 설정- HTML 분석- 요청 및 응답 처리 : 웹을 실행시키고 필요한 매크로 방식으로 데이터 노출시키는 작업- 데이터 추출 : 필요한 데이터만 파싱, 저장- 저장 및 활용 주의- 법적 이슈를 피하기 위해 서비스 약관 준수( 특히 이미지 크롤링하여 상업적 이용 주의)- robots.txt를 확인하여 크롤링 허용 여부 확인- 과도 요청으로 인한 ip 차단 주의 (서버 부하)→ 적절한 딜레이 설정 필요크롤링도 파이썬에서 진행 Selenium API웹사이트의 동적인 상호작용에 대..

[실습] 분류모델

[혈압 분류] 국민건강보험공단_건강검진정보(분류) 파일에서 혈압구분 을 분류하는 모델 구성하기import pandas as pddf = pd.read_csv('./data/국민건강보험공단_건강검진정보(분류).csv')df.info()RangeIndex: 337130 entries, 0 to 337129Data columns (total 22 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 기준년도 337130 non-null int64 1 가입자일련번호 337130 non-null int64 2 시도코드 337130 non-..