Markup Language and Character Code
in Notes / Dataanalytics / R / R Programming Language
Another widely used data structure for data analyzing
마크업 언어
준비단계
> TEXT <- scan(file = "07_data01.txt", what = "char", quote = NULL) Read 938 items > TEXT <- tolower(TEXT) > TEXT <- gsub("^[[:punct:]]+[[:punct:]]+$", "", TEXT) > TEXT.table <- sort(table(TEXT), decreasing = T) > TEXT.Freq <- data.frame(row.names=names(TEXT.table), Freq = as.vector(TEXT.table))
tip: WORDCLOUD 만들 때는 빈도 내림차순 할 필요 없음
연습문제 #1
1. 08_Sejong_UTF-8.txt 줄단위로 불러오고 형태소만 추출하기답:
> TEXT <- scan( file ="08_Sejong_UTF-8.txt", what= "char", quote= NULL, sep="\n", encoding="UTF-8") > a <- grep("^9BTE", TEXT, value=T) > b <- unlist(strsplit(a, '\t')) > c <- unlist(strsplit(b, " [+] ")) > Mors <- grep("/", c, value=T) #이거 말고 by 3해서 3번쨰꺼만 추출도 가능 > head(Mors) [1] "식물/NNG" "들/XSN" "의/JKG" "사생활/NNG" "이승우/NNP" [6] "장편/NNG" > length(Mors) [1] 114303
- 연습문제 #2 : 변수 Mors에 대해서 Mors.Freq 만들기 (내림차순 데이터프레임)
답:
> Mors <- grep("/", c, value=T) > Mors.Freq <- sort(table(Mors), decreasing = T) > Mors.Freq <- data.frame(row.names=rownames(Mors.Freq), Freq = as.vector(Mors.Freq)) > head(Mors.Freq, 10)
- 연습문제 #3 : Wordcloud 만들기
답:
> library(wordcloud) > wordcloud(rownames(Mors.Freq), Mors.Freq$Freq, scale=c(3, 0.8), min.freq=2, max.words=100, randm.order=F, rot.per=0.4, color=brewer.pal(8, "Dark2"))
- 연습문제 #4 : NNG.Freq 만들기
답:
> NNG <- grep("/NNG", Mors, value=T) > NNG <- sort(table(NNG), decreasing = T) > NNG.Freq <- data.frame(row.names = rownames(NNG), Freq = as.vector(NNG))
- 연습문제 #5 : NNG.Freq 의 ‘/NNG’ 제거
답:
> NNG.Freq <- data.frame(row.names = gsub("/NNG", "", rownames(NNG)), Freq = as.vector(NNG))
- 연습문제 #6 : NNG.Freq 저장
답:
> write.table(NNG.Freq, file="NNG.txt", quote=F, sep="\t", col.names=NA, fileEncoding="UTF-8")