기존 뉴스 플랫폼의 시간 순(list type), 랭킹 순(Highlight type)의 한계를 넘어, 다양한 뉴스들로의 접근성을 높이기 위한 방안으로 network type의 도입이 적절하지 않을까 하는 동기에서 작은 프로젝트를 생각 중이다.
이를 위해 서는 뉴스를 크롤링하고, 가시화 하기 위한 알고리즘을 거쳐, 우리가 접할 수 있는 형태의 플랫폼으로 제공할 필요가 있다. 쉽게 말하면 자동화된 메타 언론 플랫폼을 만드는 것이 목표다.
지금까지는 주로 크롤링과 가시화 알고리즘에 대한 기반을 공부 해 왔는데, 동시에 이를 배포할 수 있는 방법에 대한 공부도 필요하다. 웹이나 앱에 대해 전혀 모르기 때문에, 힘든 여정이 될 것 같다.
대략 생각하는 공부내용은 다음과 같다.
-백엔드
Neo4j, python
-프론트엔드
html, css, JavaScript(sigmajs)
*sigmajs: network를 웹 상에서 가시화 하는 JavaScript의 library
최종적으로는 크롤링과, 데이터 베이스, 알고리즘이 돌아가는 백엔드와 상호작용하는 동적 웹(앱)이 제공되면 좋겠다고 생각하지만, 단기적으로는 백엔드로 가공한 정보를 배포하는 정적 웹부터 시작해도 좋겠다는 생각이다.
Network data의 정적 웹 호스팅에 아주 좋은 예를 찾았다.
Gephi를 통해 생성한 graph 정보를 sigmajs로 export한 후, 이를 github page를 통해 배포하는 예이다. (예제를 통해 Multigravity force atlas2와 Circle pack이라는 끝내주는 layout 알고리즘도 알게 되었다!)
이전 2월분의 네이버랭킹뉴스를 이 방법을 통해 배포해 봤다.
python으로 크롤링한 데이터를 neo4j로 보내고, neo4j 에서 gephi로 streaming하고, gephi에서 가시화 알고리즘을 조정해서 sigmajs(javascript)로 export하고, 이를 githubpage에 호스팅 하는 방법이다.
(python -> Neo4j -> gephi -> Javascript -> hosting)
mons1220.github.io/NAVER-ranking-news/network/
결과 자체는 이전 가시화에서 다를 것 없지만, 직접 network와 interaction을 할 수 있다는 점에서 확 와닿는다.
우선은 이 예제를 토대로, 자바스크립트를 포함한 웹 언어들을 공부해 나가야겠다.
'공부 > 가짜 뉴스' 카테고리의 다른 글
[next-js] 프로젝트 셋업 (with typescript & tailwindcss) (0) | 2022.05.07 |
---|---|
[Django Rest Framework] pycharm 환경에서 개발 세팅하기 (0) | 2022.02.03 |
[Neo4j] Gephi와 연동, large network 가시화 (0) | 2021.03.05 |
[Neo4j] Graph Apps (Bloom, NeoDash), 알고리즘 (pagerank, community detection) (0) | 2021.03.05 |
[Neo4j] 그래프를 다루는 데이터베이스 - 도입 (2) | 2021.03.05 |
댓글