계기
“데이터 외적인 부분에서 본다면 주변인들의 반응에서 읽는다. 주식에 대한 이야기가 주변에서 많이 나오고 일반인들도 종목을 추천할 정도면 대체로 가격이 꼭지에 있다고 파악한다. 바닥이다 싶을 땐 주식 이야기가 쏙 들어간다. 쳐다보기도 싫은 심리가 있어서다.
반대로 주식 관련 유튜브 영상에 부정적인 댓글과 반응들이 많으면 ‘시장이 괜찮구나’라고 판단한다. 이런 경우를 보면, 앞으로 꺾일 거란 콘텐츠엔 ‘싫어요’ 일색의 악성 댓글이 많이 달리고, 또 긍정적으로 전망하는 콘텐츠에도 악플이 많이 붙는 편이다.
사견이지만, 공포∙탐욕지수라든지, 긍정적인 이야기나 부정적인 이야기에 대한 반응을 모아서 지수화하는 것도 시장을 읽는 데 도움이 되지 않을까.”
최근 언어 분석과 관련된 업무를 진행하고 있어서 그런가...
굉장히 재미있겠다는 생각이 들었다!
개요
주식 관련 유튜브 영상 댓글을 통해 주식 시장 흐름을 파악할 수 있지 않을까?
- 댓글에 부정적인 댓글이 많으면 → 시장 가격이 상대적으로 낮다.
- 댓글에 부정적인 댓글이 적으면 → 시장 가격이 상대적으로 높다.
위 두 가지 가설을 확인해보고자 한다.
방법
1. 유튜브 댓글 수집
selenium을 통한 웹 크롤링을 통해, 유튜브 댓글창의 댓글을 수집한다.
2. 댓글 감정 분석
수집한 댓글들의 감정을 분석한다.
이때 분석된 감성은 긍정 ↔ 부정 두 가지로 분류한다.
khaiii를 통해 댓글들을 형태소 단위로 분리하고, 부정어 여부 감지 등을 통해 감정을 분류할 예정.
3. 해당 시점의 시장 가격과 댓글 감정 간의 상관관계 파악
코스피/코스닥 기준, 해당 영상의 업로드 시기와 주가 간의 연관성이 존재하는지 파악한다.
유사도 관련 모델을 써도 되겠지만, 단순히 차트를 통해서도 판단 가능할 것으로 (일단) 생각됨.
연구 내용
1. 유튜브 댓글 수집
a. 웹 크롤링을 통한 댓글 데이터 수집
jupyter notebook 환경에서 진행했다.
https://velog.io/@parkeu/youtubecomment
기본 로직은 해당 블로그를 참고했다.
그런데 selenium이 업데이트되면서, 위 코드를 그대로 실행하면
WebDriver.__init__() got multiple values for argument 'options'
에러가 발생하는데
driver = webdriver.Chrome()
로 변경해주면 된다.
(webdriver 옵션을 설정할 경우 Chrome(options=options)와 같이 작성)
b. 주식 관련 유튜브 댓글 수집
처음에는 '주식' 검색 시 최상위 영상의 댓글을 수집하려 했다.
조회 수가 많아 댓글도 많으리라 예상했고, 여기까지는 틀리지 않았는데...
스승님 존경합니다
스승님 옷자락 절대 놓지 않겠습니다
감사합니다 ~^^
많은 영상을 봤지만
단연 최고입니다 ~
진행자의 노이즈가 전혀 끼어들지않아
진행이 깔끔하고
울 스승님 숨도안쉬고 종목선물 안겨주시네요. 바이오 제약주도 폭등한종목말고 바닥에서 꿈틀대는 종목은 큰 수익을 안겨주지요. 단지 팔아야할때를 모르고 탐욕때문에 안팔아 고점에 물리는것. 차트공부하고 분할매수로 대응하면 수익을 안겨줄종목들이라 생각합니다. 감사합니다~!!
대부분 위와 같이 해당 영상(주식 시장) 관련된 댓글이라기보다,
영상을 올린 유튜버에 대한 댓글로 봐야 할 것 같았다.
https://www.youtube.com/watch?v=yFoZpqhSUWs
따라서 위와 같이, 주식 시장과 관련된 뉴스 영상에 딸린 댓글을 수집하는 것으로 방향을 바꾸었다.
위 영상의 경우...
다음과 같은 형태의 dataframe을 얻을 수 있었고, 이를 csv로 변환해 다른 파일에서 import 하여 사용했다.
위 영상에서는 30개의 댓글을 수집할 수 있었는데...
형태소 분석 및 감정 분석 후 약 1000여 개의 댓글을 수집해 볼 예정!
'source-code > AI' 카테고리의 다른 글
유튜브 댓글 감정 분석을 통한 주식 시장 파악 (2) (0) | 2023.08.22 |
---|