hcid-courses / datajournalism-2019

서울대학교 데이터 저널리즘 2019 가을학기
https://hcid-courses.github.io/datajournalism-2019/
4 stars 2 forks source link

Assignment 5 2번 트위터 과제 관련하여 질문있습니다 #6

Closed peterkim0622 closed 4 years ago

peterkim0622 commented 4 years ago

실행 환경

Windows10 + 64bit / Python 3.7 / Jupyter Notebook

코드

import numpy as np

unique_nouns = set(filtered_tweet_noun)
unique_nouns = list(unique_nouns)
noun_index = {noun: i for i, noun in enumerate(unique_nouns)}

occurs = np.zeros([len(filtered_tweet_tagged), len(unique_nouns)])

for i,tweet in enumerate(filtered_tweet_tagged):
    if tweet[1] in ['NN','NNP','NNS','NNPS']:
        index = noun_index[tweet[0]]
        occurs[i][index] = 1

co_occurs = occurs.T.dot(occurs)

%matplotlib inline
import matplotlib.pyplot as plt
import networkx as nx
graph = nx.Graph()

for i in range(len(unique_nouns)):
    for j in range(i+1, len(unique_nouns)):
        if co_occurs[i][j] > 0:
            graph.add_edge(unique_nouns[i], unique_nouns[j])

plt.figure(figsize=(15, 15))
layout = nx.spring_layout(graph, k=.5)
nx.draw(graph, pos=layout, with_labels=True,
        font_size=10, alpha=0.3, node_size=3000)
plt.show()

설명

트위터에서 'Obama'라는 키워드로 3883개의 트윗을 가져오고, 그 중에서 1000개의 트윗을 랜덤하게 선택했습니다. nltk를 이용하여 filtering한 명사들이 filtered_tweet_noun에 저장되어 있습니다. 그 후 수업에서 한대로 co-occurrence를 파악하는 과정을 거쳤는데, 맨 마지막에 그래프 그리는 코드를 실행하니 오류는 뜨지 않지만 아무 것도 뜨지 않고 흰 창만 아래 결과에 나왔습니다. 혹시 단어들 간의 연관성이 떨어져서 그런 게 아닌가 해서 일부러 if co_occurs[i][j] > 0이라고도 설정해봤지만, 여전히 아무 것도 뜨지 않고 흰 창만 결과로 나온 상황입니다. 어떤 점이 문제인 건가요?

에러 메시지

에러 1 에러 메시지는 별도로 뜨지 않았지만, co_occurs 결과를 일단 첨부합니다. co_occurs가 이런 값이 나오는데, 그래프에 아무 것도 뜨지 않는 게 정상인 건가요?

peterkim0622 commented 4 years ago

수업자료를 천천히 복습하다 보니까 어느 부분에서 착각하고 있었는지 알아냈습니다! 해결됐습니다 :)