본문 바로가기

교육

아마존 구매후기 분석 │사회 연결망 분석 │중심성 │2살 아기 장난감 선물

지난 포스팅에 이어 이번 포스팅에서 사회 연결망 분석 방법을 적용하여 아마존 구매후기를 분석합니다. 예제 역시 지난 포스팅에 이어 2살 아기 장난감 선물 중에서 동물 스티커를 계속 적용해보겠습니다. 

1. library

R 패키지 중에서 igraph를 이용합니다. igraph를 이용한 보다 상세한 네트워크 작성방법은 아래 공식 웹사이트를 참고하기 바랍니다. 

 

igraph R package

Get started with R igraph Install and start using the igraph R package

igraph.org

2. 사회 연결망 분석 

사회 연결망 분석, Social Network Analysis는 그래프 이론을 사용하여 사회 구조를 탐색하는 사회 과학 연구 방법 중 하나입니다. 주로 네트워크 구조적 특성을 측정하고 분석하는데 이용합니다. 텍스트 마이닝에서 이러한 사회 연결망 분석 방법을 차용하여 주요 단어(node 혹은 vertex)의 연결(link 혹은 edge)을 통해 해당 문서가 어떤 의미를 담고 있는지 파악하는데 적용되며, 이런 의미에서 흔히 의미망 분석이라고도 합니다. 

 

3. 의미망 분석 구현 

단어-문서 행렬을 행렬의 곱셈을 이용하여 동시출현행렬(Co-occurence Matrix)로 변경합니다. 빈도수 기준 상위 30개 단어만 이용하겠습니다. 

inw.bracelet <- as.matrix(tdm)
word.count <- rowSums(inw.bracelet)
word.order <- order(word.count, decreasing=TRUE)
freq.words <- inw.bracelet[word.order[1:30], ]
co.matrix <- freq.words %*% t(freq.words) 
net <- graph.adjacency(co.matrix,weighted=T,mode="directed")
net.bracelet <- simplify(net)
plot(net.bracelet,layout=layout.fruchterman.reingold, vertex.size=20, vertex.color= "white",  edge.arrow.size=0.5)

아마존 구매후기 의미망 분석 결과
2살 아마존 장난감 선물 구매후기 의미망 분석결과


여러 가지 옵션 값을 이용하여 노드와 링크 형태를 변경할 수 있습니다. 아래 옵션 값은 참고만 하기 바라며, 자세한 내용은 igraph 공식 웹사이트를 이용하기 바랍니다. 

# layout : layout.random, layout.circle, layout.kamada.kawai, layout.sprint, layout.lgl, layout.mds, layout.svd
# edge : edge.color, edge.width,edge.arrow.size, edge.arrow.width, edge.arrow.mode, edge.lty, edge.label.family, edge.label.font,edge.label.color
# vertex : vertex.size, vertex.color,vertex.shape,vertex.frame.color, vertex.label, vertex.label.font, vertex.label.dist, vertex.label.color,vertex.label.cex,vertex.label.family,vertex.label.degree

 

4. 중심성 측정 : 연결 중심성 

네트워크 내 중심성을 계측하는 방법은 여러 가지가 있습니다만, 그중 연결 중심성은 상위 단어 중 다른 단어와 직접적으로 가장 많이 연결된 단어를 측정하는 것으로 측정 결과로 나타난 단어는 해당 네트워크에서 가장 중요한 단어라고 할 수 있습니다. 아래 R code는 연결 중심성을 측정한 후, 연결 중심성이 가장 높은 3개 단어는 붉은색으로 표시하여 구현한 것입니다. 

V(net.bracelet)$dc <- degree(net.bracelet)
k_dc_top_three <- head(sort(degree(net.bracelet), decreasing=TRUE), n=3)
V(net.bracelet)$color <- ifelse(V(net.bracelet)$dc >= k_dc_top_three [3], "tomato", "white")
plot(net.bracelet)

아마존 구매후기 연결중심성 측정결과
구매후기 연결중심성 계측

분석 결과에서 확인할 수 있는 바와 같이 연결 중심성이 가장 높은 단어는 book, reusable, pictures입니다. 
구체적인 계측 값은 연결 중심성을 계측한 후, 저장한 객체 명인 k_dc_top_three을 불러오면 되며, 아래와 같은 구체적인 계산 값을 확인할 수 있습니다. 

k_dc_top_three
    book reusable pictures 
      42       34       34