movie.py
10.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
from igraph import *
import pymongo
conn = pymongo.MongoClient("localhost")
db = conn.test
MOVIE = db.movie
cur = MOVIE.find()
audience = {}
for c in cur:
audience[c["name"]] = c["audience"]
data = {
"명량": "최민식,류승룡,조진웅,김명곤,진구,이정현,권율,노민우,이승준,박보검,김원해,이해영,장준녕,김길동,김강일,강태영,김민석,박노식,최덕문,조복래,문영동,이주실,주석태,고경표,김태훈,한이진,신유람",
"극한직업": "류승룡,이하늬,이동휘,공명,진선규,홍은진,양현민,장진희,오정세,이중옥,송영규,신하균,김의성,김종수,허준석",
"신과함께-죄와 벌": "하정우,차태현,주지훈,김향기,마동석,김동욱,도경수,오달수,임원희,장광,정해균,김수안,정지훈,예수정,이준혁",
"국제시장": " 황정민,김윤진,오달수,정진영,장영남,라미란,김슬기,정영기,맹세창,박재우,김재철",
"베테랑": "황정민,유아인,유해진,오달수,장윤주,김시후,오대환,정웅인,정만식,송영창,진경,유인영,박소담,이동휘,배성우,천호진",
"도둑들": "김윤석,김혜수,이정재,전지현,김해숙,오달수,김수현,최덕문,최진호,예수정",
"7번방의 선물": "류승룡,박신혜,갈소원,오달수,박원상,김정태,정만식,김기천,조덕현,조재윤,박길수",
"암살": "전지현,이정재,하정우,오달수,조진웅,이경영,최덕문,김의성,박병은,김홍파,진경,김인우,심희섭,허지원,허정도,정인겸",
"광해, 왕이 된 남자": "이병헌,류승룡,한효주,장광,김인권,심은경,김명곤,박지아,이양희,전국향",
"신과함께-인과 연": "하정우,주지훈,김향기,마동석,김동욱,도경수,이준혁,정지훈,조한철,장광",
"택시운전사": "송강호,류준열,유해진,박혁권,최귀화,이정은,차순배,이봉련,류성현,허정도",
"부산행": "공유,정유미,마동석,김수안,최우식,안소희,김의성,예수정,박명신",
"변호인": "송강호,김영애,오달수,곽도원,임시완,송영창,정원중,조민기,이항나,이성민,차광수,한기중,심희섭,김동현,조완기,차은재",
"해운대": "설경구,하지원,박중훈,엄정화,이민기,강대규,김원영,김유빈,신정원,성유경,박재홍,나승현,김재경,장원준,임동우,김정곤,정종원,이지애,최재섭,장명갑,지대한,천보근,강예원,김희미",
"괴물": "송강호,변희봉,박해일,배두나,고아성,오달수,박노식,고수희,윤제문,김뢰하,이재응,이왕우",
"왕의 남자": "감우성,이준기,유해진,정진영,강성연,이동수,김주홍,장항선,정석용",
"기생충": "송강호,이선균,조여정,최우식,박소담,이정은,장혜진,박명훈,현승민,정현준",
"검사외전": "황정민,강동원,이성민,박성웅,김응수,신소율,주진모,김원해,김홍파,김병옥,박종환,전배수,박지환,손종학,김종수,한재영,이석준,이선주,민무제",
"엑시트": "조정석,윤아,설도희,최재영,고두심,김환영,변건우,황지현,황효은,박인환,김지영,강기영,배유람,유수빈,정민성,박성일,신세휘,김강훈,김병순,김종구,이봉련",
"설국열차": "송강호,고아성",
"관상": "송강호,이정재,백윤식,조정석,이종석,김혜수,이도엽,김의성",
"해적: 바다로 간 산적": "김남길,손예진,신정근,유해진,이경영,오달수,김태우,박철민,김원해,조달환,조희봉,정성화,최진리,이이경,권성영,김재학,김한준,안내상,이대연",
"수상한 그녀": "심은경,나문희,박인환,성동일,이진욱,김현숙,황정민,김슬기,박형우,진영,김동희,한지은,정인기,이장유,하연주,박혜진",
"백두산": "이병헌,하정우,마동석,전혜진,배수지,이상원,옥자연,한수현,강신철,이경영,조한철,최광일,김시아,임형국,박주환,남성준,서현우,김민식,박지홍,김준원,남문철,박성근",
"과속스캔들": "차태현,박보영,왕석현,임지규,황우슬혜,정원중,김기방",
"국가대표": "하정우,성동일,김지석,김동욱,최재환,이재응,이은성,방수연,심영,이한위,이혜숙,김지영,쥬니,황하나",
"공조": "현빈,유해진,김주혁,장영남,이해영,윤아,이동휘,박형수,공정환,엄효섭,신현빈",
"히말라야": "황정민,정우,조성하,김인권,라미란,김원해,이해영,전배수,유선",
"밀정": "송강호,공유,한지민,엄태구,신성록,서영주,정유안,이수광,고준,최유화,허성태,김동영,곽자형,조영규",
"최종병기 활": "박해일,류승룡,김무열,문채원,이한위,김구택,이경영,박기웅,이승준,이재구,박노식,이다윗,전민서,문영동",
"써니": "유호정,심은경,강소라,고수희,홍진희,김민영,김선경,김보미,이연경,남보라,민효린,조민수,박진주,박영서,김예원,천우희,정원중,김영옥,김시후,김혜옥",
# "1987": "",
# "베를린": "",
# "마스터": "",
# "터널": "",
# "내부자들": "",
# "인천상륙작전": "",
# "럭키": "",
# "은밀하게 위대하게": "",
# "범죄도시": "",
# "곡성": "",
# "화려한 휴가": "",
# "좋은 놈, 나쁜 놈, 이상한 놈": "",
# "늑대소년": "",
# "군함도": "",
# "웰컴 투 동막골": "",
# "사도": "",
# "아저씨": "",
# "미녀는 괴로워": "",
# "전우치": "",
# "연평해전": "",
# "타짜": "",
# "청년경찰": "",
# "숨바꼭질": "",
# "덕혜옹주": "",
# "더 테러 라이브": "",
# "감시자들": "",
# "검은 사제들": "",
# "안시성": "",
# "의형제": "",
# "더 킹": "",
# "완득이": "",
# "완벽한 타인": "",
# "타워": "",
# "투사부일체": "",
# "독전": "",
# "추격자": "",
# "공작": "",
# "바람과 함께 사라지다": "",
# "님아, 그 강을 건너지 마오": "",
# "봉오동 전투": "",
# "조선명탐정 : 각시투구꽃의 비밀": "",
# "군도: 민란의 시대": "",
# "남산의 부장들": "",
# "범죄와의 전쟁: 나쁜놈들 전성시대": "",
# "신세계": "",
# "도가니": "",
# "내 아내의 모든 것": "",
# "판도라": "",
# "나쁜 녀석들: 더 무비": "",
# "가문의 위기(가문의 영광2)": "",
# "연가시": "",
# "강철비": "",
# "강철중: 공공의 적 1-1": "",
# "아가씨": "",
# "말아톤": "",
# "용의자": "",
# "건축학개론": "",
"댄싱퀸": "황정민,엄정화,정성화,오나라,박정민,박사랑,안은정,라미란,이대연,이한위,최우리,권병길,서동원",
# "7급 공무원": "",
# "우리 생애 최고의 순간": "",
# "꾼": "",
# "타짜-신의 손": "",
# "박수건달": "",
# "조선명탐정 : 사라진 놉의 딸": "",
# "역린": "",
# "남한산성": "",
# "암수살인": "",
# "국가부도의 날": "",
# "쌍화점": "",
# "신기전": "",
# "82년생 김지영": "",
# "귀향": "",
# "신의 한 수": "",
# "태풍": "",
# "부러진 화살": "",
# "끝까지 간다": "",
# "스파이": "",
# "그것만이 내 세상": "",
# "돈": "",
# "악인전": "",
# "이끼": "",
# "한반도": "",
# "포화속으로": "",
# "시동": "",
# "아이 캔 스피크": "",
# "마녀": "",
# "탐정: 리턴즈": "",
# "공공의 적 2": "",
# "퀵": "",
# "친절한 금자씨": "",
# "감기": "",
# "스물": "",
# "거북이 달린다": "",
# "헬로우 고스트": "",
# "하모니": "",
# "오싹한 연애": "",
# "방자전": "",
# "형": "",
# "마더": "",
# "그놈 목소리": "",
# "친구 2": "",
# "식객": "",
# "26년": "",
# "고지전": "",
# "워낭소리": "",
# "프리즌": "",
# "가장 보통의 연애": "",
# "말모이": "",
# "극비수사": "",
# "표적": "",
# "너의 결혼식": "",
# "내가 살인범이다": "",
# "부당거래": "",
# "소원": "",
# "너는 내 운명": "",
# "시라노; 연애조작단": "",
# "곤지암": "",
# "살인자의 기억법": "",
# "마파도": "",
# "후궁 : 제왕의 첩": "",
# "탐정 : 더 비기닝": "",
# "지금 만나러 갑니다": "",
# "가문의 부활 - 가문의 영광3": "",
# "위험한 상견례": "",
# "아수라": "",
# "보안관": "",
# "기술자들": "",
# "굿모닝 프레지던트": "",
# "태극기 휘날리며": "",
# "라스트 갓파더": "",
# "1번가의 기적": "",
# "증인": "",
# "목격자": "",
# "조작된 도시": "",
# "블랙머니": "",
# "반창꼬": "",
# "우리들의 행복한 시간": "",
# "조선명탐정: 흡혈괴마의 비밀": "",
# "화차": "",
# "이웃사람": "",
# "재심": "",
# "히트맨": "",
# "사바하": "",
# "화이: 괴물을 삼킨 아이": "",
# "의뢰인": "",
# "가문의 영광4 - 가문의 수난": "",
# "블라인드": "",
# "박열": "",
# "미인도": "",
# "음란서생": "",
# "내 생애 가장 아름다운 일주일": "",
# "하녀": "",
# "황해": "",
# "7광구": "",
# "타짜: 원 아이드 잭": "",
# "박쥐": "",
# "마당을 나온 암탉": "",
# "악의 연대기": "",
# "강남 1970": "",
# "신의 한 수: 귀수편": "",
# "마이 웨이": "",
# "나의 사랑 나의 신부": "",
# "바르게 살자": "",
# "내 사랑 내 곁에": "",
# "초능력자": "",
# "굿바이 싱글": "",
# "몽타주": "",
# "명당": "",
}
g = Graph()
names = []
vertex_weight = []
vertex_color = []
edge_weight = []
for movie in data:
g.add_vertices(1)
names.append(movie)
vertex_color.append("red")
actors = data[movie].split(",")
newActors = []
for actor in actors:
if(actor not in names):
newActors.append(actor)
names += newActors
g.add_vertices(len(newActors))
vertex_color += ["blue"] * len(newActors)
edges = []
s = names.index(movie)
for actor in actors:
e = names.index(actor)
edges.append((s, e))
g.add_edges(edges)
vertex_weight.append(audience[movie])
vertex_weight += [1] * len(newActors)
edge_weight += [audience[movie]] * len(actors)
g.vs["name"] = names
g.vs["label"] = g.vs["name"]
g.vs["color"] = vertex_color
g.es["weight"] = edge_weight
bn = g.betweenness(weights=edge_weight)
print(sorted(bn, reverse=True)[:10])
bn_norm = [int((float(i)/max(bn)) * 40) + 10 for i in bn]
out = plot(g,
bbox = (1500, 1500),
vertex_size = 20,
vertex_label_size = 12,
vertex_label_dist = 1,
vertex_label_angle = 2,
autocurve = True,
layout = g.layout("fr")
)
out.save("test.png")