seawolf2357 commited on
Commit
f8a5bc5
Β·
verified Β·
1 Parent(s): ffdba5c

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -0
app.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+
3
+ # MBTI 진단 λ¬Έν•­
4
+ questions = [
5
+ "μƒˆλ‘œμš΄ μ‚¬λžŒλ“€μ„ λ§Œλ‚  λ•Œ 주둜 μ κ·Ήμ μΈκ°€μš”?",
6
+ "μƒμƒλ³΄λ‹€λŠ” ν˜„μ‹€μ— 더 관심이 λ§Žλ‚˜μš”?",
7
+ "결정을 ν•  λ•Œ 논리와 이성을 더 μ€‘μ‹œν•˜λ‚˜μš”?",
8
+ "κ³„νšμ„ μ„Έμš°λŠ” 것을 μ„ ν˜Έν•˜λ‚˜μš”, spontaneityλ₯Ό μ¦κΈ°λ‚˜μš”?",
9
+ "κ·Έλ£Ή λ‚΄μ—μ„œ 리더 역할을 자주 λ§‘λ‚˜μš”?",
10
+ "μ„ΈλΆ€ μ‚¬ν•­λ³΄λ‹€λŠ” 전체적인 그림을 더 λ³΄λŠ” νŽΈμΈκ°€μš”?",
11
+ "감정보닀 사싀을 기반으둜 μ˜μ‚¬ 결정을 ν•˜λ‚˜μš”?",
12
+ "λ¦¬μŠ€νŠΈλ‚˜ κ³„νš 없이 여행을 갈 수 μžˆλ‚˜μš”?",
13
+ "λŒ€ν™”λ³΄λ‹€λŠ” 관찰을 μ„ ν˜Έν•˜λ‚˜μš”?",
14
+ "ν˜μ‹ μ μΈ μ•„μ΄λ””μ–΄λ³΄λ‹€λŠ” κ²€μ¦λœ 방법을 μ„ ν˜Έν•˜λ‚˜μš”?",
15
+ "인간 κ΄€κ³„μ—μ„œ 곡감λŠ₯λ ₯을 μ€‘μš”ν•˜κ²Œ μƒκ°ν•˜λ‚˜μš”?",
16
+ "일을 마감 κΈ°ν•œ 직전에 ν•˜λŠ” νŽΈμΈκ°€μš”?",
17
+ "μ‚¬λžŒλ“€κ³Ό μ–΄μšΈλ¦¬κ³  λ‚˜λ©΄ μ—λ„ˆμ§€λ₯Ό λŠλΌλ‚˜μš”?",
18
+ "이둠적인 κ°œλ…μ— λŒ€ν•΄ λ°°μš°λŠ” 것을 μ’‹μ•„ν•˜λ‚˜μš”?",
19
+ "νƒ€μΈμ˜ 감정을 κ³ λ €ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€κ³  μƒκ°ν•˜λ‚˜μš”?",
20
+ "일정과 κ³„νšμ„ λ”°λ₯΄λŠ” 것을 μ„ ν˜Έν•˜λ‚˜μš”?",
21
+ "ν™œλ™μ μΈ λ ˆν¬λ¦¬μ—μ΄μ…˜λ³΄λ‹€ μ‘°μš©ν•œ μ·¨λ―Έλ₯Ό μ„ ν˜Έν•˜λ‚˜μš”?",
22
+ "μ‹€μ œ κ²½ν—˜μ„ 톡해 λ°°μš°λŠ” 것을 μ’‹μ•„ν•˜λ‚˜μš”?",
23
+ "μ •μ˜μ™€ 곡정함이 맀우 μ€‘μš”ν•˜λ‹€κ³  μƒκ°ν•˜λ‚˜μš”?",
24
+ "μœ μ—°μ„±μ΄ κ³„νšμ„±λ³΄λ‹€ 더 μ€‘μš”ν•˜λ‹€κ³  μƒκ°ν•˜λ‚˜μš”?"
25
+ ]
26
+
27
+ def mbti_predict(*answers):
28
+ scores = {'E': 0, 'I': 0, 'S': 0, 'N': 0, 'T': 0, 'F': 0, 'J': 0, 'P': 0}
29
+
30
+ for i, answer in enumerate(answers):
31
+ if answer == '예':
32
+ if i in [0, 4, 12, 16]: scores['E'] += 1
33
+ if i in [1, 5, 9, 17]: scores['S'] += 1
34
+ if i in [2, 6, 14, 18]: scores['T'] += 1
35
+ if i in [3, 7, 11, 15, 19]: scores['J'] += 1
36
+ else:
37
+ if i in [0, 4, 12, 16]: scores['I'] += 1
38
+ if i in [1, 5, 9, 17]: scores['N'] += 1
39
+ if i in [2, 6, 14, 18]: scores['F'] += 1
40
+ if i in [3, 7, 11, 15, 19]: scores['P'] += 1
41
+
42
+ mbti_type = ''.join([max(('E', 'I'), key=lambda x: scores[x]),
43
+ max(('S', 'N'), key=lambda x: scores[x]),
44
+ max(('T', 'F'), key=lambda x: scores[x]),
45
+ max(('J', 'P'), key=lambda x: scores[x])])
46
+
47
+ return f"λ‹Ήμ‹ μ˜ MBTI μœ ν˜•μ€ {mbti_type}μž…λ‹ˆλ‹€."
48
+
49
+ iface = gr.Interface(fn=mbti_predict,
50
+ inputs=[gr.Radio(['예', 'μ•„λ‹ˆμ˜€']) for _ in questions],
51
+ outputs="text",
52
+ title="MBTI μœ ν˜• 진단",
53
+ description="20개의 μ§ˆλ¬Έμ— λ‹΅ν•˜μ—¬ λ‹Ήμ‹ μ˜ MBTI μœ ν˜•μ„ μ•Œμ•„λ³΄μ„Έμš”.",
54
+ article="각 μ§ˆλ¬Έμ— '예' λ˜λŠ” 'μ•„λ‹ˆμ˜€'둜 λ‹΅ν•΄ μ£Όμ„Έμš”.")
55
+ iface.launch()