gimchi 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- data/README.ko.markdown +147 -0
- data/README.markdown +33 -18
- data/lib/gimchi/char.rb +5 -2
- data/lib/gimchi/korean.rb +9 -0
- data/test/test_gimchi.rb +24 -0
- metadata +14 -14
- data/README.ko.rdoc +0 -118
data/README.ko.markdown
ADDED
@@ -0,0 +1,147 @@
|
|
1
|
+
# gimchi
|
2
|
+
|
3
|
+
## 개요
|
4
|
+
|
5
|
+
Gimchi는 한글 스트링을 다롭니다.
|
6
|
+
국립 국어원 어문 규정에 정의된 한글의 표준 발음법과
|
7
|
+
로마자 표기법을 (일부) 구현한 것이 주요 기능입니다.
|
8
|
+
|
9
|
+
또한 다음의 기능들을 제공합니다.
|
10
|
+
- 주어진 캐릭터가 한글인지 판단
|
11
|
+
- 한글을 초성, 중성, 종성으로 분리하고, 이를 다시 합치는 기능
|
12
|
+
- 숫자 표기를 한글 표현으로 변환
|
13
|
+
|
14
|
+
## 설치
|
15
|
+
```
|
16
|
+
gem install gimchi
|
17
|
+
```
|
18
|
+
|
19
|
+
## 사용법
|
20
|
+
|
21
|
+
### Gimchi::Korean 인스턴스의 생성
|
22
|
+
```ruby
|
23
|
+
require 'gimchi'
|
24
|
+
|
25
|
+
ko = Gimchi::Korean.new
|
26
|
+
```
|
27
|
+
|
28
|
+
### 한글 캐릭터 여부 판단
|
29
|
+
```ruby
|
30
|
+
ko.korean_char? 'ㄱ' # true
|
31
|
+
ko.complete_korean_char? 'ㄱ' # false
|
32
|
+
|
33
|
+
ko.korean_char? 'ㅏ' # true
|
34
|
+
ko.complete_korean_char? 'ㅏ' # false
|
35
|
+
|
36
|
+
ko.korean_char? '가' # true
|
37
|
+
ko.complete_korean_char? '가' # true
|
38
|
+
|
39
|
+
# Alias of korean_char?
|
40
|
+
ko.kchar? '가' # true
|
41
|
+
```
|
42
|
+
|
43
|
+
### Gimchi::Korean::Char
|
44
|
+
```ruby
|
45
|
+
kc = ko.kchar "한"
|
46
|
+
kc.class # Gimchi::Korean::Char
|
47
|
+
|
48
|
+
kc.chosung # "ㅎ"
|
49
|
+
kc.jungsung # "ㅏ"
|
50
|
+
kc.jongsung # "ㄴ"
|
51
|
+
kc.to_a # ["ㅎ", "ㅏ", "ㄴ"]
|
52
|
+
kc.to_s # "한"
|
53
|
+
|
54
|
+
kc.complete? # true
|
55
|
+
kc.partial? # false
|
56
|
+
ko.kchar("ㅏ").partial? # true
|
57
|
+
|
58
|
+
# Modifying its elements
|
59
|
+
kc.chosung = 'ㄷ'
|
60
|
+
kc.jongsung = 'ㄹ'
|
61
|
+
kc.to_s # "달"
|
62
|
+
kc.complete? # true
|
63
|
+
kc.partial? # false
|
64
|
+
|
65
|
+
kc.chosung = nil
|
66
|
+
kc.jongsung = nil
|
67
|
+
kc.complete? # false
|
68
|
+
kc.partial? # true
|
69
|
+
|
70
|
+
# Alias of kchar
|
71
|
+
kc = ko.korean_char "한"
|
72
|
+
|
73
|
+
# Array of Gimchi::Korean::Char's
|
74
|
+
arr = ko.dissect '이것은 한글입니다.'
|
75
|
+
# [이, 것, 은, " ", 한, 글, 입, 니, 다, "."]
|
76
|
+
|
77
|
+
arr[0].class # Gimchi::Korean::Char
|
78
|
+
```
|
79
|
+
|
80
|
+
### 숫자 읽기
|
81
|
+
```ruby
|
82
|
+
ko.read_number(1999) # "천 구백 구십 구"
|
83
|
+
ko.read_number(- 100.123) # "마이너스 백점일이삼"
|
84
|
+
ko.read_number("153,191,100,678.3214")
|
85
|
+
# "천 오백 삼십 일억 구천 백 십만 육백 칠십 팔점삼이일사"
|
86
|
+
|
87
|
+
# 나이, 시간 ( -살, -시 )
|
88
|
+
ko.read_number("20살") # "스무살"
|
89
|
+
ko.read_number("13 살") # "열세 살"
|
90
|
+
ko.read_number("7시 30분") # "일곱시 삼십분"
|
91
|
+
```
|
92
|
+
|
93
|
+
### 표준 발음 (부분 구현)
|
94
|
+
```ruby
|
95
|
+
str = "됐어 됐어 이제 그런 가르침은 됐어 매일 아침 7 시 30 분까지 우릴 조그만 교실로 몰아넣고"
|
96
|
+
ko.pronounce str
|
97
|
+
# "돼써 돼써 이제 그런 가르치믄 돼써 매일 아침 일곱 시 삼십 분까지 우릴 조그만 교실로 모라너코"
|
98
|
+
|
99
|
+
ko.pronounce str, :slur => true
|
100
|
+
# "돼써 돼써 이제 그런 가르치믄 돼써 매이 라치 밀곱 씨 삼십 뿐까지 우릴 조그만 교실로 모라너코"
|
101
|
+
|
102
|
+
ko.pronounce str, :pronounce_each_char => true
|
103
|
+
# "됃어 됃어 이제 그런 가르침은 됃어 매일 아침 일곱 시 삼십 분까지 우릴 조그만 교실로 몰아너고"
|
104
|
+
|
105
|
+
ko.pronounce str, :number => false
|
106
|
+
# "돼써 돼써 이제 그런 가르치믄 돼써 매일 아침 7 시 30 분까지 우릴 조그만 교실로 모라너코"
|
107
|
+
```
|
108
|
+
|
109
|
+
### 로마자 표기 (부분 구현)
|
110
|
+
```ruby
|
111
|
+
str = "됐어 됐어 이제 그런 가르침은 됐어 매일 아침 7 시 30 분까지 우릴 조그만 교실로 몰아넣고"
|
112
|
+
|
113
|
+
ko.romanize str
|
114
|
+
# "Dwaesseo dwaesseo ije geureon gareuchimeun dwaesseo mae-il achim ilgop si samsip bunkkaji uril jogeuman gyosillo moraneoko"
|
115
|
+
ko.romanize str, :slur => true
|
116
|
+
# "Dwaesseo dwaesseo ije geureon gareuchimeun dwaesseo mae-i rachi milgop ssi samsip ppunkkaji uril jogeuman gyosillo moraneoko"
|
117
|
+
ko.romanize str, :as_pronounced => false
|
118
|
+
# "Dwaet-eo dwaet-eo ije geureon gareuchim-eun dwaet-eo mae-il achim ilgop si samsip bunkkaji uril jogeuman gyosillo mol-aneogo"
|
119
|
+
ko.romanize str, :number => false
|
120
|
+
# "Dwaesseo dwaesseo ije geureon gareuchimeun dwaesseo mae-il achim 7 si 30 bunkkaji uril jogeuman gyosillo moraneoko"
|
121
|
+
```
|
122
|
+
|
123
|
+
## 구현의 한계
|
124
|
+
|
125
|
+
표준 발음법과 로마어 표기법을 모두 구현하기 위해서는 형태소 분석과 충분한
|
126
|
+
사전, 그리고 문맥의 의미 분석이 필요합니다. 이 모든 것이 준비된다고 할 지라도
|
127
|
+
완벽한 결과를 얻는 것은 불가능합니다.
|
128
|
+
이는 현재 gimchi가 목표로 하는 것이 아니며 gimchi는 간단한 구현으로 어느 수준
|
129
|
+
이상의 결과를 얻는 것을 목표로 합니다. 현재 구현의 한계 내에서 정확도를 올리기
|
130
|
+
위해 Ad-hoc한 patch 등이 코드에 상당량 포함된 상태인데 이를 정제하고 체계화하는
|
131
|
+
노력이 필요합니다.
|
132
|
+
|
133
|
+
## Contributing to gimchi
|
134
|
+
|
135
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
136
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
137
|
+
* Fork the project
|
138
|
+
* Start a feature/bugfix branch
|
139
|
+
* Commit and push until you are happy with your contribution
|
140
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
141
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
142
|
+
|
143
|
+
## Copyright
|
144
|
+
|
145
|
+
Copyright (c) 2011 Junegunn Choi. See LICENSE.txt for
|
146
|
+
further details.
|
147
|
+
|
data/README.markdown
CHANGED
@@ -34,31 +34,46 @@ ko.complete_korean_char? 'ㅏ' # false
|
|
34
34
|
|
35
35
|
ko.korean_char? '가' # true
|
36
36
|
ko.complete_korean_char? '가' # true
|
37
|
+
|
38
|
+
# Shorthand of korean_char?
|
39
|
+
ko.kchar? '가' # true
|
37
40
|
```
|
38
41
|
|
39
42
|
### Usage of Gimchi::Korean::Char
|
40
43
|
```ruby
|
44
|
+
kc = ko.kchar "한"
|
45
|
+
kc.class # Gimchi::Korean::Char
|
46
|
+
|
47
|
+
kc.chosung # "ㅎ"
|
48
|
+
kc.jungsung # "ㅏ"
|
49
|
+
kc.jongsung # "ㄴ"
|
50
|
+
kc.to_a # ["ㅎ", "ㅏ", "ㄴ"]
|
51
|
+
kc.to_s # "한"
|
52
|
+
|
53
|
+
kc.complete? # true
|
54
|
+
kc.partial? # false
|
55
|
+
ko.kchar("ㅏ").partial? # true
|
56
|
+
|
57
|
+
# Modifying its elements
|
58
|
+
kc.chosung = 'ㄷ'
|
59
|
+
kc.jongsung = 'ㄹ'
|
60
|
+
kc.to_s # "달"
|
61
|
+
kc.complete? # true
|
62
|
+
kc.partial? # false
|
63
|
+
|
64
|
+
kc.chosung = nil
|
65
|
+
kc.jongsung = nil
|
66
|
+
kc.complete? # false
|
67
|
+
kc.partial? # true
|
68
|
+
|
69
|
+
# Alias of kchar
|
70
|
+
kc = ko.korean_char "한"
|
71
|
+
|
72
|
+
# Array of Gimchi::Korean::Char's
|
41
73
|
arr = ko.dissect '이것은 한글입니다.'
|
42
74
|
# [이, 것, 은, " ", 한, 글, 입, 니, 다, "."]
|
43
75
|
|
44
|
-
arr[
|
45
|
-
|
46
|
-
arr[4].chosung # "ㅎ"
|
47
|
-
arr[4].jungsung # "ㅏ"
|
48
|
-
arr[4].jongsung # "ㄴ"
|
49
|
-
arr[4].to_a # ["ㅎ", "ㅏ", "ㄴ"]
|
50
|
-
arr[4].to_s # "한"
|
51
|
-
|
52
|
-
arr[4].chosung = 'ㄷ'
|
53
|
-
arr[4].jongsung = 'ㄹ'
|
54
|
-
arr[4].to_s # "달"
|
55
|
-
arr[4].complete? # true
|
56
|
-
arr[4].partial? # false
|
57
|
-
|
58
|
-
arr[4].chosung = nil
|
59
|
-
arr[4].jongsung = nil
|
60
|
-
arr[4].complete? # false
|
61
|
-
arr[4].partial? # true
|
76
|
+
arr[0].class # Gimchi::Korean::Char
|
62
77
|
```
|
63
78
|
|
64
79
|
### Reading numbers in Korean
|
data/lib/gimchi/char.rb
CHANGED
@@ -17,10 +17,9 @@ class Korean
|
|
17
17
|
# @param [Gimchi::Korean] kor Gimchi::Korean instance
|
18
18
|
# @param [String] kchar Korean character string
|
19
19
|
def initialize kor, kchar
|
20
|
-
raise ArgumentError('Not a korean character') unless kor.korean_char? kchar
|
20
|
+
raise ArgumentError.new('Not a korean character') unless kor.korean_char? kchar
|
21
21
|
|
22
22
|
@kor = kor
|
23
|
-
@cur = []
|
24
23
|
if @kor.complete_korean_char? kchar
|
25
24
|
c = kchar.unpack('U').first
|
26
25
|
n = c - 0xAC00
|
@@ -101,6 +100,10 @@ class Korean
|
|
101
100
|
chosung.nil? || jungsung.nil?
|
102
101
|
end
|
103
102
|
|
103
|
+
def inspect
|
104
|
+
"#{to_s}(#{to_a.join('/')})"
|
105
|
+
end
|
106
|
+
|
104
107
|
private
|
105
108
|
# Three components of Korean::Char are extended to support #vowel? and #consonant? method.
|
106
109
|
module Component
|
data/lib/gimchi/korean.rb
CHANGED
@@ -56,6 +56,7 @@ class Korean
|
|
56
56
|
complete_korean_char?(ch) ||
|
57
57
|
(chosungs + jungsungs + jongsungs).include?(ch)
|
58
58
|
end
|
59
|
+
alias kchar? korean_char?
|
59
60
|
|
60
61
|
# Checks if the given character is a "complete" korean character.
|
61
62
|
# "Complete" Korean character must have chosung and jungsung, with optional jongsung.
|
@@ -76,6 +77,14 @@ class Korean
|
|
76
77
|
}
|
77
78
|
end
|
78
79
|
|
80
|
+
# Returns a Korean::Char object for the given Korean character.
|
81
|
+
# @param [String] ch Korean character in String
|
82
|
+
# @return [Korean::Char] Korean::Char instance
|
83
|
+
def kchar ch
|
84
|
+
Korean::Char.new(self, ch)
|
85
|
+
end
|
86
|
+
alias korean_char kchar
|
87
|
+
|
79
88
|
# Reads numeric expressions in Korean way.
|
80
89
|
# @param [String, Number] str Numeric type or String containing numeric expressions
|
81
90
|
# @return [String] Output string
|
data/test/test_gimchi.rb
CHANGED
@@ -7,15 +7,38 @@ class TestGimchi < Test::Unit::TestCase
|
|
7
7
|
def test_korean_char
|
8
8
|
ko = Gimchi::Korean.new
|
9
9
|
assert_equal true, ko.korean_char?('ㄱ') # true
|
10
|
+
assert_equal true, ko.kchar?('ㄱ') # true
|
10
11
|
assert_equal true, ko.korean_char?('ㅏ') # true
|
11
12
|
assert_equal true, ko.korean_char?('가') # true
|
12
13
|
assert_equal true, ko.korean_char?('값') # true
|
14
|
+
assert_equal true, ko.kchar?('값') # true
|
13
15
|
|
14
16
|
assert_equal false, ko.korean_char?('a') # false
|
15
17
|
assert_equal false, ko.korean_char?('1') # false
|
16
18
|
assert_raise(ArgumentError) { ko.korean_char?('두자') }
|
19
|
+
assert_raise(ArgumentError) { ko.kchar?('두자') }
|
17
20
|
end
|
18
21
|
|
22
|
+
def test_kchar
|
23
|
+
ko = Gimchi::Korean.new
|
24
|
+
# Alias
|
25
|
+
[ko.kchar('한'), ko.korean_char('한')].each do |kc|
|
26
|
+
assert_equal Gimchi::Korean::Char, kc.class
|
27
|
+
assert_equal "ㅎ", kc.chosung
|
28
|
+
assert_equal "ㅏ", kc.jungsung
|
29
|
+
assert_equal "ㄴ", kc.jongsung
|
30
|
+
assert_equal ["ㅎ", "ㅏ", "ㄴ"], kc.to_a
|
31
|
+
assert_equal "한", kc.to_s
|
32
|
+
assert_equal true, kc.complete?
|
33
|
+
assert_equal false, kc.partial?
|
34
|
+
end
|
35
|
+
|
36
|
+
assert_raise(ArgumentError) { ko.kchar('한글') }
|
37
|
+
assert_raise(ArgumentError) { ko.kchar('A') }
|
38
|
+
|
39
|
+
assert_equal true, ko.kchar("ㅏ").partial?
|
40
|
+
end
|
41
|
+
|
19
42
|
def test_complete_korean_char
|
20
43
|
ko = Gimchi::Korean.new
|
21
44
|
|
@@ -44,6 +67,7 @@ class TestGimchi < Test::Unit::TestCase
|
|
44
67
|
assert_equal 'ㅇ', ch.chosung
|
45
68
|
assert_equal 'ㅡ', ch.jungsung
|
46
69
|
assert_equal 'ㄴ', ch.jongsung
|
70
|
+
assert_equal "은(ㅇ/ㅡ/ㄴ)", ch.inspect
|
47
71
|
|
48
72
|
ch.chosung = 'ㄱ'
|
49
73
|
ch.jongsung = 'ㅁ'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gimchi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-12-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
|
-
requirement: &
|
16
|
+
requirement: &2152021800 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.0.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2152021800
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: jeweler
|
27
|
-
requirement: &
|
27
|
+
requirement: &2152177100 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.5.2
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2152177100
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rcov
|
38
|
-
requirement: &
|
38
|
+
requirement: &2152174620 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2152174620
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: ansi
|
49
|
-
requirement: &
|
49
|
+
requirement: &2152190900 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: 1.2.2
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2152190900
|
58
58
|
description: Gimchi knows how to pronounce Korean strings and how to write them in
|
59
59
|
roman alphabet.
|
60
60
|
email: junegunn.c@gmail.com
|
@@ -62,7 +62,7 @@ executables: []
|
|
62
62
|
extensions: []
|
63
63
|
extra_rdoc_files:
|
64
64
|
- LICENSE.txt
|
65
|
-
- README.ko.
|
65
|
+
- README.ko.markdown
|
66
66
|
- README.markdown
|
67
67
|
files:
|
68
68
|
- config/default.yml
|
@@ -72,7 +72,7 @@ files:
|
|
72
72
|
- lib/gimchi/patch_1.8.rb
|
73
73
|
- lib/gimchi/pronouncer.rb
|
74
74
|
- LICENSE.txt
|
75
|
-
- README.ko.
|
75
|
+
- README.ko.markdown
|
76
76
|
- README.markdown
|
77
77
|
- test/helper.rb
|
78
78
|
- test/pronunciation.yml
|
@@ -93,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
93
93
|
version: '0'
|
94
94
|
segments:
|
95
95
|
- 0
|
96
|
-
hash: -
|
96
|
+
hash: -4230473525462168510
|
97
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
98
|
none: false
|
99
99
|
requirements:
|
@@ -102,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
102
|
version: '0'
|
103
103
|
requirements: []
|
104
104
|
rubyforge_project:
|
105
|
-
rubygems_version: 1.8.
|
105
|
+
rubygems_version: 1.8.10
|
106
106
|
signing_key:
|
107
107
|
specification_version: 3
|
108
108
|
summary: Gimchi reads Korean.
|
data/README.ko.rdoc
DELETED
@@ -1,118 +0,0 @@
|
|
1
|
-
= gimchi
|
2
|
-
|
3
|
-
== 개요
|
4
|
-
|
5
|
-
Gimchi는 한글 스트링을 다롭니다.
|
6
|
-
국립 국어원 어문 규정에 정의된 한글의 표준 발음법과
|
7
|
-
로마자 표기법을 (일부) 구현한 것이 주요 기능입니다.
|
8
|
-
|
9
|
-
또한 다음의 기능들을 제공합니다.
|
10
|
-
- 주어진 캐릭터가 한글인지 판단
|
11
|
-
- 한글을 초성, 중성, 종성으로 분리하고, 이를 다시 합치는 기능
|
12
|
-
- 숫자 표기를 한글 표현으로 변환
|
13
|
-
|
14
|
-
== 설치
|
15
|
-
gem install gimchi
|
16
|
-
|
17
|
-
== 사용법
|
18
|
-
|
19
|
-
=== Gimchi::Korean 인스턴스의 생성
|
20
|
-
require 'gimchi'
|
21
|
-
|
22
|
-
ko = Gimchi::Korean.new
|
23
|
-
|
24
|
-
=== 한글 캐릭터 여부 판단
|
25
|
-
ko.korean_char? 'ㄱ' # true
|
26
|
-
ko.complete_korean_char? 'ㄱ' # false
|
27
|
-
|
28
|
-
ko.korean_char? 'ㅏ' # true
|
29
|
-
ko.complete_korean_char? 'ㅏ' # false
|
30
|
-
|
31
|
-
ko.korean_char? '가' # true
|
32
|
-
ko.complete_korean_char? '가' # true
|
33
|
-
|
34
|
-
=== Gimchi::Korean::Char
|
35
|
-
arr = ko.dissect '이것은 한글입니다.'
|
36
|
-
# [이, 것, 은, " ", 한, 글, 입, 니, 다, "."]
|
37
|
-
|
38
|
-
arr[4].class # Gimchi::Korean::Char
|
39
|
-
|
40
|
-
arr[4].chosung # "ㅎ"
|
41
|
-
arr[4].jungsung # "ㅏ"
|
42
|
-
arr[4].jongsung # "ㄴ"
|
43
|
-
arr[4].to_a # ["ㅎ", "ㅏ", "ㄴ"]
|
44
|
-
arr[4].to_s # "한"
|
45
|
-
|
46
|
-
arr[4].chosung = 'ㄷ'
|
47
|
-
arr[4].jongsung = 'ㄹ'
|
48
|
-
arr[4].to_s # "달"
|
49
|
-
arr[4].complete? # true
|
50
|
-
arr[4].partial? # false
|
51
|
-
|
52
|
-
arr[4].chosung = nil
|
53
|
-
arr[4].jongsung = nil
|
54
|
-
arr[4].complete? # false
|
55
|
-
arr[4].partial? # true
|
56
|
-
|
57
|
-
=== 숫자 읽기
|
58
|
-
ko.read_number(1999) # "천 구백 구십 구"
|
59
|
-
ko.read_number(- 100.123) # "마이너스 백점일이삼"
|
60
|
-
ko.read_number("153,191,100,678.3214")
|
61
|
-
# "천 오백 삼십 일억 구천 백 십만 육백 칠십 팔점삼이일사"
|
62
|
-
|
63
|
-
# 나이, 시간 ( -살, -시 )
|
64
|
-
ko.read_number("20살") # "스무살"
|
65
|
-
ko.read_number("13 살") # "열세 살"
|
66
|
-
ko.read_number("7시 30분") # "일곱시 삼십분"
|
67
|
-
|
68
|
-
=== 표준 발음 (부분 구현)
|
69
|
-
str = "됐어 됐어 이제 그런 가르침은 됐어 매일 아침 7 시 30 분까지 우릴 조그만 교실로 몰아넣고"
|
70
|
-
ko.pronounce str
|
71
|
-
# "돼써 돼써 이제 그런 가르치믄 돼써 매일 아침 일곱 시 삼십 분까지 우릴 조그만 교실로 모라너코"
|
72
|
-
|
73
|
-
ko.pronounce str, :slur => true
|
74
|
-
# "돼써 돼써 이제 그런 가르치믄 돼써 매이 라치 밀곱 씨 삼십 뿐까지 우릴 조그만 교실로 모라너코"
|
75
|
-
|
76
|
-
ko.pronounce str, :pronounce_each_char => true
|
77
|
-
# "됃어 됃어 이제 그런 가르침은 됃어 매일 아침 일곱 시 삼십 분까지 우릴 조그만 교실로 몰아너고"
|
78
|
-
|
79
|
-
ko.pronounce str, :number => false
|
80
|
-
# "돼써 돼써 이제 그런 가르치믄 돼써 매일 아침 7 시 30 분까지 우릴 조그만 교실로 모라너코"
|
81
|
-
|
82
|
-
=== 로마자 표기 (부분 구현)
|
83
|
-
str = "됐어 됐어 이제 그런 가르침은 됐어 매일 아침 7 시 30 분까지 우릴 조그만 교실로 몰아넣고"
|
84
|
-
|
85
|
-
ko.romanize str
|
86
|
-
# "Dwaesseo dwaesseo ije geureon gareuchimeun dwaesseo mae-il achim ilgop si samsip bunkkaji uril jogeuman gyosillo moraneoko"
|
87
|
-
ko.romanize str, :slur => true
|
88
|
-
# "Dwaesseo dwaesseo ije geureon gareuchimeun dwaesseo mae-i rachi milgop ssi samsip ppunkkaji uril jogeuman gyosillo moraneoko"
|
89
|
-
ko.romanize str, :as_pronounced => false
|
90
|
-
# "Dwaet-eo dwaet-eo ije geureon gareuchim-eun dwaet-eo mae-il achim ilgop si samsip bunkkaji uril jogeuman gyosillo mol-aneogo"
|
91
|
-
ko.romanize str, :number => false
|
92
|
-
# "Dwaesseo dwaesseo ije geureon gareuchimeun dwaesseo mae-il achim 7 si 30 bunkkaji uril jogeuman gyosillo moraneoko"
|
93
|
-
|
94
|
-
== 구현의 한계
|
95
|
-
|
96
|
-
표준 발음법과 로마어 표기법을 모두 구현하기 위해서는 형태소 분석과 충분한
|
97
|
-
사전, 그리고 문맥의 의미 분석이 필요합니다. 이 모든 것이 준비된다고 할 지라도
|
98
|
-
완벽한 결과를 얻는 것은 불가능합니다.
|
99
|
-
이는 현재 gimchi가 목표로 하는 것이 아니며 gimchi는 간단한 구현으로 어느 수준
|
100
|
-
이상의 결과를 얻는 것을 목표로 합니다. 현재 구현의 한계 내에서 정확도를 올리기
|
101
|
-
위해 Ad-hoc한 patch 등이 코드에 상당량 포함된 상태인데 이를 정제하고 체계화하는
|
102
|
-
노력이 필요합니다.
|
103
|
-
|
104
|
-
== Contributing to gimchi
|
105
|
-
|
106
|
-
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
107
|
-
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
108
|
-
* Fork the project
|
109
|
-
* Start a feature/bugfix branch
|
110
|
-
* Commit and push until you are happy with your contribution
|
111
|
-
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
112
|
-
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
113
|
-
|
114
|
-
== Copyright
|
115
|
-
|
116
|
-
Copyright (c) 2011 Junegunn Choi. See LICENSE.txt for
|
117
|
-
further details.
|
118
|
-
|