|
|
시계열 기반 정세 동향 추적 (published_date, country, sector)
시간의 흐름에 따라 사헬 지역(니제르, 부르키나파소, 말리)의 기사 발행량이 어떻게 변화하는지 시각화할 수 있습니다.
특정 시기에 '안보(Security)'나 '정치(Politics)' 섹터의 기사가 급증하는 패턴을 찾아내어, 지역 내 불안정성이 고조되는 시점을 통계적으로 입증할 수 있습니다.
프랑스어 텍스트 마이닝 및 심층 키워드 분석 (title, summary)
프랑스어 원문 텍스트를 활용해 특정 키워드의 출현 빈도를 분석할 수 있습니다.
예를 들어 사헬 지역의 천연자원 분쟁, 니제르의 우라늄 협상, 혹은 거시경제 지표와 관련된 단어들이 기사 제목이나 요약에 얼마나 자주 등장하는지 추적하여 주요 의제를 도출할 수 있습니다.
고위험 및 핵심 사건 필터링 (importance_level, sector)
단순한 일반(General) 뉴스 외에, importance_level이 3이나 4로 높게 측정된 핵심 사건들만 걸러내어 중점적으로 리뷰할 수 있습니다.
이를 통해 방대한 뉴스 속에서 논문이나 연구에 인용할 만한 가치가 높은 핵심 지정학적 사건들을 빠르게 발췌할 수 있습니다.
매체별 보도 성향 및 감성 비교 (source, sentiment)
현지 매체인 ActuNiger와 Le Faso가 동일한 사건을 두고 긍정(positive), 부정(negative), 중립(neutral) 중 어떤 뉘앙스로 보도하는지 비교할 수 있습니다.
특정 국가의 정책이나 외교적 결단에 대해 각 언론사가 띄우는 논조의 차이를 정량화하여 언론 동향 분석 자료로 활용 가능합니다.
===
구축하신 데이터베이스(sahel_news.db)와 추출된 엑셀 파일(sahel_news_export 202608021930.xlsx)은 단순한 통계를 넘어, 텍스트 마이닝을 통한 심층적인 담론 분석(Discourse Analysis)에 매우 적합한 구조를 갖추고 있습니다.
요청하신 두 가지 분석 방법에 대해 안내해 드립니다.
1. DB 자체를 활용한 분석 방법 (Native DB Analysis)
파이썬 스크립트를 거치지 않고 데이터베이스 자체에서 직접 데이터를 분석하려면 SQL 쿼리를 사용하거나 DB 관리 프로그램을 활용하는 방법이 있습니다.
GUI 프로그램 활용: DB Browser for SQLite 또는 DBeaver 같은 무료 프로그램을 PC에 설치하여 sahel_news.db 파일을 열면, 엑셀처럼 직관적인 화면에서 데이터를 필터링하고 분석할 수 있습니다.
SQL 쿼리를 통한 교차 분석: 데이터베이스 언어(SQL)를 사용하여 엑셀보다 훨씬 빠르고 복잡한 교차 분석이 가능합니다. 예를 들어, 특정 언론사별로 긍정/부정 보도 비율을 확인하려면 프로그램 내 쿼리 창에 다음과 같이 입력할 수 있습니다.
SELECT
source,
sentiment,
COUNT(*) as article_count
FROM news_articles
GROUP BY source, sentiment;
관계망(Network) 분석: DB 내에 설계된 actors와 actor_relationships 테이블을 활용하면, 특정 인물(예: 국가 원수, 반군 지도자)이 다른 인물이나 기관과 얼마나 자주 함께 언급되는지 관계망(Social Network)을 추출할 수 있습니다.
2. 정권 안정화 프레임 및 특정 단어 사용(담론) 파악 방법
정부가 정권을 안정화하기 위해 어떤 '프레임(Frame)'을 씌우고 어떤 '어휘'를 선택하는지 분석하는 것은 매우 훌륭한 연구 접근법입니다. 언론 텍스트의 미묘한 뉘앙스와 수사적 기법을 분석하는 데 이 데이터를 적극 활용할 수 있습니다.
사헬 지역 군사 정부(말리, 부르키나파소, 니제르)는 정권의 정당성을 확보하기 위해 특정한 프랑스어 어휘를 의도적으로 반복하는 경향이 있습니다.
프레임 분석 예시:
자주국방 및 외세 배격 프레임: souveraineté (주권), ingérence (내정간섭), partenaires sincères (진정한 파트너 - 주로 러시아 등을 지칭)
국가 재건 및 정당성 프레임: refondation (국가 재건), cohésion sociale (사회적 결속), volonté du peuple (국민의 뜻)
안보 위협 강조 프레임: lutte implacable (가차 없는 투쟁), terroristes (테러리스트 - 반군을 지칭할 때 주로 사용), neutralisés (무력화됨 - 사살을 완곡하게 표현)
💻 엑셀 데이터를 활용한 프레임 분석 구현 방법
파이썬의 pandas와 자연어 처리 라이브러리를 사용해 엑셀 파일(sahel_news_export 202608021930.xlsx)에서 특정 정부 활동(예: 군사 작전, 외교 회담) 주변에 어떤 형용사나 명사가 자주 등장하는지 빈도를 추출할 수 있습니다.
다음은 특정 키워드가 포함된 기사에서 함께 자주 쓰이는 단어(Co-occurrence)를 찾아 프레임을 분석하는 파이썬 코드 예시입니다. 이 코드를 응용하여 연구에 적용하실 수 있습니다.
import pandas as pd
import re
from collections import Counter
# 1. 엑셀 데이터 불러오기
df = pd.read_excel('sahel_news_export 202608021930.xlsx')
# 2. 분석할 타겟 프레임 키워드 설정 (예: 'souveraineté' - 주권)
target_keyword = "souveraineté"
# 3. 타겟 키워드가 포함된 기사 요약(summary)만 필터링
framed_articles = df[df['summary'].str.contains(target_keyword, case=False, na=False)]
print(f"'{target_keyword}' 키워드가 포함된 기사 수: {len(framed_articles)}건\n")
# 4. 키워드 주변의 맥락(Context) 단어 추출 함수
def get_surrounding_words(text, keyword, window_size=5):
words = re.findall(r'\b\w+\b', text.lower())
context_words = []
for i, word in enumerate(words):
if keyword in word:
# 키워드 앞뒤 5개 단어 추출
start = max(0, i - window_size)
end = min(len(words), i + window_size + 1)
surrounding = words[start:i] + words[i+1:end]
# 불용어(le, la, de, et 등) 제외 필터링 필요
stopwords = {'le', 'la', 'les', 'de', 'des', 'et', 'à', 'en', 'un', 'une', 'pour', 'dans', 'du', 'au'}
context_words.extend([w for w in surrounding if w not in stopwords and len(w) > 2])
return context_words
# 5. 연관 단어 빈도 분석
all_context_words = []
for summary in framed_articles['summary']:
all_context_words.extend(get_surrounding_words(summary, target_keyword))
# 가장 자주 함께 쓰인 단어 상위 10개 출력
word_counts = Counter(all_context_words)
print("📌 함께 가장 많이 사용된 수사적 어휘 (프레임 분석):")
for word, count in word_counts.most_common(10):
print(f" - {word}: {count}회")
이러한 방식을 통해, 정부가 안보 상황을 보도할 때 객관적인 사실을 전달하는지, 아니면 triomphe (승리), sévère (가혹한) 같은 수사적이고 감정적인 어휘를 섞어 대중의 지지를 결집하려는(Rally 'round the flag) 프레임을 짜고 있는지 실증적으로 증명할 수 있습니다.