[NLP]키워드 임베딩

지윤곽·2021년 1월 18일
0

2021.1.18 월

공부한 것

1. '워드 임베딩 모델을 활용한 패션 트렌드 분석' 논문리뷰

<논문 내용>
1) 브랜드 식별기 : 브랜드명 태그 추출 (크롤링한 데이터에 '태그'데이터가 있는것으로 추정됨 )
브랜드명에 포함되는 특수문자, 숫자, 다국어, 띄어쓰기 유니코드로 저장
(이렇게 하는 이유는? - 처리할때 이렇게 안하면 처리 안되나?)
2) bigram 처리
n-gram : 언어모델(한 단어 다음에 무슨 단어가 올지 확률적으로 계산), 모든 단어를 고려했던 기존의 언어모델에서 n개의 일부 단어만 고려하는 방법
+trade_off : n이 커질수록 모델의 성능을 높일 수 있음. / n의 크기가 커질수록 희소성이 커지게 됨 (적어도 n이 5 이하)
3) 워드 임베딩

2. 논문리뷰를 바탕으로 '검색어 임베딩' 계획 수립

1단계. 롯데마트의 브랜드/상품명을 크롤링 해와서 브랜드/상품 사전 만들기

  1. 롯데마트 페이지 이동
  2. 카테고리 버튼 클릭
  3. 카테고리 안에 대분류 클릭 (하지만 여기서 대/중/소 카테고리에서 소분류 카테고리를 선택하여 클릭하여야 함.) - 오늘은 여기까지 함
from selenium import webdriver
import requests
from bs4 import BeautifulSoup
###BeautifulSoup###
url=''
res=requests.get(url)
res.raise_for_status() #문제가 있는 경우 프로그램 종료 (200 OK 아닌경우 에러 발동)
#가져온 html 텍스트(res.text)를 lxml parser를 통해 beautifulsoup 객체로 만듬 --> soup 안에 모든 정보가 들어있음
soup=BeautifulSoup(res.text, "lxml") #res.text : html문서를 텍스트로 표현 # lxml : parser
# print(soup.title)
# print(soup.title.get_text()) #get_text() : 텍스트만 출력
print(soup.body.div.header) #None : 롯데마트 첫 페이지는 팝업창이거나 아니면 다른 배너가 있기 때문에 BeautifulSoup만으로는 스크래핑이 불가능함. Selenium과 같이 써야 함
###Selenium###
browser=webdriver.Chrome()
# 1. 롯데마트 이동
browser.get('https://www.lotteon.com/p/display/main/lottemart?mall_no=4')
# 2. 카테고리 버튼 클릭
elem=browser.find_element_by_class_name("moreView")
elem.click()
#3. 대분류 카테고리 버튼 클릭
---여기서 계속 실패함---
  1. 클릭하여 들어간 페이지에서 왼쪽에 브랜드명/상품명 크롤링 + 모든 상품 제목 추출(이건 필요할 지 모르겠지만 일단 추출)

3. Visual Studio code 설치함

git 연동 지원 - 작업 디렉토리에 git init 있으면 별도의 설정 없이 자동으로 연동 -> 잔디밭관리 쉬워짐

찾은 것
BeautifulSoup과 Selenium의 아주 기초적인 코드

  • 웹스크래핑 VS 웹크롤링
    웹스크래핑 : 한 페이지에서 내가 원하는 부분 가져오기
    웹크롤링 : 웹페이지 내의 링크를 따라가면서 모든 내용을 가져오기

웹페이지 구성 3요소 : html(뼈대), css(예쁘게), js-java script(살아있게)

느낀 것
학부과정에서 했던 개념이지만 아주 생소하고 어렵다... 개념만 배우고 실제로 적용해보지 않는다면 말짱 도루묵이라는 값비싼 교훈을 얻었다.

할것
1. BeautifulSoup & Selenium 사용해서 for문으로 모든 카테고리의 브랜드명/상품명/아이템명 추출
2. 웹크로링으로 추출한 브랜드/상품명/아이템명 어떻게 데이터전처리 or 토큰화에 사용할지 구상 & 코드로 구현
3. Visual Studio code - git이랑 연동하기

profile
아는게 힘이다

0개의 댓글