상세 컨텐츠

본문 제목

R 한국어 패키지를 열심히 설치한다고 했는데, 모자랄 경우

R & Python

by 부드러운 남자 2024. 3. 26. 19:48

본문

반응형

 

 

파이썬이 헷갈리니, 그냥 R로 작업을 해볼까

#R 4.3.3, R studio 다운로드 및 설치 Posit The best data science is open source. Posit is committed to creating incredible open-source tools for individuals, teams, and enterprises. posit.co #rJAVA 패키지 설치 install.packages("rJava") rJava::.j

semi-lab.tistory.com

 

 

코알못을 위한 R 한국어 패키지 설치하기

파이썬이 헷갈리니, 그냥 R로 작업을 해볼까 #R 4.3.3, R studio 다운로드 및 설치 Posit The best data science is open source. Posit is committed to creating incredible open-source tools for individuals, teams, and enterprises. posit.co

semi-lab.tistory.com

 

 

#라이브러리 실행
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)

반응형

관련글 더보기