#라이브러리 실행
library(KoNLP) #한글 자연어 패키지를 가장 먼저 실행해야, 이어지는 것들이 될 수도 있음
#패키지 설치
if (!requireNamespace("readxl", quietly = TRUE)) install.packages("readxl") #엑셀 읽기 위한 패키지
if (!requireNamespace("tm", quietly = TRUE)) install.packages("tm") #텍스트 마이닝 패키지
if (!requireNamespace("tidytext", quietly = TRUE)) install.packages("tidytext") #텍스트 정돈용 패키지
if (!requireNamespace("wordcloud", quietly = TRUE)) install.packages("wordcloud") #워드 클라우드 패키지
if (!requireNamespace("RColorBrewer", quietly = TRUE)) install.packages("RColorBrewer") #시각화 색상 지정 패키지
if (!requireNamespace("tidyverse", quietly = TRUE)) install.packages(" tidyverse") #데이터 처리와 시각화를 위한 패키지
#라이브러리 실행
library(readxl) #엑셀 읽기 위한 패키지
library(tm) #텍스트 마이닝 패키지
library(tidytext) #텍스트 정돈용 패키지
library(stringr)
library(wordcloud) #워드 클라우드 패키지
library(RColorBrewer) #시각화 색상 지정 패키지
library(tidyverse) #데이터 처리와 시각화를 위한 패키지
# 텍스트 데이터 로드 및 전처리
file_path <- "C:\\Users\\unun3\\OneDrive\\바탕 화면\\data.xlsx"
data <- read_excel(file_path) %>% arrange(Year) %>% drop_na
# 중복 데이터 제거 및 ID 추가
data <- unique(data, by = Title) %>% mutate(id = row_number())
# 분석에 불필요한 단어 정의
mystopwords <- data_frame(word = c("단어", "단어")) #단어 위치에는 실제 단어를 추가
# 단어 토큰화 및 불용어 제거
data_tokens <- data %>%
transmute(id = id, Year = Year, text = paste(Title, Abstract)) %>%
unnest_tokens(word, text) %>%
anti_join(mystopwords, by = "word")
# 단어 표제어 추출 및 형태소 분석 수행
useNIADic()
morphed_tokens <- lapply(data_tokens$word, function(x) {
morph <- morpheme(x)
return(morph$원형)
})
# 추출된 명사의 단어 빈도 계산
morphed_nouns <- unlist(morphed_tokens)
morphed_wordcount <- table(morphed_nouns)
morphed_df_word <- as.data.frame(morphed_wordcount, stringAsFactors = FALSE)
# 명사를 추출 후, 해당 명사의 단어 빈도 계산
data_tokens <- extractNoun(data_tokens) %>% count(id, word, sort = TRUE)
# 텍스트 데이터를 Corpus 객체로 변환
corp <- Corpus(VectorSource(paste(data_tokens$text)))
# TF-IDF 계산
data_tf_idf <- data_tokens %>%
bind_tf_idf(id, word, n)
# TF-IDF가 일정 값 이상인 단어 선택
data_tf_idf <- filter(data_tf_idf, tf_idf > 0.1)
# Document-Term Matrix 생성
data_dtm <- data_tf_idf %>%
cast_dtm(id, word, n)
R 한국어 형태소 분석기, 어떤 걸 써야 하나? (0) | 2024.03.27 |
---|---|
코알못을 위한 R 한국어 패키지 설치하기 (0) | 2024.03.26 |
파이썬이 헷갈리니, 그냥 R로 텍스트 마이닝을 해볼까? (0) | 2024.03.26 |
print 함수 (0) | 2023.07.07 |
데이터 정제를 위한 문자열 나누기, 바꾸기 (0) | 2023.07.07 |