판례 텍스트 분석 (R tidytext)

중급 정성 분석 legal r
예상 소요 시간 50분
사전 지식 R 기초, 텍스트 분석 개념
표본 크기 기준 최소 100개 판례
통계 가정 텍스트 독립성
난이도: 중급 — 실제 연구에 바로 적용 가능한 수준입니다.

개요

대법원 판례 텍스트를 형태소 분석으로 토큰화하고, 사건 유형별 핵심 키워드를 TF-IDF로 추출한다. R의 tidytext와 KoNLP 패키지를 사용한다.

분석 절차

1단계: 형태소 분석

KoNLP의 extractNoun 함수로 한국어 명사를 추출한다. 2글자 이상만 필터링한다.

2단계: TF-IDF 계산

사건 유형별로 TF-IDF를 계산하여 해당 사건 유형에서 특별히 자주 등장하는 키워드를 식별한다.

3단계: 시각화

사건 유형별 상위 15개 키워드를 막대 그래프로 시각화한다.

결과 해석

형사 사건에서 “증거”, “위법”, “고의”가 높은 TF-IDF를 가지고, 민사 사건에서 “계약”, “손해배상”, “의무”가 높다면, 각 사건 유형의 핵심 법리 쟁점이 키워드로 반영된 것이다.

코드 예제

library(tidyverse)
library(tidytext)
library(KoNLP)

# 판례 데이터 로드
judgments <- read.csv('court_judgments.csv')

# 형태소 분석 (한국어)
tokens <- judgments %>%
  unnest_tokens(word, judgment_text, token = extractNoun) %>%
  filter(nchar(word) >= 2) %>%
  count(case_type, word, sort = TRUE)

# TF-IDF 계산
tfidf <- tokens %>%
  bind_tf_idf(word, case_type, n) %>%
  group_by(case_type) %>%
  slice_max(tf_idf, n = 15) %>%
  ungroup()

# 키워드 시각화
library(ggplot2)
tfidf %>%
  mutate(word = reorder(word, tf_idf)) %>%
  ggplot(aes(tf_idf, word, fill = case_type)) +
  geom_col(show.legend = FALSE) +
  facet_wrap(~ case_type, scales = "free") +
  labs(title = "사건 유형별 핵심 키워드 (TF-IDF)") +
  theme_minimal()

참고문헌

Silge, J., & Robinson, D. (2017). Text Mining with R. O’Reilly Media.

코드 예제

R
library(tidyverse) library(tidytext) library(KoNLP) # 판례 데이터 로드 judgments <- read.csv('court_judgments.csv') # 형태소 분석 (한국어) tokens % unnest_tokens(word, judgment_text, token = extractNoun) %>% filter(nchar(word) >= 2) %>% count(case_type, word, sort = TRUE) # TF-IDF 계산 tfidf % bind_tf_idf(word, case_type, n) %>% group_by(case_type) %>% slice_max(tf_idf, n = 15) %>% ungroup() # 키워드 시각화 library(ggplot2) tfidf %>% mutate(word = reorder(word, tf_idf)) %>% ggplot(aes(tf_idf, word, fill = case_type)) + geom_col(show.legend = FALSE) + facet_wrap(~ case_type, scales = "free") + labs(title = "사건 유형별 핵심 키워드 (TF-IDF)") + theme_minimal()

참고문헌

Silge, J., & Robinson, D. (2017). Text Mining with R. O'Reilly Media.

이 방법론과 연결된 콘텐츠