티스토리 뷰
텍스트를 갖고 분석하는게 텍스트 마이닝(Text Mining)이라고 함.
KoNLP는 텍스트 마이닝 기술 중 하나를 배우는 것.
역슬래시(\)는 한글 표기법이라 디렉토리 작성시 2번을 써야함(C:\\)
슬래시는(/) 1개면 됨.
모든 소프트웨어는 메모리에 올라와야만 작동함.
메모리는 휘발성 메모리라 전원을 끄면 자료가 날라가기 때문에 비휘발성 메모리인 ROM에 저장을 함
Data와 Code를 따로 분류해서 ROM에 저장이 가능함.
Data만 따로 모아서 저장한 것이 "~.txt"파일임
File의 종류는 binnary와 text 형식으로 나눠짐
문자기반이 아닌 이미지, 영상, 사운드라면 기본적인 text 형식으로 다룰 수 없음
binnary과 text는 처리 방식이 다르기 때문에 구분 할 줄 알아야함
KoNLP에서 기본적인 기능은 형태소 분석을 함.
형태소 분석 후 품사태깅을 하게 됨. (명사, 조사 같은 품사)
분석을 할 땐 사전을 참고하여 분석 하지만 한 단어가 명사나 형용사가 겹칠 경우 확률로 분석하게 됨.
만약에 사전에 없는 신조어 같은 경우에는 사용자가 정의를 직접 추가할 수 있음
readLines는 줄 단위로 벡터로 변환하지만
readLine은 한 줄만 처리함
데이터 분석이기 때문에 함수를 썼으면 어떤 값을 변환하고 반환하는지, 자료구조는 어떻게 돼어있는지 꼭 확인하는 습관을 들일 필요가 있음.
extractNoun("문장 쓰기")
#KoNLP 함수. 문장 안에 있는 명사를 추출해줌
extractNoun("아버지가 방에 들어가신다.")
extractNoun("아버지가방에 들어가신다.")
띄어쓰기에 따라서 명사가 달라지는 경우가 있음.
for( line in data1 ){
extractNoun(line)
}
for문을 돌려서 명사 분석을 line 단위로 진행함
line 대신 data1을 넣어버리면 파일 통채로 들어가기 때문에 하면 안 됨.
형태소 분석은 문장 단위로 진행 해야하기 때문!
수학에서 X, x 대소문자의 차이가 존재함
X는 집단, 집합의 전체를 말할 때 뜻함
x는 집단의 단일 값을 뜻함
코드에서 X는 벡터, 리스트, 메트릭스 같은 집합체를 의미.
data2 <- sapply(data1, extractNoun, USE.NAMES=F)
Usage
sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)
USE.NAMES은 5번째 항목이지만 컴마(,)를 순서대로 적지 않아도 자동으로 해줌.
data1는 대량의 데이터를 갖고 있음
extractNoun은 그 데이터를 갖고 명사를 분석함
[ [ ] ] 형식은 list구조임
data1에서 "나는 오늘 밥을 먹었다.", "아버지가 방에 들어가시다"를 명사를 분석하면 "나, 오늘, 밥", "아버지, 방"으로 구분이 됨.
한 줄 단위는 1차원이고 이 여러개를 data2로 넣어버리니가 2차원이 되어서 List 구조로 data2에 들어가게 됨.
List 구조는 2차원이면서 비정형화 된 구조이기 때문에 가능함
이런식으로 데이터가 어떻게 반환되어 데이터 구조가 이뤄지는지 파악을 해야함
워드클라우드에 필요한건 도수 분포표이다.
table(unlist(data2))
unlist를 하면 리스트에서 벡터로 변환이 가능함.
데이터 구조가 1차원이 필요한지 2차원이 필요한지 꼭 분석을 하고 이해를 해야하는데 지금 같은 상황에서는 1차원이 필요하기 때문에 unlist를 쓴거임
gsub("서울시", "", data3)
data3에서 "서울시"라는 단어를 ''' 공백으로 바꾸는 작업
gsub (" 변경 전 글자", 변경 후 글자", "원본 데이터)
gsub("\\d+", "", data3)
\\d는 문자형태의 숫자를 의미함 (ex. Date)
코딩테스트에서 정규표현식을 꼭 사용해야함.
파이썬 진도 나갈 때 깊게 배울 예정.
(ex. \\D : 숫자가 아닌 것, \\t : tap, \\s : 공백)
스트림은 입출력 장치와 주기억장치 안에 있는 데이터 간에 빨때를 꽂아서 데이터를 가져온다고 생각하면 됨.
스트림은 단방향이라 한쪽의 데이터만 오기 때문에 양방향의 데이터를 원하면 스트림을 2번 써야함.
write(unlist(data3), "seoul_2.txt")
wirte는 스트림 개념임
write(어떤 데이터, " 어디로 보낼지")
read.table("seoul_2.txt")
2차원의 표 형태로 읽어드림.(도수 분포표)
비어있는 공간은 알아서 제거해서 읽어주는 기능.
예를들어 띄어쓰기 같은 것들 사라짐.
필요없는 단어를 정재하면 띄어쓰기가 남는데 파일로 저장후 read.table을 진행하면 띄어쓰기가 사라져서 파일 저장후 불러오는 작업을 거치는 것임.
wordcount <- table(data4)
head(sort(wordcount, decreasing = T), 20)
sort은 기본으로 오름차순으로 보여주는 것인데 워드크라우드에서는 양이 많은 것을 순서대로 보여줘야 의미 있기 때문에 decreasing=T로 설정함.
head는 단어의 양이 넘쳐나서 20개까지만 잘라서 보여주는 역할을 함.
# install.packages("wordcloud")
# install.packages("RColorBrewer")
library(wordcloud)
library(RColorBrewer)
palete <- brewer.pal(9,"Set3")
# 아래 wordcloud 에서 min.freq 에 있는 항목이 언급된 횟수로 최소 1회 이상 언급된 단어만
# 출력하라는 예 입니다. 다른 옵션도 변경하면서 테스트 해 보세요.
wordcloud(names(wordcount),
freq=wordcount, #단어들의 출현 빈도수
scale=c(5,1),
rot.per=0.25,
min.freq=1,
random.order=F,
random.color=T,colors=palete)
legend(0.3,1 ,"서울시 응답소 요청사항 분석",
cex=0.8,
fill=NA,
border=NA,
bg="white",
text.col="red",
text.font=2,
box.col="red")
names(wordcount),
freq=wordcount
이 두가지 명령어가 핵심 명령어고 그 아래 있는 명령어는 디자인을 위한 명령어임
시각화는 여러가지로 중요한 의미가 있기 때문에 자주 쓰임.
RColorBrewer 글자의 색상을 지정해주는 라이브러리
legend는 설명에 대한 범례인데 메인에서 따로 분리한 이유가 언제든지 빼거나 변경 할 수 있도록 하기 위함
기술통계학
통계학— 기술통계학 ← 주어진 데이터를 통해서 요약
ㄴ 추론통계학 ← 표본을 통해서 모집단의 성격을 파악(평균,분산)
컴퓨터의 모태는 전자계산기임.
과거에 수학, 과학적 데이터를 수 많이 처리를 해야하는데 사람이 하기 힘들어서 만듦.
과거에는 수치형 데이터가 많았지만 시간이 지날 수록 데이터가 다양해짐.
한 표본은 정규분포를 따르기 때문에 모집단을 따라야 하지만 모집단을 안 따른다면 다른 표본임
통계에서는 질적 데이터, 양적 데이터로 나눠짐
평균
양적 데이터로 이뤄져 있음.
전체적인 특성을 단순화 해서 나온 특성.
집단간의 비교를 할 때 평균을 이용.
하나의 이상치에 의해서 값이 많이 달라짐.
이상치를 제거하거나 따로 관리하기 위해 검토를 꼭 해야함.
중앙값
자료를 크기순으로 뒀을 때 중아에 위치한 값
최빈값
가장 빈도가 많이 나온 수
분산
평균으로부터 얼마나 떨어져 있는지 종합적으로 나타난 지표
*제곱을 했기 때문에 이상치가 평균보다 크게 나올 수 있음
편차
평균으로부터 떨어진 값
절대값을 이용 안하고 제곱으로 음의 값을 없애버렸음.
절대값은 프로그래밍으로 코딩도 어렵고 계산도 어려워지기 때문
분산에 루트 씌우면 됨
'Ai 개발자 과정' 카테고리의 다른 글
Ai 개발자 과정 8일차 과정 (0) | 2021.05.08 |
---|---|
Ai 개발자 과정 7일차 과정 (0) | 2021.05.08 |
Ai 개발자 과정 6일차 과정 (0) | 2021.05.08 |
Ai 개발자 과정 2일차 과정 (0) | 2021.05.02 |
Ai 개발자 과정 1일차 수업 (0) | 2021.05.02 |
- Total
- Today
- Yesterday
- yolo
- 인공지능
- CMake
- 기술통계학
- 메튜바
- 시간변경
- 키보드맵핑
- 데이터 프레임
- KoNLP
- Rtools
- Karabiner_Elements
- 취준생
- 통계학
- 초단위
- 벡터
- 한영키
- r
- RStudio
- 대수학
- 카라비너 프로그램 역할
- Karabiner_viewer
- cfg
- 카라비너
- 키보드 맵핑
- 오전
- karabiner
- AI 개념
- r4.0
- 맥 키보드 맵핑
- 키맵핑
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |