판례 텍스트 분석 (R tidytext)
중급
정성 분석
legal
r
난이도: 중급 — 실제 연구에 바로 적용 가능한 수준입니다.
개요
대법원 판례 텍스트를 형태소 분석으로 토큰화하고, 사건 유형별 핵심 키워드를 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.