근황 - 2019-07-20

류광, 2019/07/20 18:50
Natural Language Processing in Action 번역 중, 블록체인 책 교정 마무리.

이번 주에 Blockchain By Example 2차 역자 교정을 마쳤습니다. 큰 문제가 없다면 늦어도 8월 중순에는 책이 나오지 않을까 합니다.

지금 번역하는 책은 매닝 출판사의 Natural Language Processing in Action입니다. 매닝 책(특히 In Action 시리즈) 번역 제안이 몇 번 있었지만 번번이 뭔가가 잘 안 맞아서 무산되었는데요. 이번에 드디어 매닝 책을 하게 되었습니다:) 게다가 전부터 관심이 있었던 자연어 처리 분야의 책이라서 더욱더 기쁩니다.

한국어로 된 NLP 책이라면 당연히 "한국어 처리에 관한 내용은 있는가?"라는 질문이 제기될 텐데요. 요즘의 심층 학습(딥 러닝) 기반 NLP는 예전의 NLP(정규 표현식 기반)에 비해 훨씬 더 언어 중립적이라고 하지만, 그래도 애초에 영어권 저자가 영어를 기준으로 쓴 책이니 한국어 관련 내용은 제한적일 수밖에 없습니다. 안타깝게도 본문과 예제 코드를 한국어에 맞게 수정하는 것은 제가 할 수 있는/해도 되는 범위 밖의 일이고요. 본문을 충실하게 옮기는 데 주력하되, 역주로라도 한국어 처리 관련 정보를 최대한 추가할 생각입니다.

관련해서 KoNLPy를 살펴보고 있는데 재밌네요. 뭔가 성과가 있으면 번역서 역주는 물론 이 곳 블로그에도 공유하겠습니다.

참, 저번 달에 트위터 계정 하나 새로 만들었습니다: @ryugwang

꽤 오래전부터 @GpgStudy을 근근이 유지해 오고 있긴 한데 기본적으로 GpgStudy.com 소식과 공지를 위한 것이라서, 개인적인 근황이나 단상, 링크를 공유할 계정이 따로 하나 있으면 좋겠다는 생각이 들었습니다.

top
TAG 근황
트랙백 0 : 의견 # + 0

나의 첫 Go 프로그램

류광, 2019/06/01 14:00
Go 언어 몇십 분 정도 공부하고 짜본 프로그램입니다.

역자의 글에서 몇 번 언급한 적이 있지만, 번역하면서 비영어권 인명이나 지명을 만났을 때 한글라이즈라는 서비스를 아주 유용하게 사용하고 있습니다. 이 자리를 빌려 한글라이즈 관계자 분들께 다시금 감사 인사 드립니다.

그런데 한글라이즈 웹 서비스가 가끔 HTTP 503 오류를 뿜을 때가 있었습니다. 아주 가끔이고 시간이 조금 지나면 정상화되어서 한글라이즈 GitHub 저장소에 이슈를 등록하지는 않았는데요. 다음에 같은 일이 벌어지면 문제를 보고할 생각입니다.

비록 짧은 시간이지만 한글라이즈 웹 서비스가 안 될 때를 위해, 한글라이즈의 기능을 명령줄에서 사용할 수 있는 간단한 프로그램을 짜보았습니다.

GitHub 저장소에서 보듯이 현재 버전의 한글라이즈는 Go 언어로 구현되었습니다. Go 언어는 많이 들어 보았지만 공부해 본 적은 없는데, 일단 딱 필요한 만큼만 배워 보자고 생각하고 웹에서 강좌를 찾아보았습니다. 다행히 예제로 배우는 GO 프로그래밍이라는 훌륭한 사이트를 발견하고 한 15분 정도 읽은 후 바로 코딩으로 들어갔습니다(그 사이에 https://golang.org/에서 Go 개발 환경을 설치했고요).

우선 해야 할 일은 한글라이즈 Go 라이브러리를 설치하는 것인데, 다음 명령으로 한 번에 끝나더군요. 아주 인상적이었습니다.

> go get -u github.com/hangulize/hangulize

이 라이브러리의 사용법은 해당 GitHub 저장소의 Readme.md에도 나와있듯이 아주 간단합니다.1

import "github.com/hangulize/hangulize"

hangulize.Hangulize("ita", "Cappuccino")
// output: "카푸치노"

즉, 그냥 언어 코드와 문자열을 지정해서 Hangulize 함수를 호출하면 제가 원했던 결과가 반환됩니다.

전체적인 계획이 섰습니다. 명령줄 인수들로 지정된 언어 코드와 전사할 문자열로 Hangulize 함수를 호출해서 그 결과를 출력하면 끝입니다. 각설하고, 다음이 저의 첫 Go 프로그램입니다.

package main
import "os"
import "github.com/hangulize/hangulize"

func main() {
    var lang = os.Args[1]
    var str = os.Args[2]
    println(hangulize.Hangulize(lang, str))
}

이 코드를 hangulize-cmd.go라는 파일로 저장하고, 다음 명령으로 시험해 보았습니다.

> go run hangulize-cmd.go ita "cappuccino" 

카푸치노

의도대로 작동함을 확인한 후에는 다음 명령으로 실행 파일을 생성했습니다.

> go build -o hangulize.exe hangulize-cmd.go

다음은 위의 프로그램을 조금 개선한 버전입니다.

package main
import (
    "os"
    "strings"
)
import "github.com/hangulize/hangulize"
import "github.com/gojp/kana"

func main() {
    if len(os.Args) < 2 {
        println("Usage:\n\thangulize <lang-code> \"string to transcribe\"\n\n" +
            "See https://github.com/hangulize/hangulize for language codes.")
        return
    }
    var lang = os.Args[1]
    var str = os.Args[2]
    if lang == "jpn" {
        str = kana.RomajiToHiragana(strings.ToLower(str))
    }
    println(hangulize.Hangulize(lang, str))
}

우선 명령줄 인수가 두 개 미만일 때의 처리를 추가했고, 영문자로 표시된 일본어 문구를 적절히 처리하는 기능도 추가했습니다. 한글라이즈는 기본적으로 글자 대 글자 차원의 전사 프로그램인데, 일본어는 한자와 가나 문자만 처리합니다. 그래서 "Tokyo"에서 바로 "도쿄"를 얻을 수는 없고,2 "Tokyo"를 먼저 "とうきょう"로 변환해야 합니다. 다행히 그런 기능을 제공하는 Go 라이브러리(https://github.com/gojp/kana)가 있어서 아주 간단하게 처리할 수 있었습니다.


처음 접한 Go의 인상은 아주 좋습니다. 필요한 만큼 배우고 배운 만큼 써먹을 수 있었고, 원하는 라이브러리도 쉽게 찾아서 적용할 수 있었습니다. 개발 환경을 준비하기도 아주 쉬웠고요.


  1. https://github.com/hangulize/hangulize/blob/master/README.md 

  2. 이것이 한글라이즈의 원래 용도는 아닐 것이고, 수식의 그리스 글자 몇 개 빼고는 거의 로마자로만 이루어진 영어 원서들을 번역하다 보니 생기는 요구입니다. 러시아어도 상황이 비슷한데, 키릴 문자를 영문자로 변환하는 Go 라이브러리를 찾으면 관련 기능을 추가할 생각입니다. 

top
트랙백 0 : 의견 # + 0

'Discovering Statistics Using R' 번역서 '앤디 필드의 유쾌한 R 통계학' 출간 소식 및 근황

류광, 2019/03/23 13:59
앤디 필드의 'Discovering Statistics Using R'를 번역한 '앤디 필드의 유쾌한 R 통계학' 드디어 나왔습니다.

소식이 좀 늦었습니다. 앤디 필드의 'Discovering Statistics Using R'를 번역한 '앤디 필드의 유쾌한 R 통계학'이 이번 달 초에 드디어 나왔습니다. 작년 2월에 탈고했지만 여러 사정으로 조판과 교정이 상당히 오래 걸렸습니다. 기다린 만큼의 성과가 있었으면 좋겠습니다.

잠깐 소개하자면, 통계학을 재미있게 공부할 수 있는 책입니다. 저자의 자학 개그와 괴상한 예제들이 거듭 등장하지만 통계학 자체는 상당히 진지하게 다룹니다. 그리고 모든 예제가 R이긴 하지만 R은 도구로 쓰일 뿐이고, R 프로그래밍 언어나 개발 환경 자체를 배우는 용도로는 조금 부족하다는 것이 제 평가입니다. 역자의 글을 인용하자면:

... 이 책에서 R은 통계학을 가르치고 통계 분석을 실행하기 위한 수단일 뿐입니다. 이 책이 프로그래밍 언어이자 개발 및 실행 환경으로서의 R을 체계적이고 포괄적으로 다루지는 않습니다. R에 대한 저자의 접근 방식은 “필요한 만큼만 배우고 배운 만큼 써먹는다”로 요약할 수 있겠습니다. 프로그래밍 언어를 그 자체로 공부하고 연구하는 것도 가치 있는 일이지만, 원하는 목적을 달성하기 위한 하나의 수단으로 취급하는 것도 얼마든지 의미 있고, 이 책의 취지에서는 아주 적합하다고 봅니다.

그리고 번역하면서 저는 아주 재미있었지만, 일부 예제가 일부 독자에게 좀 낯뜨겁거나 불쾌할 수도 있을 것 같은데요. 저자 앤디 필드의 말을 빌자면 이렇습니다:

... 예제들이 비위에 맞지 않고 혐오스럽거나, 내가 과학의 진지함을 훼손한다고 생각하는 독자에게는 미리 사죄한다. 그러나, 솔직히 말해서 항문에 뱀장어를 집어넣은 사람의 이야기가 재미없을 리 있겠는가?

(혹시 몰라서 첨언하자면, "... 집어 넣은 사람"은 저자가 아니라 예제에 등장하는 인물입니다....)

아쉽게도 이번에는 이 곳에서 독자 증정 이벤트를 진행하지 않습니다. 이 책 몇 권과 작년 폭염 때문에 타이밍을 놓친 처음 배우는 암호화 몇 권을 게임 개발자 공동체 게임코디에 증정했는데요. 조만간 게임코디 회원 대상으로 증정 이벤트가 열리지 않을까 예상합니다.

이 책에 대한 질문&의견은 http://occamsrazr.net/book/DiscoveringStatisticsUsingR 페이지에서 해주세요. 정오표 및 추가 자료도 그 페이지에 올라올 것입니다.


마지막으로 근황을 잠깐 말씀 드리면, 지난 달 중순에 저번 근황에서 언급한 Neural Networks and Deep Learnig: A Textbook의 번역을 마쳤고, 지금은 BlockChain by Example이라는 블록체인 개발서를 번역하고 있습니다. 코인 투자와는 무관한 개발자 대상의 실용서입니다. 비트코인과 이더리움이 중심이고 하이퍼레저도 조금 다루는데 예제 따라하는 재미가 있네요. 관련 소프트웨어의 버전 변화 때문에 예제들에 오류가 조금 있는데 본문을 직접 수정하거나 추가 역주로 보완하고 있습니다.

top
트랙백 0 : 의견 # + 0

클라우드플레어와 방문자 IP 주소

류광, 2019/02/04 18:55
GpgStudy에 클라우드플레어를 적용하면서 겪은 문제점과 그 해결책

본문 열기

top
트랙백 0 : 의견 # + 0

2019년 새해 복 많이 받으세요!

류광, 2019/01/09 00:17

제 번역서 독자 여러분과 블로그 방문자 여러분께 새해 인사드립니다. 2019년 새해 복 많이 받으시고 항상 건강하세요!

작년 한 해 보여 주신 관심과 격려에 감사드립니다. 올해도 열심히 번역하고, 블로그 글도 더 많이 쓰겠습니다.

올해 처음 나올 번역서는 예정보다 출판이 많이 늦어진 앤디 필드의 R+통계학 책(Discovering Statistics Using R)입니다. 번역서 제목은 아직 정해지지 않았고요. 아마도 2월 중으로 나오지 않을까 예상합니다.

지금은 어거왈의 Neural Networks and Deep Learnig: A Textbook을 번역하고 있고요. 그 후의 책들은 아직 계약이 마무리되지 않아서 공개할 수 없는데, 확정되면 근황 글을 통해서 알려 드리겠습니다.

작년 새해 인사 글에서 클라우드플레어를 이용해서 HTTPS를 한 번 적용해 보겠다고 했었는데 결국 실행은 하지 못했네요. 대신 닥북 한국 홈페이지에 클라우드플레어로 HTTPS를 적용하긴 했습니다. 그 경험을 살려서 이 곳과 GpgStudy에도 HTTPS를 적용해 보렵니다.

오랜만에 남는 스팀 키 뿌립니다. ?는 올해 연도의 일의 자리 숫자입니다.

(다른 분들이 시간 낭비 하지 않도록, 등록 성공하신 분들은 간단히 댓글 남겨 주시면 고맙겠습니다.)

다시 한 번 새해 복 많이 받으세요!

top
TAG 블로그
트랙백 0 : 의견 # + 0

◀ PREV : [1] : [2] : [3] : [4] : [5] : [6] : ... [66] : NEXT ▶