지난 실험을 토대로 다음과 같은 플로우를 만들게 되었다.
셀레니움
셀레니움을 이용해서 링크 URL에 존재하는 HTML 텍스트 데이터를 불러온다.
Opengraph 데이터를 링크데이터의 요약본으로 정의
HTML 데이터에서 Opengraph에서 추출한 단어가 존재하지 않을 경우 본문에서 제외
요약본: “파이썬을 이용한 데이터 처리” → “파이썬”, “데이터”
문장: pandas는 기본적으로 알아야할 라이브러이이다.
→ 본문에서 제외(요약본의 명사가 포함되지 않았다.)
TFIDF를 이용한 키워드 추출
필터링한 본문 데이터를 TFIDF를 이용하여 단어 사이의 랭킹을 계산한다.
→ Airflow DB에 있는 데이터를 바탕으로해서 document frequency를 계산한다.
Word2Vec을 이용한 키워드 확장
추출된 키워드의 경우, 단어의 범위가 특정 의미에 한정되어있을 경우, 넓은 범위의 제목을 선정하기 어렵다. 이를 위해서 각 키워드별로 W2V 모델을 이용해서 유사한 단어를 추출한다.
→ 조금 더 큰 규모의 말뭉치를 만들어서 보편적인 단어를 포함시킨다.
위의 과정대로 수행한 결과는 아래와 같았다.
첫번째는 호떡 간식과 관련된 블로그이며 두번째는 와인과 관련된 글이다.
충격적이게도 “내추럴”이라는 뜻을 W2V 모델에서 “보디빌딩”과 연관시키는 엄청난 결과를 보였다.
→ 물론 납득은 한다. “내추럴”이라는 단어가 “보디빌딩”과 유사성이 높을 수 있다. 하지만 위와 같이 잘못된 분석으로 와인과 관련된 글을 오염시키는 원인으로 작용하였다.