2017-12-03 17 views
0

감정적 인 분석을 R에서 수행하려고합니다. afinn이나 bing 어휘집을 사용하고 싶지만, 문제는 내가 토큰을 토큰화할 수 없다는 것입니다. 비즈니스 패스 중 패스 실패 준비 안 :Tidytext에 대한 감정 분석 R

sentiment_words

그래서 난에 대한 감정을 원하는 누구를 위해 6 개 단어가 있습니다 : 여기

내가의 감정을 필요로하는 단어입니다 조건이있는 경우 항목이 없습니다.

어휘를 사용하여이 단어에 정서를 할당하는 방법

여기

내 코드입니다 :

d<- as.data.frame(data$Results) 
d<- as.data.frame(d[1:2000,]) 

colnames(d) <- "text" 



#Making preprocessed file for raw data 
preprocess<-data.frame(text=sapply(tweet_corpus_clean, identity), 
         stringsAsFactors=F) 

# tokenize 
tokens <- data_frame(text = preprocess$text) %>% unnest_tokens(word, text) 

이 프로그램을 실행할 때 내가 얻을 :

senti_new

어휘가 감정을 할당하는 것이 행 당 하나의 토큰

그래서 수 있기 때문에 그 단어들을 하나로 합쳐야했다. 내가 이해하기 위해 수없는 afinn 사용할 때 지금 무엇을 outofbusiness 것은

tokens <- data_frame(text = preprocess$text) %>% unnest_tokens(word, text) 


contributions = tokens %>%ungroup()%>% 
    inner_join(get_sentiments("afinn"), by = "word") %>% 
    group_by(word) %>% 
    summarize(score = as.numeric(sum(score * n)/sum(n))) %>% 
    arrange(desc(sentiment)) 

은 어떻게 단어의 그 6 TPES에 대한 감정 분석을해야합니까 obvioulsy입니까?

답변

0

흠, 이것은 나에게 정서 분석 문제처럼 들리지 않습니다. 당신은 정확하게 알고있는 여섯 단어/구를 가지고 있으며, 당신의 맥락에서 그들이 의미하는 바를 알고 있습니다. 이 단어/문구 점수 나 심지어는 수준의 요소 만 지정하려는 것처럼 들립니다.

내가 여기에 표시 한 것과 같은 것을 할 수 있습니다. 을 분석가로하여 각 구의 점수를 결정해야합니다. 여기에서 scores은 각 텍스트 옵션에 대해 현명한 점수로 분석자가 작성한 데이터 프레임이고, df은 분석하려는 데이터입니다. 당신은 당신의 통찰력을 추출 할 필요가 구조화되지 않은 많은 양의 텍스트가 어디

library(dplyr) 

scores <- data_frame(text = c("pass", 
           "fail", 
           "not ready", 
           "out of business", 
           "pass w/conditions", 
           "no entry"), 
        score = c(3, -1, 0, 0, 2, 1)) 

scores 
#> # A tibble: 6 x 2 
#> text    score 
#> <chr>    <dbl> 
#> 1 pass    3.00 
#> 2 fail    -1.00 
#> 3 not ready   0 
#> 4 out of business 0 
#> 5 pass w/conditions 2.00 
#> 6 no entry   1.00 

df <- data_frame(text = c("pass", 
          "pass", 
          "fail", 
          "not ready", 
          "out of business", 
          "no entry", 
          "fail", 
          "pass w/conditions", 
          "fail", 
          "no entry", 
          "pass w/conditions")) 

df %>% 
    left_join(scores) 
#> Joining, by = "text" 
#> # A tibble: 11 x 2 
#> text    score 
#> <chr>    <dbl> 
#> 1 pass    3.00 
#> 2 pass    3.00 
#> 3 fail    -1.00 
#> 4 not ready   0 
#> 5 out of business 0 
#> 6 no entry   1.00 
#> 7 fail    -1.00 
#> 8 pass w/conditions 2.00 
#> 9 fail    -1.00 
#> 10 no entry   1.00 
#> 11 pass w/conditions 2.00 

심리 분석은 가장 적합합니다. 여기에는 텍스트 요소가 6 개 뿐이므로 도메인 및 컨텍스트에 대해 알고있는 것을 사용하여 점수를 할당 할 수 있습니다.