학교/졸프 15

크롤링 속도 개선

selenium driver.find_element_by_css_selector() HTML 코드 전체에서 매칭되는 처음 요소를 반환한다. driver.find_elements_by_css_selector() HTML 코드 전체에서 매칭되는 모든 요소를 리스트로 반환해준다. 발생했던 문제 꽤 많은 시간이 소요되었는데도 스크롤이 내려가지 않았다. 수집한 이미지의 정보가 출력되는 속도를 보니 너무 많은 시간이 소요되었다. 코드 수정 # 수정 전 images = driver.find_elements_by_css_selector(".grid-item") # 수정 후 images = driver.find_elements_by_css_selector(".lazy") 크롤링할 HTML 파일을 많이 가져오면, 네트워크..

학교/졸프 2023.07.09

LDA(Latent Dirichlet Allocation

토픽 모델링(Topic Modeling) 문서의 집합에서 토픽(주제)을 찾아내는 프로세스 LDA(Latent Dirichlet Allocation) 잠재 디리클레 할당 토픽 모델링 기법의 대표적인 알고리즘 토픽별 단어의 분포, 문서별 토픽의 분포를 추정하는 확률적 모형 LDA는 문서들은 토픽들의 혼합으로 구성되어 있으며, 토픽들은 확률분포에 기반해 단어들을 생성한다고 가정한다. 위의 사진을 보면 문서에 담긴 텍스트들의 키워드를 하나씩 뽑아 토픽별로 인덱싱하여 분류하고, 특정 토픽에 특정 단어가 나타날 확률을 보여준다. 문서를 보면 노란색 토픽에 해당하는 단어들이 많기 때문에 위 문서의 메인 주제는 노란색 토픽일 가능성이 크다. 노란색 토픽에선 'gene'이라는 단어가 등장할 확률이 제일 높기 때문에 '유..

학교/졸프 2021.08.19

Doc2Vec

Word2Vec이 확장된 임베딩 방법 구글에서 발표한 문서를 vector로 변경하는 document embedding 모델 Doc2Vec에선 paragraph id(document id)를 하나의 단어(paragraph token)처럼 사용해 문서를 훈련 데이터로 사용 Doc2Vec은 document id와 각 문서, 문장에 등장했던 단어들이 서로 가까워지도록 document vector를 움직인다. 단어가 다르더라도 단어의 벡터들이 비슷하다보니 각 문장의 document vectors가 비슷해진다. v(cat) ≃≃ v(dog), v(table) ≃≃ v(board) 이기 때문에 v(‘a little cat sit on table’) ≃≃ v(‘a little dog sit on board’) 가 된다..

학교/졸프 2021.08.17

selenium 네이버 뉴스 크롤링

구현환경 : python, vscode 클롤링 할 사이트 : https://news.naver.com/main/history/mainnews/list.nhn 1. selenium 설치 terminal에 입력 pip install selenium​ 2. 사용할 브라우저 드라이버 다운로드 우측 상단의 다음과 같은 버튼 클릭 > 도움말 > 크롬 정보 에서 자신의 크롬 버전 확인해 맞는 버전 설치 chrome : https://sites.google.com/a/chromium.org/chromedriver/downloads Firefox : https://github.com/mozilla/geckodriver/releases Edge : https://developer.microsoft.com/en-us/mic..

학교/졸프 2021.06.29

AWS EC2에서 Flask 구동하기

1. AWS에서 서버 생성하기 다음 링크 따라하기 https://wldwlddl59.tistory.com/13 졸업프로젝트에서는 free tier로 생성했다. 2. puTTy https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 3. puTTygen 이용해 프라이빗 키 변환 puTTy를 설치할 때 puTTygen도 설치 되어있을 것이다. 실행 시키기 Load 클릭 EC2 생성하며 다운받은 key 파일(.ppk || .pem) 선택 .ppk가 안 보인다면 아래와 같이 변경 암호없이 키 저장에 대한 경고가 나올시 '예' 클릭 키 페어에 사용한 이름과 동일한 파일 이름으로 저장을 선택한다. 4. puTTy 실행하기 HostName에 IP address..

학교/졸프 2021.06.28

Nginx와 Flask를 활용해서 서빙하기

Flask WSGI 웹 애플리케이션 프레임워크 WSGI 파이썬으로 웹서버와 웹 애플리케이션 개발을 위해 만들어진, 파이썬 표준 Gateway Interface WSGI 인터페이스에 맞춰서 제작된 프레임워크가 uWSGI입니다. Nginx apache와 같은 웹서버이고 비동기 이벤트 기반으로 만들어짐 FLASK(웹 애플리케이션)와 Nginx(웹서버)를 uWSGI(WSGI 인터페이스)를 이용해 서로 연결시켜 서비스 할 수 있다. 1. FLASK 서버 설치하기 Anaconda Navigator 실행 만들어둔 가상환경 클릭 installed -> All로 변경 Flask 검색해서 설치하기 2. Flask 동작 확인하기 아래와 같은 내용의 파일을 하나 만들기 from flask import Flask app = F..

학교/졸프 2021.06.25

AWS 서버 세팅하기

1. EC2(클라우드상의 가상 서버) 들어가기 나만의 서버 구축시 사용 인스턴스 : 하나의 서버 AWS Cost Explorer에서 비용 청구 주기적으로 확인 2. '인스턴스 시작' 클릭 3. AMI 선택 Ubuntu를 가장 많이 사용하는 편이라고 해서 선택 4. 사용할 인스턴스 유형 선택 추천받은 c5.xlarge 선택 4vCPU, 8GiB 우분투 서버는 월 $140.55의 비용이 발생 윈도우 서버는 월 $275.24의 비용이 발생 Window 서버가 좀 더 비싼데, 윈도우 라이선스 비용이 포함되기 때문이다. [다음: 인스턴스 세부 정보 구성] 클릭 5. 기본값으로 모두 세팅되어있으며 그대로 진행한다. [다음: 스토리지 추가] 클릭해 다음으로 진행 6. [다음: 태그추가] 클릭 인스턴스 생성 후에도 변..

학교/졸프 2021.06.15

카카오 i 오픈빌더 이용하기

1. 구름IDE 회원가입 후 대시보드 들어가기 2. 컨테이너 생성 Flask 파일로 생성함 Github와 연동해서 파일 가져왔다. # pytorch 설치 pip3 install torch==1.8.1+cpu torchvision==0.9.1+cpu torchaudio===0.8.1 -f https://download.pytorch.org/whl/torch_stable.html # transformer 설치 pip install transformers[torch] # Flask 설치 pip install flask pip install --upgrade pip # faiss 설치 pip install faiss-cpu # python 설치 python -m pip install --upgrade pip 3..

학교/졸프 2021.05.20

Word2Vec

One-Hot Encoding 단어 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 단어의 벡터 표현 방식 이렇게 표현된 벡터를 원-핫 벡터(One-Hot vector)라고 한다. TF-IDF의 문제점을 해결하기 위한 방법 TF-IDF 문제점 하나의 단어를 표현하는데 큰 벡터가 필요하다. - One-Hot Encoding에서는 하나의 columns이 Vocabulary에 등록된 단어를 의미한다. - 만약 사전에 3만개의 단어가 들어있다면, 하나의 단어를 표현하기 위해선 3만 차원이 필요 - 큰 차원의 벡터는 메모리 등의 문제 때문에 계산 복잡성이 크게 늘어난다. 단어 사이에 관련성을 파악할 수 없다. 벡터화하는 방법 카운트 기반의 벡..

학교/졸프 2021.05.05

TF-IDF

TF-IDF 특정 문서 내에 특정한 단어가 얼마나 자주 등장하는지를 의미하는 단어 빈도(TF)와 전체 문서에서 특정 단어가 얼마나 자주 등장하는지를 의미하는 역문서 빈도(DF)를 통해서 "다른 문서에서는 등장하지 않지만 특정 문서에서만 자주 등장하는 단어"를 찾아서 문서 내 단어의 가중치를 계산하는 방법 - 컴퓨터가 이해하기 쉬운 형식의 속성을 추출하는 것 용도 문서의 핵심어 추출 문서들 사이의 유사도 계산 검색 결과의 중요도를 정하는 작업 등 TF(d, t) Term Frequency 특정 문서 d 에서의 특정단어 t의 등장 횟수 DF(t) Document Frequency 특정 단어 t가 등장한 문서의 수 IDF(d, t) DF(t)에 반비례하는 수 (일종의 역수 변환) TF-IDF(d, t) = T..

학교/졸프 2021.05.05