GeoPrizm 구축: 전 세계 뉴스 사건을 양자 관계 지표로 전환
Source: Dev.to
저는 최근에 전 세계 뉴스 이벤트 신호를 통해 양자 관계를 추적할 수 있는 무료 오픈소스 대시보드 GeoPrizm을 만들었습니다.
GeoPrizm은 저의 시도입니다.
웹사이트: https://www.geoprizm.com/en
GitHub: https://github.com/Haullk/relationship-temperature
국제 관계는 보통 헤드라인, 연설, 공식 성명, 전문가 논평을 통해 논의됩니다.
그것도 가치가 있지만 몇 가지 실용적인 문제를 야기합니다:
- 국가 쌍을 동일한 척도로 비교하기 어렵다.
- 하나의 헤드라인이 실제보다 더 중요하게 느껴질 수 있다.
- 독자들은 종종 근본적인 신호를 보기 전에 결론을 접한다.
- 대부분의 비전문가는 모든 사건을 자세히 따라갈 시간이 없다.
저는 다음 질문에 가볍게 답할 수 있는 방법을 원했습니다:
공개된 뉴스 이벤트 신호를 기반으로, 이 양자 관계가 더 협력적, 중립적, 아니면 긴장된 방향으로 흐르고 있는가?
GeoPrizm은 GDELT 전 세계 뉴스 이벤트 데이터베이스를 활용합니다.
GDELT는 전 세계 뉴스 보도를 모니터링하고 뉴스 보도를 구조화된 이벤트 레코드로 변환합니다. 이 레코드에는 다음과 같은 필드가 포함됩니다:
- actor countries (행위자 국가)
- event date (이벤트 날짜)
- CAMEO event category (CAMEO 이벤트 카테고리)
- GoldsteinScale value (Goldstein 스케일 값)
- number of mentions (언급 횟수)
- number of articles (기사 수)
- source information (출처 정보)
GeoPrizm의 핵심 아이디어는 두 국가가 모두 행위자로 등장하는 이벤트에 집중하고, 그 협력·갈등 신호를 시간에 따라 집계하는 것입니다. 각 양자 쌍은 0‑100 관계 지수로 변환됩니다.
- 중간값은 50입니다.
- 50 이상이면 최근 신호가 더 협력적이거나 호의적임을 의미합니다.
- 50에 가깝다면 신호가 비교적 중립적이거나 혼합된 상태임을 의미합니다.
- 50 이하이면 최근 신호가 더 긴장되거나 갈등이 강함을 의미합니다.
대략적인 처리 과정은 다음과 같습니다:
- 해당 국가 쌍에 대한 최신 GDELT 이벤트를 선택한다.
- 두 행위자가 모두 존재하고 GoldsteinScale 값이 있는 이벤트만 남긴다.
- 각 이벤트를 보도 강도에 따라 가중한다.
- 일일 신호를 롤링 윈도우로 부드럽게 만든다.
- 결과를 0‑100 지수로 매핑한다.
현재 버전은 14일 롤링 평균을 사용해 하루 단위 잡음을 감소시킵니다. 한 번만 언급된 작은 이벤트가 다수 매체에 보도된 대형 이벤트와 동일한 영향을 미쳐서는 안 됩니다. 동시에, 하나의 대형 보도가 전체 지수를 완전히 장악해서도 안 됩니다. 따라서 GeoPrizm은 로그 형태의 보도 가중치를 적용합니다:
weight = log1p(max(num_mentions, num_articles, 1))