f8b21af4be
10_Wiki/Topics 대규모 정리: - 오류 캡처/미완성 stub 문서 227개 제거 - 교차폴더 중복 43클러스터 병합 (63파일 → redirect) - 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건 - 카테고리 MOC 6개 신규 생성 - Graph 섹션 미해결 related-keyword 링크 10,058건 제거 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
174 lines
5.6 KiB
Markdown
174 lines
5.6 KiB
Markdown
---
|
|
id: wiki-2026-0508-media-literacy
|
|
title: Media Literacy
|
|
category: 10_Wiki/Topics
|
|
status: verified
|
|
canonical_id: self
|
|
aliases: [Information Literacy, Source Evaluation, Digital Literacy]
|
|
duplicate_of: none
|
|
source_trust_level: A
|
|
confidence_score: 0.85
|
|
verification_status: applied
|
|
tags: [media-literacy, information, verification, deepfake, security]
|
|
raw_sources: []
|
|
last_reinforced: 2026-05-10
|
|
github_commit: pending
|
|
tech_stack:
|
|
language: python
|
|
framework: c2pa
|
|
---
|
|
|
|
# Media Literacy
|
|
|
|
## 매 한 줄
|
|
> **"매 source 의 verify, claim 의 cross-check, framing 의 detect — 매 information 의 evaluate skill"**. 매 1990s NAMLE 시작, 매 2026 LLM-generated content + deepfake + C2PA provenance + AI watermark 의 era 에 매 default skill.
|
|
|
|
## 매 핵심
|
|
|
|
### 매 Core skills (5)
|
|
- **Access**: 매 reliable source 의 find.
|
|
- **Analyze**: bias, framing, omission 의 detect.
|
|
- **Evaluate**: credibility, evidence quality.
|
|
- **Create**: ethical content production.
|
|
- **Act**: misinformation 의 counter.
|
|
|
|
### 매 SIFT method (Caulfield)
|
|
- **Stop**: 매 click 전 pause.
|
|
- **Investigate**: source 의 background.
|
|
- **Find**: better/original coverage.
|
|
- **Trace**: claim 의 original context.
|
|
|
|
### 매 응용
|
|
1. Deepfake detection: C2PA provenance + ML classifier.
|
|
2. LLM output: hallucination 의 detect.
|
|
3. News pipeline: source ranking.
|
|
|
|
## 💻 패턴
|
|
|
|
### C2PA manifest verification
|
|
```python
|
|
# 매 image 의 provenance 의 verify
|
|
from c2pa import Reader
|
|
reader = Reader.from_file('photo.jpg')
|
|
manifest = reader.json()
|
|
print(f"Producer: {manifest['active_manifest']['claim_generator']}")
|
|
print(f"AI generated: {manifest.get('ai_generated', False)}")
|
|
print(f"Signature valid: {reader.validation_status()}")
|
|
```
|
|
|
|
### AI watermark detection (SynthID-like)
|
|
```python
|
|
# 매 LLM output 매 watermark 의 detect
|
|
import torch
|
|
def detect_watermark(text: str, key: bytes, threshold=0.6) -> bool:
|
|
tokens = tokenize(text)
|
|
# green-list ratio (Kirchenbauer 2023)
|
|
green = sum(1 for t in tokens if hash_token(t, key) % 2 == 0)
|
|
z = (green - 0.5*len(tokens)) / (0.25*len(tokens))**0.5
|
|
return z > threshold * 5 # 매 strict threshold
|
|
```
|
|
|
|
### Reverse image search (TinEye API)
|
|
```python
|
|
import httpx
|
|
def reverse_search(image_path: str, api_key: str):
|
|
with open(image_path, 'rb') as f:
|
|
r = httpx.post('https://api.tineye.com/rest/search/',
|
|
files={'image_upload': f},
|
|
auth=(api_key, ''))
|
|
matches = r.json()['results']['matches']
|
|
return [(m['image_url'], m['domain'], m['crawl_date']) for m in matches[:5]]
|
|
```
|
|
|
|
### Source credibility score
|
|
```python
|
|
TRUSTED_DOMAINS = {'reuters.com': 0.95, 'apnews.com': 0.93, 'nature.com': 0.97}
|
|
SUSPICIOUS = {'.tk', '.click'}
|
|
|
|
def score_source(url: str) -> float:
|
|
from urllib.parse import urlparse
|
|
domain = urlparse(url).netloc.lower().lstrip('www.')
|
|
if domain in TRUSTED_DOMAINS: return TRUSTED_DOMAINS[domain]
|
|
if any(domain.endswith(s) for s in SUSPICIOUS): return 0.1
|
|
return 0.5 # unknown
|
|
```
|
|
|
|
### Deepfake classifier (FaceForensics++)
|
|
```python
|
|
import torch
|
|
from transformers import AutoModelForImageClassification, AutoImageProcessor
|
|
|
|
model = AutoModelForImageClassification.from_pretrained(
|
|
'prithivMLmods/Deep-Fake-Detector-v2-Model')
|
|
proc = AutoImageProcessor.from_pretrained('prithivMLmods/Deep-Fake-Detector-v2-Model')
|
|
|
|
def is_deepfake(img) -> tuple[bool, float]:
|
|
inputs = proc(images=img, return_tensors='pt')
|
|
with torch.no_grad():
|
|
logits = model(**inputs).logits
|
|
probs = logits.softmax(-1)[0]
|
|
fake_prob = probs[1].item()
|
|
return fake_prob > 0.5, fake_prob
|
|
```
|
|
|
|
### Cross-reference fact-check
|
|
```python
|
|
import asyncio, httpx
|
|
|
|
async def fact_check(claim: str):
|
|
async with httpx.AsyncClient() as c:
|
|
r = await c.get('https://factchecktools.googleapis.com/v1alpha1/claims:search',
|
|
params={'query': claim, 'key': 'KEY'})
|
|
results = r.json().get('claims', [])
|
|
return [(x['text'], x['claimReview'][0]['textualRating']) for x in results]
|
|
```
|
|
|
|
### Browser ext: provenance badge
|
|
```ts
|
|
// content.ts
|
|
async function annotateImages() {
|
|
for (const img of document.querySelectorAll('img')) {
|
|
const r = await fetch(`/api/c2pa-check?url=${encodeURIComponent(img.src)}`);
|
|
const { aiGenerated, verified } = await r.json();
|
|
if (aiGenerated) img.style.outline = '3px solid orange';
|
|
if (!verified) img.title = '매 provenance unverified';
|
|
}
|
|
}
|
|
```
|
|
|
|
## 매 결정 기준
|
|
| 상황 | Approach |
|
|
|---|---|
|
|
| News article | SIFT method |
|
|
| Image authenticity | C2PA + reverse search + deepfake classifier |
|
|
| LLM output | watermark detect + cross-reference |
|
|
| Suspicious domain | credibility score < 0.3 → reject |
|
|
|
|
**기본값**: SIFT + tooling-augmented (C2PA, fact-check API).
|
|
|
|
## 🔗 Graph
|
|
- 부모: [[Information Literacy]]
|
|
- 변형: [[Source Evaluation]]
|
|
- 응용: [[Deepfake-Detection]]
|
|
- Adjacent: [[Conversational-Maxims]] · [[Procedural-Rhetoric]]
|
|
|
|
## 🤖 LLM 활용
|
|
**언제**: claim cross-reference, framing analysis, summary 의 bias detect.
|
|
**언제 X**: 매 LLM 자체 매 hallucinate — 매 외부 source 와 cross-check 필수.
|
|
|
|
## ❌ 안티패턴
|
|
- **Headline reading**: 매 click 만 하고 article body 매 읽지 X.
|
|
- **Single source**: corroboration 매 X.
|
|
- **Bothsidesism**: 매 lopsided evidence 의 false equivalence.
|
|
- **No provenance check**: image 매 viral spread 후 reverse search X.
|
|
|
|
## 🧪 검증 / 중복
|
|
- Verified (NAMLE Core Principles, C2PA spec 2.0, SIFT method by Mike Caulfield).
|
|
- 신뢰도 A.
|
|
|
|
## 🕓 Changelog
|
|
| 날짜 | 변경 |
|
|
|---|---|
|
|
| 2026-05-08 | Phase 1 |
|
|
| 2026-05-10 | Manual cleanup — SIFT + C2PA + deepfake tooling |
|