"until": '2017-10-17' }] # HTTP Error 500: Internal Server Error -> 데이터가 없는것으로 유추 가능 # collection for item in items: result_file = collection.crawling(**item, fetch=True) item['result_file'] = result_file # analysis for item in items: # print(item['result_file'])ㅣ data = analyze.json_to_str(item['result_file'], 'message') item['count'] = analyze.count_word_freq(data) # visualization for item in items: count = item['count'] count_top50 = dict(count.most_common(50)) file_name = '%s_%s_%s' % (item['pagename'], item['since'], item['until']) visualize.wordcloud(count_top50, file_name) visualize.graph_bar(values=list(count_top50.values()), ticks=list(count_top50.keys()), show_grid=False, file_name=file_name, show_graph=False)
endTime = time.time() - startTime print('Running analyze : ' + str(endTime)) data = analyze.json_to_str(item.get('resultfile'), 'message') item['count_wordfreq'] = analyze.count_wordfreq(data) # 데이터 시각화(visualize) for item in items: endTime = time.time() - startTime print('Running visualize : ' + str(endTime)) # 분석된 단어들 중에 most 50개만.. count = item['count_wordfreq'] count_m50 = dict(count.most_common(50)) # wordclud, graph bar filename = "%s_%s_%s" % (item['pagename'], item['since'], item['until']) visualize.wordcloud(filename, count_m50) visualize.graph_bar( # 다른 바에도 적용하기위해 함수로 제작 title='%s 빈도 분석' % (item['pagename']), xlabel='단어', ylabel='빈도 수', values=list( count_m50.values()), #, filename) # 딕셔너리니까 리스트 형태로 바꿔서 .. ticks=list(count_m50.keys()), # x, y의 값축(항목축) 지정 showgrid=True, # grid = 격자 filename=filename, # 파일로 저장 할건데, showgraph=False # 그래프로도 바로 보여줄것인가? )
'since': '2017-10-01', 'until': '2017-10-17' }, { 'pagename': 'chosun', 'since': '2017-10-01', 'until': '2017-10-17' }] # collection for item in items: resultfile = collection.crawling(**item, fetch=False) item['resultfile'] = resultfile # analysis for item in items: data = analyze.json_to_str(item['resultfile'], 'message') item['count'] = analyze.count_wordfreq(data) # visualization for item in items: count = item['count'] count_t50 = dict(count.most_common(50)) filename = '%s_%s_%s' % (item['pagename'], item['since'], item['until']) visualize.wordcloud(count_t50, filename) visualize.graph_bar(values=list(count_t50.values()), ticks=list(count_t50.keys()), showgrid=True, filename=filename, showgraph=False)
#데이터 분석 for item in CONFIG['items']: # print(item['resultfile']) data = analyze.json_to_str(item['resultfile'], 'message') print(data) item['count_wordfreq'] = analyze.count_wordfreq(data) print(item['count_wordfreq']) #데이터 시각화(visualize) for item in CONFIG['items']: count = item['count_wordfreq'] count_m50 = dict(count.most_common(50)) filename = '%s_%s_%s' % (item['page_name'], item['since'], item['until']) visualize.wordcloud(filename, count_m50, CONFIG['common']['result_vidualization_dir']) visualize.graph_bar( title='%s 빈도 분석' % (item['page_name']), xlabel='단어', ylabel='빈도수', #딕셔너리 형태이므로 형변환 한다. values=list(count_m50.values()), #value 값 ticks=list(count_m50.keys()), #축값을 key에서 받아옴 showgrid=True, #그래프에 격자를 그릴지 여부 filename=filename, showgraph=False, #팝업윈도우를 띄울지 여부 result_vidualization_dir=CONFIG['common'] ['result_vidualization_dir'])
# 데이터 분석 (analyze) # for item in items: # print(item['resultfile']) # json데이터를 str로 for item in CONFIG['items']: data = analyze.json_to_str(item['resultfile'], 'message') # 본문 내용을 str로 변환 # print(data) item['count_wordfreq'] = analyze.count_wordfteq( data) # item['word_freq'] 시각화용 # print(item['count_wordfreq']) # 데이터 시각화 (visualize) for item in CONFIG['items']: count = item['count_wordfreq'] count_m50 = dict(count.most_common(50)) filename = '%s_%s_%s' % (item['pagename'], item['since'], item['until']) visualize.wordcloud(filename, count_m50, CONFIG['result_directory_v']) visualize.graph_bar(title='%s 빈도 분석' % (item['pagename']), result_directory_v=CONFIG['result_directory_v'], xlabel='단어', ylabel='빈도 수', values=list(count_m50.values()), ticks=list(count_m50.keys()), showgrid=False, filename=filename, showgraph=False)
# def crawling(pagename, since, until, fetch=True, result_directory=''): if __name__ == '__main__': # 데이터 수집 (collect) for item in CONFIG['items']: resultfile = collect.crawling(**item, **CONFIG['common']) item['resultfile'] = resultfile # 데이터 분석 (analyze) for item in CONFIG['items']: data = analyze.json_to_str(item['resultfile'], 'message') item['count_wordfreq'] = analyze.count_wordfreq(data) # 데이터 시각화 (visualize) for item in CONFIG['items']: count = item['count_wordfreq'] count_m50 = dict(count.most_common(50)) # dict 형태로 filename = '%s_%s_%s' % (item['pagename'], item['since'], item['until']) # 이미지 저장할 파일 visualize.wordcloud(filename, count_m50) # def wordcloud(filename, wordfreq): pytagcloud visualize.graph_bar( title='%s 빈도 분석' % (item['pagename']), xlabel='단어', ylabel='빈도수', values=list(count_m50.values()), # 그래프의 y 값 : count_m50 딕셔너리의 values ticks=list(count_m50.keys()), # 그래프의 x 값 : count_m50 딕셔너리의 keys showgrid=False, # 격자 여부 filename=filename, # 파일로 저장 showgraph=False) # pop-up window 띄울지 여부