Study/AI SCHOOL

[AI SCHOOL 5기] 웹 크롤링

Web Crawling vs Web Scraping #

  • Web Crawling: Bot이 web을 link를 통해 돌아다니는 것
  • Web Scraping: Webpage에서 원하는 자료를 긇어오는 것

HTML Tags #

  • Tag’s Name: html, head, body, p, span, li, ol, ul, div
  • Tag’s Attribute: class, id, style, href, src

The Process of Web Scraping #

  1. URL 분석 (query 종류 등)
  2. URL 구성
  3. HTTP Response 얻기 (urlopen(URL) or request.get(URL).content)
  4. HTTP source 얻기 (BeautifulSoup(HTTP Response, 'html.parser'))
  5. HTML Tag 꺼내기 (.find('tag_name', {'attr_name':'attr_value'}))
  6. Tag로부터 텍스트 혹은 Attribute values 꺼내기 (Tag.get_text() or Tag.attrs)

The Process of Data Analysis for Text Data #

  1. 텍스트 데이터를 str 자료형으로 준비
  2. Tokenize (형태소 분석)
  3. POS Tagging (Part-of-speech, 품사 표시)
  4. Stopwords 제거 (불용어 제거)
  5. 단어 갯수 카운팅 & 단어 사전 생성
  6. 단어 사전 기반 데이터 시각화
  7. (+ 머신러닝/딥러닝 모델 적용)

TF-IDF #

  • Term Frequency - Inverse Document Frequency
  • 특정 단어가 문서에서 어떤 중요도를 가지는지를 나타내는 지표
  • 많은 문서에 공통적으로 들어있는 단어는 문서 구별 능력이 떨어진다 판단하여 가중치 축소

Count Vectorizer #

  • 단어의 빈도수만을 사용해서 벡터 생성
DocumentThatNiceCarJohnHasRed
A111000
B101111

TF-IDF Vectorizer #

  • 단어의 빈도수(TF)를 TF-IDF 값으로 변경하여 가중치가 조정된 벡터 생성

tf-idf-fomular

Cosine Similarity #

  • 두 벡터 사이 각도의 코사인 값을 이용하여 두 벡터의 유사한 정도 측정
  • 유사도가 -1이면 서로 완전히 반대되는 경우
  • 유사도가 0이면 서로 독립적인 경우
  • 유사도가 1이면 서로 완전히 같은 경우
  • 텍스트 매칭에 적용될 경우 두 벡터에 해당 문서에서의 단어 빈도가 적용

Embedding #

PREV [AI SCHOOL 5기] 웹 크롤링 실습 - 웹 스크래핑 기본 NEXT [AI SCHOOL 5기] 데이터 분석 실습 - 데이터 시각화