ํ๊ตญ์ด ๋ ธ์ด์ฆ ์ถ๊ฐ (konoise)
ํ๊ตญ์ด ๋ฌธ์์ ๋ ธ์ด์ฆ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค(Library for generating the noise in Korean).
์ง์
- manylinux (lastest version, 1.7.5)
- windows, macOS (old version)
์ค์น ๋ฐฉ๋ฒ
$ pip install konoise
์คํ ๋ฐฉ๋ฒ
from konoise import NoiseGenerator
text = "ํ๋ณตํ ๊ฐ์ ์ ๋ชจ๋๊ฐ ๋ฎ์์ง๋ง, ๋ถํํ ๊ฐ์ ์ ๋ชจ๋ ์ ๋ง๋ค์ ์ด์ ๋ก ๋ถํํ๋ค."
generator = NoiseGenerator(num_cores=8)
text = generator.generate(text, methods='disattach-letters', prob=1., delimeter='newline')
text
>>> ํ๋ณตํ ใฑใ
์ ์ ๋ชจ๋ใฑใ
๋ฎ์ใ
ใ
ฃ๋ง, ๋ถํํ ใฑใ
์ ์ ๋ชจ๋ ใ
ใ
ใ
ใ
ใทใ
์ ใ
ใ
ฃ์ ๋ก ๋ถํใ
ใ
ใทใ
.
-
text: ๋ ธ์ด์ฆ๋ฅผ ์์ฑํ ํ ์คํธ์ ๋๋ค.
-
methods: ๋ ธ์ด์ฆ ์์ฑ ๋ฐฉ๋ฒ์ ๋๋ค(์ฌ์ฉ๊ฐ๋ฅํ ๋ฐฉ๋ฒ๋ค์ ์๋๋ฅผ ์ฐธ๊ณ , default:).
-
prob: ๋ ธ์ด์ฆ๋ฅผ ์์ฑํ๋ ํ๋ฅ ์ ๋๋ค(delimeter๋ณ๋ก ์ ์ฉ, 0-1์ฌ์ด์ ์ค์).
-
delimeter: ๋ ธ์ด์ฆ ์ ์ฉ, ๋ฉํฐ ํ๋ก์ธ์ฑ ์ ์ฉ์ ๊ธฐ์ค์ด ๋๋ ๋จ์ ์ ๋๋ค('total':์ ์ฒด,'newline':๊ฐํ(\n),'sentence':๋ฌธ์ฅ).
-
use_rust_tokenizer: rust ๊ธฐ๋ฐ ๋ ธ์ด์ฆ ์์ฑ๊ธฐ๋ฅผ ์ฌ์ฉ ํ ์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
๋ ธ์ด์ฆ ์์ฑ ๋ฐฉ๋ฒ
๋ ธ์ด์ฆ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ด 6๊ฐ์ง๊ฐ ๊ตฌํ๋์ด ์์ต๋๋ค.
'disattach-letters': disattach_letters,
'change-vowels': change_vowels,
'palatalization': partial(phonetic_change, func='palatalization'),
'linking': partial(phonetic_change, func='linking'),
'liquidization': partial(phonetic_change, func='liquidization'),
'nasalization': partial(phonetic_change, func='nasalization'),
'assimilation': partial(phonetic_change, func='assimilation'),
'yamin-jungum': yamin_jungum
- ์ผํ(,)๋ก ๊ตฌ๋ถํ์ฌ ์ฌ๋ฌ ๋ฐฉ๋ฒ๋ค์ ๊ฐ์ด ์ฌ์ฉํ ์ ์์ต๋๋ค.
[disattach-letters] ์๋ชจ ๋ถ๋ฆฌ(alphabet separation)์ ์ํ ๋ ธ์ด์ฆ ์ถ๊ฐ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ธ์์ ์์๊ณผ ๋ชจ์์ ๋ถ๋ฆฌํฉ๋๋ค. ๋จ, ๊ฐ๋ ์ฑ์ ์ํด ์ข ์ฑ์ด ์์ผ๋ฉฐ ์ค์ฑ์ด 'ใ ', 'ใ ', 'ใ ', 'ใ ', 'ใ ', 'ใ ', 'ใ ', 'ใ ', 'ใ ', 'ใ ก', 'ใ ข', 'ใ ' ๊ฐ ์๋ ๊ฒฝ์ฐ ์คํํฉ๋๋ค(์: ์๋ ํ์ธ์ > ์๋ ใ ใ ใ ใ ์)
[change-vowels] ๋ชจ์ ๋ณํ์ ์ํ ๋ ธ์ด์ฆ ์ถ๊ฐ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ธ์์ ๋ชจ์์ ๋ณํ์ํต๋๋ค. ๋จ, ๊ฐ๋ ์ฑ์ ์ํด ์ข ์ฑ์ด ์์ผ๋ฉฐ ์ค์ฑ์ด 'ใ ', 'ใ ', 'ใ ', 'ใ ', 'ใ ', 'ใ ', 'ใ ', 'ใ ' ์ผ ๊ฒฝ์ฐ ์คํํฉ๋๋ค(์: ์๋ ํ์ธ์ > ์๋ ํ์ธ์ค).
[palatalization] ์์ด ๋ณํ ์ค, ๊ตฌ๊ฐ ์ํ๋ฅผ ๊ตฌํํ๋ ํจ์์ ๋๋ค.
[linking] ์์ด ๋ณํ ์ค, ์ฐ์์ ๊ตฌํํ๋ ํจ์์ ๋๋ค.
[liquidization] ์์ด ๋ณํ ์ค, ์ ์ํ๋ฅผ ๊ตฌํํ๋ ํจ์์ ๋๋ค.
[nasalization] ์์ด ๋ณํ ์ค, ๋น์ํ๋ฅผ ๊ตฌํํ๋ ํจ์์ ๋๋ค.
[assimilation] ์์ด ๋ณํ ์ค, ์์ด๋ํ๋ฅผ ๊ตฌํํ๋ ํจ์์ ๋๋ค.
[yamin-jungum] ์ผ๋ฏผ์ ์์ผ๋ก ์ผ๋ถ ๊ธ์๋ฅผ ๋ณํํฉ๋๋ค. ๋จ, ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ ์ผ๋ถ ํํ์ ์ ์ธ๋์์ต๋๋ค(๊ท์ฌ์ > ์ปค์ฌ์).
๋ณํ ์์
[original] ํ๋ณตํ ๊ฐ์ ์ ๋ชจ๋๊ฐ ๋ฎ์์ง๋ง, ๋ถํํ ๊ฐ์ ์ ๋ชจ๋ ์ ๋ง๋ค์ ์ด์ ๋ก ๋ถํํ๋ค.
[disattach-letters, prob=1.] ํ๋ณตํ ใฑใ
์ ์ ๋ชจ๋ใฑใ
๋ฎ์ใ
ใ
ฃ๋ง, ๋ถํํ ใฑใ
์ ์ ๋ชจ๋ ใ
ใ
ใ
ใ
ใทใ
์ ใ
ใ
ฃ์ ๋ก ๋ถํใ
ใ
ใทใ
.
[change-vowels, prob=1.] ํ๋ณตํ ๊ฐธ์ ์ ๋ฌ๋๊ฐธ ๋ฎ์์ง๋ง, ๋ถํํ ๊ฐธ์ ์ ๋ฌ๋ ์ ธ๋จ๋์ ์ด์ฐ๋ฃ ๋ถํํ๋.
[palatalization, prob=1.] ํ๋ณด์นธ ๊ฐ์ ์ ๋ชจ๋๊ฐ ๋ฎ์์ง๋ง, ๋ถํํ ๊ฐ์ ์ ๋ชจ๋ ์ ๋ง๋ค์ ์ด์ ๋ก ๋ถํํ๋ค.
[linking, prob=1.] ํ๋ณตํ ๊ฐ์ ์ ๋ชจ๋๊ฐ ๋ฌ๋ง์ง๋ง, ๋ถํํ ๊ฐ์ ์ ๋ชจ๋ ์ ๋ง๋ค์ ์ด์ ๋ก ๋ถํํ๋ค.
[liquidization, prob=1.] ํ๋ณตํ ๊ฐ์ ์ ๋ชจ๋๊ฐ ๋ฎ์์ง๋ง, ๋ถํํ ๊ฐ์ ์ ๋ชจ๋ ์ ๋ง๋ค์ ์ด์ ๋ก ๋ถํํ๋ค.(No Change)
[nasalization, prob=1.] ํ๋ณตํ ๊ฐ์ ์ ๋ชจ๋๊ฐ ๋ฎ์์ง๋ง, ๋ถํํ ๊ฐ์ ์ ๋ชจ๋ ์ ๋ง๋ค์ ์ด์ ๋ก ๋ถํํ๋ค. (No Change)
[assimilation, prob=1.] ํ๋ณตํ ๊ฐ์ ์ ๋ชจ๋๊ฐ ๋ฎ์์ง๋ง, ๋ถํํ ๊ฐ์ ์ ๋ชจ๋ ์ ๋ง๋ค์ ์ด์ ๋ก ๋ถํํ๋ค. (No Change)
[yamin-jungum, prob=1.] ํ๋ณตํ ๊ฐ์ ์ ๋ชจ๋๊ฐ ๋ฎ์์ง๋ง, ๋ถํํ ๊ฐ์ ์ ๋ชจ๋ ์ ๋ง๋ค์ ์ด์พ๋ก ๋ถํํ๋ค.
Noise Generator in Rust
- ๋
ธ์ด์ฆ ์์ฑ๊ธฐ ๋ด์์ ์ฌ์ฉ
from konoise import NoiseGenerator # provide the same methods(except yamin-jungum) # if you insert the string 'yamin-jungum', # it might be applied with the python generator # even if 'use_rust_tokenizer' is True text = "ํ๋ณตํ ๊ฐ์ ์ ๋ชจ๋๊ฐ ๋ฎ์์ง๋ง, ๋ถํํ ๊ฐ์ ์ ๋ชจ๋ ์ ๋ง๋ค์ ์ด์ ๋ก ๋ถํํ๋ค." genertor = NoiseGenerator() genertor.generate(text, 'disattach-letters', 0.5, use_rust_tokenizer=True) >>> 'ํ๋ณตํ ใฑใ ์ ์ ๋ชจ๋ใฑใ ๋ฎ์ใ ใ ฃ๋ง, ๋ถํํ ใฑใ ์ ์ ๋ชจ๋ ใ ใ ใ ใ ใทใ ์ ใ ใ ฃ์ ๋ก ๋ถํใ ใ ใทใ .'
- rust ๋ชจ๋์ ์ง์ ์ฌ์ฉ
from konoise import rust_generator text = "ํ๋ณตํ ๊ฐ์ ์ ๋ชจ๋๊ฐ ๋ฎ์์ง๋ง, ๋ถํํ ๊ฐ์ ์ ๋ชจ๋ ์ ๋ง๋ค์ ์ด์ ๋ก ๋ถํํ๋ค." rust_generator.get_noise(text, 'disattach-letters', 0.5) # provide the same methods(except yamin-jungum) >>> 'ํ๋ณตํ ใฑใ ์ ์ ๋ชจ๋ใฑใ ๋ฎ์ใ ใ ฃ๋ง, ๋ถํํ ใฑใ ์ ์ ๋ชจ๋ ใ ใ ใ ใ ใทใ ์ ใ ใ ฃ์ ๋ก ๋ถํใ ใ ใทใ .'
๊ธฐํ
- ๋น์ํ, ์ ์ํ, ๊ตฌ๊ฐ์ํ, ์ฐ์, ์์ด ๋ํ์ ๋ชจ๋ ๊ท์น์ด ๊ตฌํ๋์ง ์์ ์ํ์ด๋ฉฐ, ์ถํ ํ๋๋ ์์ ์ ๋๋ค(๋๋ฝ๋ ๊ท์น์ด ์์ ์ ์์ผ๋, ๋ฐ๊ฒฌ ์ ํผ๋๋ฐฑ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค).
- prob๋ ๋ณํ ๊ฐ๋ฅํ ๊ธ์๋ค์ ๋ํด์ ํด๋น ํ๋ฅ ๋งํผ ํ๋ฅ ์ ์ผ๋ก ์คํ๋ฉ๋๋ค(prob๊ฐ 1์ด๋ผ๊ณ ํด์ ๋ชจ๋ ํ ์คํธ๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ์ด ์๋๋๋ค).
- ๋ ๊ฐ ์ด์์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ๊ฒฝ์ฐ(์ผํ๋ก ๊ตฌ๋ถ), ํ ๋จ์ ํ ์คํธ์์ ๋ ๊ฐ์ ๋ฐฉ๋ฒ์ด ์ฌ์ฉ๋๋ ๊ฒ์ด ์๋๋ผ ๊ฐ ๋จ์ ํ ์คํธ๋ง๋ค ๋๋คํ๊ฒ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ์ฌ ์คํํฉ๋๋ค.