ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • day7
    데이터 분석/R 2020. 6. 30. 11:59

     

     

    # library(KoNLP)
    # install.packages("KoNLP")
    # 
    # install.packages("multilinguer")
    # library(multilinguer)
    # install_jdk()
    # install.packages(c('stringr', 'hash', 'tau', 'Sejong', 'RSQLite', 'devtools'), type = "binary")
    # install.packages("remotes")
    # remotes::install_github('haven-jeon/KoNLP', upgrade = "never", INSTALL_opts=c("--no-multiarch"))
    # library(KoNLP) #최종적으로 "KoNLP" 패키지를 불러옵니다
    # 
    # devtools::install_github('haven-jeon/NIADic/NIADic', build_vignettes = TRUE)
    # Sys.setenv(JAVA_HOME='C:/Program Files/Java/jre1.8.0_241')  # 설치한 JAVA version에 따라 달라집니다
    # buildDictionary(ext_dic = "woorimalsam")  # "woorimalsam" dic을 불러옵니다
    # useNIADic()  # "NIADic" dic을 불러옵니다
    
    #토핑모델링: 주어진글 -> 주제 
    #감정분석 : 주어진글 -> 감정
    
    #감정어휘 사전:good,happy,bad,sad
    #AFINN(-5 ~ +5),lexicon(긍정,부정),EmoLex(즐거움 , 놀라움)
    #감정어휘사전 패키지
    #install.packages("tidytext")
    library(tidytext)
    #install.packages("textdata")
    library(textdata)
    #install.packages("tidyverse")
    library(textdata)
    AFINN<-data.frame(get_sentiments("afinn"))
    summary(AFINN)
    hist(AFINN$value, breaks = 20,xlim = c(-6,6),col = 'blue',xlab = "senti score")
    get_sentiments("bing")
    oplex<-data.frame(get_sentiments("bing"))
    table(oplex$sentiment)
    
    emolex<-data.frame(get_sentiments("nrc"))
    table(emolex$sentiment)
    library(tm) #텍스트마이닝 
    library(stringr) #텍스트 
    library(dplyr) # 로드실패 -> 설치 -> 로드 
    
    my.text.location<-"D:/Rwork/papers"
    mypaper<-VCorpus(DirSource(my.text.location))
    mypaper
    
    mytxt<-c(rep(NA,33))
    for(i in 1:33){
      #mytxt[i]<-mypaper[[i]][1] # 코퍼스 내용을 확인 , 리스트 저장
      mytxt[i]<-as.character(mypaper[[i]][1])
    }
    typeof(mytxt)
    mytxt #벡터 [1][2][3]........  리스트:[[1]][1] [[2]][1] [[3]][1]
    
    my.df.text<-data_frame(paper.id=1:33,doc=mytxt)
    my.df.text  # tibble dataframe보다 비슷하지만 가벼움 
    
    my.df.text.word<-my.df.text %>%  unnest_tokens(word,doc)
    
    #%>% #cntl shift m  :파이프 오퍼레이터  
    #객체.메스드명(전달값)    오브젝트%>%함수 : 함수를 오브젝트에 적용하라 
    
    # text<-c("How are you", "He is a boy","She is a girl")
    # text
    # 
    # textDf<-data_frame(line=1:3,text=text) #tibble형식으로 
    # 
    # textDf %>% unnest_tokens(word, text) # 토큰단위로 분해 하라  반드시 앞에 객체 
    # 
    library(tidyr)
    myresult.sa<-my.df.text.word %>% 
      inner_join(get_sentiments("bing")) %>% #word기준조인 
      count(word,paper.id,sentiment) %>% # advanced 11번 25번 각각 1번
      spread(sentiment,n,fill=0) # 10번문서 1번 positive의미 
    
    
    myresult.sa
    
    myagg<-summarise(group_by(myresult.sa,paper.id),
    pos.sum = sum(positive), #positive 합계 
    neg.sum = sum(negative),
    pos.sent = pos.sum - neg.sum) # negative 합계 
    
    myagg
    
    install.packages("textstem")
    library("textstem")
    
    x<-c("well", "doggies","running")
    lemmatize_words(x) # 원형 
    
    
    
    #미니 프로젝트 감성어휘사전 기반 감성분석 프로젝트  
    #스크래핑(파이썬, 해외 언론사 ,통신사 ,text 스크랩핑, 넷플릭스 영화줄거리 ) -> txt 형식으로 저장 ->전처리  vcorpus  로 데이터 가져오기 
    #->감성분석->결과출력 
    
    #감정이 들어나 있는 문장  긴문장 
    
    library(SnowballC)
    #install.packages("analogue")
    library(analogue)
    readr::read_lines("reuters-train")
    
    data(acq)
    acq[[50]][1]
    
    #미니 프로젝트 감성어휘사전 기반 감성분석 프로젝트  
    #스크래핑(파이썬, 해외 언론사 ,통신사 ,text 스크랩핑, 넷플릭스 영화줄거리 ) -> txt 형식으로 저장 ->전처리  vcorpus  로 데이터 가져오기 
    #->감성분석->결과출력 
    
    #감정이 들어나 있는 문장  긴문장 
    
    library(SnowballC)
    #install.packages("analogue")
    library(analogue)
    readr::read_lines("reuters-train")
    
    data(acq)
    acq[[50]]
    
    
    
    
    mytxt<-c(rep(NA,50))
    for(i in 1:50){
      #mytxt[i]<-mypaper[[i]][1] # 코퍼스 내용을 확인 , 리스트 저장
      mytxt[i]<-as.character(acq[[i]][1])
    }
    typeof(mytxt)
    mytxt #벡터 [1][2][3]........  리스트:[[1]][1] [[2]][1] [[3]][1]
    
    my.df.text<-data_frame(paper.id=1:50,doc=mytxt)
    my.df.text  # tibble dataframe보다 비슷하지만 가벼움 
    
    my.df.text.word<-my.df.text %>%  unnest_tokens(word,doc)
    
    library(tidyr)
    myresult.sa<-my.df.text.word %>% 
      inner_join(get_sentiments("bing")) %>% #word기준조인 
      count(word,paper.id,sentiment) %>% # advanced 11번 25번 각각 1번
      spread(sentiment,n,fill=0) # 10번문서 1번 positive의미 
    
    
    myresult.sa
    
    myagg<-summarise(group_by(myresult.sa,paper.id),
                     pos.sum = sum(positive), #positive 합계 
                     neg.sum = sum(negative),
                     pos.sent = pos.sum - neg.sum) # negative 합계 
    
    myagg​

    '데이터 분석 > R' 카테고리의 다른 글

    day8  (0) 2020.07.02
    베이즈이론  (0) 2020.07.01
    KoNLP 설치오류시 대처방법  (0) 2020.06.30
    day6  (2) 2020.06.29
    day5  (0) 2020.06.26
Designed by Tistory.