go00od commited on
Commit
69c7923
·
verified ·
1 Parent(s): df46863

변수 업데이트

Browse files
Files changed (1) hide show
  1. name_change.py +59 -59
name_change.py CHANGED
@@ -1,60 +1,60 @@
1
- from OldHangeul import text_to_jamo
2
- import torch
3
- import string
4
-
5
-
6
-
7
-
8
- # 한글 자모의 로마자 대응 값
9
- initials = {
10
- 'ᄀ': 'K', 'ᄁ': 'KK', 'ᄂ': 'N', 'ᄃ': 'T', 'ᄄ': 'TT', 'ᄅ': 'R', 'ᄆ': 'M', 'ᄇ': 'P', 'ᄈ': 'PP', 'ᄉ': 'S', 'ᄊ': 'SS',
11
- 'ᄋ': 'NG', 'ᄌ': 'C', 'ᄍ': 'CC', 'ᄎ': 'CH', 'ᄏ': 'KH', 'ᄐ': 'TH', 'ᄑ': 'PH', 'ᄒ': 'H'
12
- }
13
-
14
- medials = {
15
- 'ᅡ': 'a', 'ᅢ': 'ae', 'ᅣ': 'ya', 'ᅤ': 'yae', 'ᅥ': 'eo', 'ᅦ': 'e', 'ᅧ': 'yeo', 'ᅨ': 'ye', 'ᅩ': 'o', 'ᅪ': 'wa',
16
- 'ᅫ': 'wae', 'ᅬ': 'oe', 'ᅭ': 'yo', 'ᅮ': 'u', 'ᅯ': 'wo', 'ᅰ': 'we', 'ᅱ': 'wi', 'ᅲ': 'yu', 'ᅳ': 'eu', 'ᅴ': 'ui', 'ᅵ': 'i'
17
- }
18
-
19
- finals = {
20
- '': '', 'ᆨ': 'k', 'ᆩ': 'kk', 'ᆪ': 'ks', 'ᆫ': 'n', 'ᆬ': 'nj', 'ᆭ': 'nh', 'ᆮ': 't', 'ᆯ': 'r', 'ᆰ': 'rk', 'ᆱ': 'rm',
21
- 'ᆲ': 'rb', 'ᆳ': 'rs', 'ᆴ': 'rt', 'ᆵ': 'rp', 'ᆶ': 'rh', 'ᆷ': 'm', 'ᆸ': 'p', 'ᆹ': 'ps', 'ᆺ': 's', 'ᆻ': 'ss', 'ᆼ': 'ng',
22
- 'ᆽ': 'c', 'ᆾ': 'ch', 'ᆿ': 'kh', 'ᇀ': 'th', 'ᇁ': 'ph', 'ᇂ': 'h'
23
- }
24
-
25
- # 역방향 매핑을 위한 사전 생성
26
- rev_initials = {v: k for k, v in initials.items()}
27
- rev_medials = {v: k for k, v in medials.items()}
28
- rev_finals = {v: k for k, v in finals.items()}
29
-
30
- def hangul_to_roman(hangul):
31
- result = []
32
- for char in hangul:
33
- if '가' <= char <= '힣':
34
- jamos=text_to_jamo(char, Compatibility=False, spacing=False)
35
- initial = initials[jamos[0]]
36
- medial = medials[jamos[2]]
37
- final = finals[jamos[4]] if len(jamos) == 5 else ''
38
- result.append(initial + medial + final)
39
- else:
40
- result.append(char)
41
- return ''.join(result)
42
-
43
-
44
-
45
-
46
- all_letters = string.ascii_letters + " .,;'"
47
- n_letters = len(all_letters)
48
-
49
- # all_letters 로 문자의 주소 찾기, 예시 "a" = 0
50
- def letterToIndex(letter):
51
- return all_letters.find(letter)
52
-
53
-
54
- # 한 줄(이름)을 <line_length x 1 x n_letters>,
55
- # 또는 One-Hot 문자 벡터의 Array로 변경
56
- def lineToTensor(line):
57
- tensor = torch.zeros(len(line), 1, n_letters)
58
- for li, letter in enumerate(line):
59
- tensor[li][0][letterToIndex(letter)] = 1
60
  return tensor
 
1
+ from OldHangeul import text_to_jamo
2
+ import torch
3
+ import string
4
+
5
+
6
+
7
+
8
+ # 한글 자모의 로마자 대응 값
9
+ initials = {
10
+ 'ᄀ': 'K', 'ᄁ': 'KK', 'ᄂ': 'N', 'ᄃ': 'T', 'ᄄ': 'TT', 'ᄅ': 'R', 'ᄆ': 'M', 'ᄇ': 'P', 'ᄈ': 'PP', 'ᄉ': 'S', 'ᄊ': 'SS',
11
+ 'ᄋ': 'NG', 'ᄌ': 'C', 'ᄍ': 'CC', 'ᄎ': 'CH', 'ᄏ': 'KH', 'ᄐ': 'TH', 'ᄑ': 'PH', 'ᄒ': 'H'
12
+ }
13
+
14
+ medials = {
15
+ 'ᅡ': 'a', 'ᅢ': 'ae', 'ᅣ': 'ya', 'ᅤ': 'yae', 'ᅥ': 'eo', 'ᅦ': 'e', 'ᅧ': 'yeo', 'ᅨ': 'ye', 'ᅩ': 'o', 'ᅪ': 'wa',
16
+ 'ᅫ': 'wae', 'ᅬ': 'oe', 'ᅭ': 'yo', 'ᅮ': 'u', 'ᅯ': 'wo', 'ᅰ': 'we', 'ᅱ': 'wi', 'ᅲ': 'yu', 'ᅳ': 'eu', 'ᅴ': 'ui', 'ᅵ': 'i'
17
+ }
18
+
19
+ finals = {
20
+ '': '', 'ᆨ': 'k', 'ᆩ': 'kk', 'ᆪ': 'ks', 'ᆫ': 'n', 'ᆬ': 'nj', 'ᆭ': 'nh', 'ᆮ': 't', 'ᆯ': 'r', 'ᆰ': 'rk', 'ᆱ': 'rm',
21
+ 'ᆲ': 'rb', 'ᆳ': 'rs', 'ᆴ': 'rt', 'ᆵ': 'rp', 'ᆶ': 'rh', 'ᆷ': 'm', 'ᆸ': 'p', 'ᆹ': 'ps', 'ᆺ': 's', 'ᆻ': 'ss', 'ᆼ': 'ng',
22
+ 'ᆽ': 'c', 'ᆾ': 'ch', 'ᆿ': 'kh', 'ᇀ': 'th', 'ᇁ': 'ph', 'ᇂ': 'h'
23
+ }
24
+
25
+ # 역방향 매핑을 위한 사전 생성
26
+ rev_initials = {v: k for k, v in initials.items()}
27
+ rev_medials = {v: k for k, v in medials.items()}
28
+ rev_finals = {v: k for k, v in finals.items()}
29
+
30
+ def hangul_to_roman(hangul):
31
+ result = []
32
+ for char in hangul:
33
+ if '가' <= char <= '힣':
34
+ jamos=text_to_jamo(char, compatibility=False, spacing=False)
35
+ initial = initials[jamos[0]]
36
+ medial = medials[jamos[2]]
37
+ final = finals[jamos[4]] if len(jamos) == 5 else ''
38
+ result.append(initial + medial + final)
39
+ else:
40
+ result.append(char)
41
+ return ''.join(result)
42
+
43
+
44
+
45
+
46
+ all_letters = string.ascii_letters + " .,;'"
47
+ n_letters = len(all_letters)
48
+
49
+ # all_letters 로 문자의 주소 찾기, 예시 "a" = 0
50
+ def letterToIndex(letter):
51
+ return all_letters.find(letter)
52
+
53
+
54
+ # 한 줄(이름)을 <line_length x 1 x n_letters>,
55
+ # 또는 One-Hot 문자 벡터의 Array로 변경
56
+ def lineToTensor(line):
57
+ tensor = torch.zeros(len(line), 1, n_letters)
58
+ for li, letter in enumerate(line):
59
+ tensor[li][0][letterToIndex(letter)] = 1
60
  return tensor