세로형
Recent Posts
Recent Comments
Link
12-22 23:16
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

파이썬(python)으로 SNS 텍스트 데이터 분석하기(python word2vec, python 크롤링) 본문

python

파이썬(python)으로 SNS 텍스트 데이터 분석하기(python word2vec, python 크롤링)

이수진의 블로그 2019. 2. 25. 11:10
반응형
728x170

벌써 이것을 진행한지는 꽤 되었지만 이 블로그에는 올리지 않아서 다시 올립니다~

원본 게시글은

https://post.naver.com/viewer/postView.nhn?volumeNo=16628864&memberNo=34022432

여기에 올려져 있습니다~

파이썬으로 텍스트 데이터를 분석하는 작업인데

소셜 네트워크 서비스(SNS) 데이터를 활용합니다


타겟 데이터는 비트코인, 이더리움 등의 암호화폐(가상화폐)로 유명한 오픈 커뮤니티인 코인판(coinpan)을 활용합니다

코인판에서 나온 메디블록(mediblock) 게시글을 분석해서 메디블록과 관련된 텍스트 데이터를 분석해보려고 합니다!

참고로 이 분석은 벌써 시간이 반년정도 되었습니다.

지금과는 이슈가 다를 것입니다.

약올림이라는 어플이 나왔을 때 했던 프로젝트고

본인은 이 분석으로 메디블록 자체 이벤트에서 2등을 수상받았습니다 ㅎㅎ


이거를 진행했을 때 주제는 다음과 같았습니다

메디블록의 첫 번째 어플 약올림을 출시하면서 사람들이 생각하는 메디블록은 어떨지 알아보려고 했었습니다




먼저 데이터를 수집해야하기 떄문에

파이썬으로 웹 크롤러를 만들었습니다.

당연히 셀레니움, beautifulsoup4를 활용했습니다

주소는 코인판을 활용했구요



그리고 크롤링된 데이터는 많지 않았기 때문에 데이터 분석이 조금이라도 편하려고 csv 파일로 저장했습니다



그리고 위와 같은 단어장을 만들었는데요

만든 이유는 형태소 분석기를 mecab(은전한닢)을 활용하는데 이 형태소 분석기가 저 위의 단어들을 인식하지 못합니다.

예를 들어 덴트, 메디블록, 메디, 흑우, 비트코인, 메디엑스, 떡락, 떡상, 이더리움 같은 단어는 인식하지를 못하죠

그래서 인식하지 못할 것 같은 단어 리스트를 작성했습니다~



크롤링 데이터 결과입니다.

개인정보 및 욕설 등의 데이터가 많이 섞여있어서... ㅎㅎ

모자이크 처리를 했습니다

제목, 내용, 날짜로 데이터를 수집했습니다.



총 데이터는 6161개입니다. 그 당시에서는 말이죠

지금 다시 수집하면 제 생각에는 2~3만개는 될 것입니다 ㅎㅎ



그리고 아까 만든 사용자 단어 사전을 이렇게 mecab에서 user dic으로 가능 하도록 형식으로 만들어줍니다.

원래라면 뭐 이게 형용사냐, 뭐냐 나눠주어야 하지만

저는... 그런거 귀찮고 시간도 없고 ㅎㅎㅎㅎ 그러기 때문에

다 명사로 때려 박았습니다(응?)



저렇게 데이터를 넣어주면

형태소 분석을 해서 보면 메디, 바낸, 상장, 가즈아 

이런 데이터가 인식이 되는 것을 확인할 수 있습니다



이제 파이썬으로 mecab을 활용한 형태소 분석이 가능하도록 코드를 구성합니다.

위 처럼 코드를 작성해서 실행하면



메디블록 바이낸스 갑시다. 화이팅 이라는 텍스트가 분석이 잘 됩니다.

이런식으로 응용해서 크롤링한 데이터를 형태소 분석을 합니다



형태소 분석한 결과입니다.

, 를 기준으로 형태소 결과가 나오도록 했습니다.



그리고 연관 단어 분석을 하려고 word2vec을 사용했습니다.

word2vec은 단어를 벡터화 시켜서 연관 단어를 볼 수 있도록 합니다.

딥러닝 기반으로 학습이 됩니다.



벡터화가 완료 되었습니다.



실행시켜보면 해당 단어와 관련된 단어가 나오게 됩니다.

key, value 값으로 연관 단어와 coef 값이 나오게 됩니다


이걸 주피터 노트북을 활용해서 시각화해봅니다



메디와 관련된 단어는 위와 같습니다.

비트, 운전, 상장, 고통, 빛 등이 보이네요



약올림과 관련된 단어를 보시면

상용, 테스트, 싱가포르 등의 데이터가 보입니다.

이때 당시 메디블록 팀이 싱가포르에서 포럼? 같은 것을 했던 것으로 기억합니다.

그리고 상용 테스트 버전이기 때문에 저런 단어들이 나왔습니다.



메디블록과 관련된 단어는 위와 같습니다.

싱가포르, 베타, 변동, 약올림 등이 보이네요!

확실히 연관 단어를 잘 보여줍니다 ㅎㅎ

그리고 단어를 보니까 사람들의 기대 심리가 섞여 있는 것을 볼 수 있습니다.




메디엑스도 메디블록의 이더리움 버전인데요

이 단어도 분석하게 되면 위와 같은 데이터가 나옵니다.




그리고 날짜 데이터도 수집했기 때문에 월별 데이터 수를 확인할 수 있는데요

이게 18년도 라고 생각하시면 됩니다.

18년 1월에 언급 수가 많았다가 02~07 월에는 거의 없다싶이 했습니다

그러다가 이 분석을 진행할 당시 8월 달에 어마어마한 양의 게시글이 올라왔었습니다.

아마 지금 다시 분석하면 마찬가지로 글이 많을 것이라고 생각됩니다~


꽤나 오래전에 했던 분석이지만 하면서 재밌게 했었던 기억이 있습니다 ㅎㅎ

다시 한 번 주제를 정해서 또 분석을 해보고 싶네요


트위터나, 인스타, 페이스북 같은 데이터도 분석해보고 싶습니다.


반응형
그리드형
Comments