2015-01-21 9 views
1

저는 신문 기사에 대한 정서 분석을하고 시간에 따라 정서 수준을 추적하려고합니다. 이를 위해 기본적으로 하루 만에 모든 관련 뉴스 기사를 확인하고이를 polarity() 함수에 넣고 모든 기사의 평균 극성 점수 (더 정확하게는 모든 기사의 모든 문장의 평균)를 구합니다. 그 날 안에.다른 수의 문서로 된 정서 분석

문제는 며칠간 다른 기사와 비교할 때 더 많은 기사가있을 것이며, 일일 평균 극성 점수를 추적하면 일부 정보가 마스킹 될 수 있다고 생각합니다. 예를 들어, 30 개의 뉴스 기사 중 0.1 개의 점수는 3 개의 기사에서만 생성 된 0.1의 점수와 비교할 때 더 많은 비중을 차지해야합니다. 그리고 확실히, 내가 얻은보다 극단적 인 극성 점수의 일부는 관련 기사가 거의없는 날로부터 나왔습니다.

어쨌든 나는 다른 수의 기사를 고려할 수 있습니까?

library(qdap) 
sentence = c("this is good","this is not good") 
polarity(sentence) 
+0

당신은 기사의 숫자로 매일의 극성 점수를 가중치 수 있음을 의미 그 날? – lawyeR

+0

예, 허용되는 관행입니까? 그렇다면 좋은 가중치 요소는 무엇입니까? –

+0

이 '극성'기능의 출처와 최소 작업 예제 인 MWE를 알려주는 것이 유용 할 수 있습니다. http://stackoverflow.com/help/mcve –

답변

2

가끔씩 몇 마디로 강한 것을 말하면 가장 많은 펀치를 채울 수 있다고 경고합니다. 데이터 및 연구 질문의 측면에서 자신이하는 일이 의미가 있는지 확인하십시오.

한 가지 방법은 (내가있는 moreso 여기에 첫 번째 방법처럼) 다음 예제와 같이 단어의 수를 사용하는 것입니다 :

poldat2 <- with(mraja1spl, polarity(dialogue, list(sex, fam.aff, died))) 

output <- scores(poldat2) 
weight <- ((1 - (1/(1 + log(output[["total.words"]], base = exp(2))))) * 2) - 1 
weight <- weigth/max(weight) 
weight2 <- output[["total.words"]]/max(output[["total.words"]]) 

output[["weighted.polarity"]] <- output[["ave.polarity"]] * weight 
output[["weighted.polarity2"]] <- output[["ave.polarity"]] * weight2 
output[, -c(5:6)] 


## sex&fam.aff&died total.sentences total.words ave.polarity weighted.polarity weighted.polarity2 
## 1  f.cap.FALSE    158  1641  0.083  0.143583793  0.082504197 
## 2  f.cap.TRUE    24   206  0.044  0.060969157  0.005564434 
## 3  f.mont.TRUE    4   29  0.079  0.060996614  0.001397106 
## 4  m.cap.FALSE    73   651  0.031  0.049163984  0.012191207 
## 5  m.cap.TRUE    17   160  -0.176  -0.231357933  -0.017135804 
## 6  m.escal.FALSE    9   170  -0.164  -0.218126656  -0.016977931 
## 7  m.escal.TRUE    27   590  -0.067  -0.106080866  -0.024092720 
## 8  m.mont.FALSE    70   868  -0.047  -0.078139272  -0.025099276 
## 9  m.mont.TRUE    114  1175  -0.002  -0.003389105  -0.001433481 
## 10  m.none.FALSE    7   71  0.066  0.072409049  0.002862997 
## 11 none.none.FALSE    5   16  -0.300  -0.147087026  -0.002925046