Introductory Kindle books on Python’s NLTK

This blog summarizes the concise review on Kindle books. I’ll include excerpts of reviews by readers.

스크린샷 2016-03-24 오후 2.07.22
Python 3 Text Processing with NLTK 3 Cookbook
by Jacob Perkins, Aug 26, 2014
Paperback $40.49
Kindle Edition $16.54

My opinion
I’m iffy about buying this book because some reviewers recommend not to buy it. But when I skimmed through the sample book, it may be useful as a reference because it is a cookbook. So I’d delay the purchase until I can find the utility of this book. The length of the sample book is 74 pages out of 310 pages. So I’d study the sample book and see if I want to buy it.

In the sample book, the contents are presented in the following format: “Topic name”, (“Getting ready”), “How to do it…”, “How it works…”, “There’s more…”, “See also”. Examples of the “topic name” include “Creaint a part-of-speech tagged word corpus”, “Creating a chunked phrase corpus”, and so on.

This book, really, is  a cookbook. It clearly defines the topic and how to use the relevant NLTK commands, which is a plus. The explanation is so clearly separated that the context of the topics is lacking to me. This is a minus to me.

Selected reviews
2 starts out of 5
Maybe worth half the price (currenly $16.54)
By Scott Steele on December 3, 2014
I’m rating this book relative to “Natural Language Processing with Python” (2009) – which you can currently get for free at http://www.nltk.org/book_1ed/. Unfortunately, the 2ed of that book won’t be available until 2016.

This book pales in comparison in communication, content, and utility as it relates to both NLTK and Python (in general) – you don’t even get a table of contents.

=> It does have a table of contents, by the way.

스크린샷 2016-03-24 오후 1.53.17
NLTK Essentials
By Nitin Hardeniya, Jul 27, 2015
Kindle eBook | $14.59
Paperback | $29.99

I didn’t buy this book.
Reason: grammatical and code errors.

Selected reviews.
3 stars out of 5
SY Ku on September 3, 2015
This book does not provide as many code snippets as other NLTK books (Python 3 Text Processing with NLTK 3 Cookbook), and many of the snippets still need debugging or require more instructions to run. The writing style is conversational and informal, and could use an editor for better clarity and organization.

5 starts out of 5
By
KUMAR RAJ
on September 5, 2015
The Book is great for beginners who wants to learn natural language processing and text analytics. Concepts are explained very clearly and Python is being used to implement NLP models which made the book very easy to understand and will get you up and running with your NLP app development in no time.
By Matthew Bachtell on October 11, 2015

Grammatical and code errors abound. Someone new to NLTK would be better served with the outdated O’Reilly Whale book.

이세돌 vs. AlphaGo 5국을 맞이하며: 흑이 약점 공략의 판을 어떻게 짤 것인가? 알파고의 착점 후보지를 벗어나는 수가 나오길…

주말에 대국을 재밌게 보셨는지요? 제 컴퓨터 바둑과 바둑에 대한 식견이나 지식이 짧지만 지인 분들께서 재밌게 관전하시라도 몇 자 더 적어봅니다. 이제 내일이 마지막 대국인데요. 경기 후에도 바둑과 인공지능에 대한 꾸준한 관심 부탁드립니다. 관련 주제에 관한 의견을 주시거나 토론하는 것은 언제나 Welcome입니다. ^^ 각설하고…

어제 있었던 제 4국은 이세돌 사범의 통쾌한 승리였는데요. 절망할 수 있는 상황에서도 포기하지 않고, 알파고 분석을 통해 마지막까지 최선을 다하는 정신력에 박수를 보내고 싶습니다. 이런 정신력이 그를 세계 최강의 자리까지 올려 놓은 원동력 중의 하나는 아닐련지?

여하튼 (아시다시피) 알파고는 큰 집을 지킬 때 약점이 드러난 듯 합니다. 이 사범이 오늘 흑을 잡겠다고 했는데요. 이는 두 가지 의도일 것으로 해석됩니다. (1) 백으로 승리했으니, 흑으로도 승리해 보겠다. (2) 선수인 흑을 잡아 알파고의 약점을 공략할 수 있는 틀을 만들겠다.

(2)로 보았을 때, 마지막 대국의 관전 포인트는 이렇습니다.
초반: 이 사범이 어떻게 유리한 틀을 짜는 포석을 하는지?
알파고가 이 사범의 작전에 얼마나 끌려올지?
초/중반: 이 사범이 약점을 어떻게 공략할지?
후반: 큰 실수 없이 마무리를 어떻게 풀어나갈지?

이 사범이 얼마나 실수를 하지 않을지와 같이 기존에 언급된 내용들은 모두 기본 전제입니다. 어제는 이 사범이 찾아낸 약점을 잘 공략해서 결과가 좋았는데요. 이 사범이 공략한 수가 (첫 3개의 대국에서와 같이) 알파고의 착점 후보지에 있을 가능성도 높습니다. (사실 어제 대국은 해설자의 설명을 듣거나 집중해서 볼 수 있는 상황이 아니라 좀 아쉽습니다. 그래서 분석의 정확도가 다소 떨어질 수 있습니다.)

이 사범의 자유분방함에 비추어봤을 떄, 이번 판은 기존 프로게임의 예상을 뒤엎는 경기가 될 수도 있을 것 같습니다. 정상급 프로기사의 기보에서 기존에 볼 수 없었던 경기를 기대해 봅니다.

4국 동안 알파고의 더 상세한 내용이 궁금해지셨을 것 같기도 하네요. 간략하게 요약해서 보냅니다. 여하튼 알파고는 인간이 바둑을 두는 3가지 방식을 모방하는데요.
스크린샷 2016-03-14 오전 10.44.11

알파고 방법론
스크린샷 2016-03-14 오전 10.44.24.png
참고로 한정된 연산자원에서 3을 이용해서 move sequence의 depth를 줄이면, breath가 늘어납니다.  풀어서 설명하자면 3을 쓰므로써, 더 많은 착점후보지를 검토하고, 수읽기를 충실히 해서 더 정확한 확률 계산이 가능하다는 것입니다. 즉, 예상되는 2가지 효과는 다음과 같습니다.
(1) Sub-tree를 더 촘촘하게 search할 수 있으므로, 2의 이길 확률을 더 정확히 계산할 수 있다.
(2) (만약 연산능력의 여유가 된다면) 1의 더 많은 policy를 검토할 수 있다.

CPU와 GPU의 갯수가 커지면 알파고가 검색하는 Sub-tree의 수가 커지게 됩니다. 이 Sub-tree coverage에 벗어나는 수를 많이 둘 때, 이세돌 사범에게 승리의 확률이 높아지게 될 것입니다. 한편, MCTS를 할 때, tree의 갯수를 자르는 가지치기 기술 (Prunning)에 VN도 이용될 듯 한데요. Value의 측정은 경우의 수가 적어지는 후반으로 갈수록 정확해지고, 초반 일수록 경우의 수가 많아져서 부정확한 부분이 나옵니다. 이 사범의 수가 착점후보지와 가지치기 된 자리에서 많이 나오기를 바랍니다.

원론적으로 Game tree의 depth와 breadth의 trade-off 관계가 있는데요. 대국이 시작하기 전에 (주어진 상황에서) 최선으로 여겨지는 depth와 breadth를 이미 결정했을 것이라고 예상됩니다. 왜냐하면 알파고의 모든 수가 대부분 1분 언저리에서 계산되기 때문에 이렇게 유추해 봅니다. 만약 그렇다면 (인간처럼) 이 trade-off 관계를 동적으로 할당하는 연구는 필요할 것으로 보입니다.

마지막으로 알파고의 대국 중 학습에 대해…

(1) 이 사범의 대국을 학습하지 않는다는 말은 이 사범을 위해서가 아니라 알파고를 위해서임.
1과 3의 경우, 몇 개월 간의 훈련을 하여 성능이 좋은 버전을 선택하고, 여러가지 튜닝을 했을 것으로 예상됩니다. 이세돌 사범과의 몇 개 대국을 입력하여 훈련한다는 것은 알파고 입장에서 리스크가 큽니다. 즉, 몇 개 대국을 넣어 훈련한 버전의 성능이 좋게 나온다는 보장이 없고, 성능 튜닝의 어려움으로 상태를 검증하는데까지 시간이 많이 걸려서 일것입니다. 고로 알파고가 대국 중 학습을 하지 않겠다는 것은 경기의 공정성이나 이 사범을 위해서가 아닌 알파고를 위한 조치인 것으로 추정됩니다.

긴 글 읽으시느라 고생하셨습니다.
(이런저런 일정에 쫒겨서 특별한 내용 확인 없이 막 적은 글이라 정확성이 떨어질 수도 있음을 밝힙니다)

이세돌 vs. 알파고 제 3국을 맞이하며: 힘들겠지만 이기기를 바랍니다.

이 분야에 정통하신 분들이 많지만, 한 때 컴퓨터 바둑에 몸 담았던 지라 간략한 의견을 적어서 지인분들을 위해 공유합니다.

(신문지상에서 많이 얘기를 하 듯이…) 이번 경기 또한 어려울 것이 예상됩니다. 이유는 이렇습니다. 3단계로 나뉘는데요. 이 3가지 능력에 있어서 알파고가 이세돌과 호각이거나 우세하기 때문입니다.

(1) 착점 후보지 선정
바둑을 둘 때 착점 (어디에 둘지)의 후보지를 선정합니다. 이 후보지 선정은 인간의 직감이 낫다고 알려져왔는데요. 알파고의 실력 또한 만만치 않습니다.

(2) 수읽기
바둑도 장기나 체스와 마찬가지로 내가 여기두면 상대는 저기두고 다음에 여기두면 그 다음에 저기두고… 라는 “수 읽기”를 합니다. 이 능력은 컴퓨터인 알파고가 우월합니다.

(3) 형세판독
바둑판에 놓인 돌을 보고 흑과 백 중 어느쪽이 낫다는 것을 판단하는 형세판단은 상당히 어려운 문제입니다. 이 형세판단이 컴퓨터가 초반에는  더 약할 것이구요. 중반에는 비슷하거나 강합니다. 후반엔 훨씬 강하구요.

(2) 수읽기는 컴퓨터가 원해 강한 부분이였으나, 2번의 대국을 통해 (1) 착점 후보지 선정과 (3) 형세판국이 이세돌 9단을 이기기에 충분히 좋다는 것이 판명되었습니다.

정리하면 중후반은 알파고가 강합니다. 그래서 현재로썬 유일한 희망이 초반 10수 안에 이세돌 9단이 더 나은 수 (포석)을 하고, 이후에 실수가 없어야 하는 것으로 보입니다. 그러므로 관전 포인트는 초반의 10수… 이후 이세돌 9단의 실수… 입니다. 이런 수의 판단은 바둑초고수가 아니면 하기 힘들므로 해설자의 설명을 들으시면 돠겠습니다.

문제는 이세돌 9단은 초반 포석이 약하고, 그의 장점은 중후반에 정확한 수읽기에 의한 뒤집기라고 합니다. 강해야하는 초반이 약하고 자신의 강점인 중후반 수읽기는 알파고가 더 강하므로 승산이 낮다는 것이 문제입니다.

안타깝구요. 하지만 인간의 승리에 희망을 가져봅니다. 긴 글 읽으시느라 고생 많으셨습니다.

이세돌 vs. 알파고 첫 대국 후 감상: 3번의 충격

어제 네이버 생중계로 대국을 관전했습니다.
결과는 충격적이였습니다.

알파고가 대단하네요.
인간 최고수인 이세돌 9단에 1판이라도 이긴 기술력이 대단합니다.
알파고의 연산에 쓰이는 1202대의 CPU와 176대의 GPU를 하나의 연산에 쓰는 것 자체만으로도 대단한 기술의 진보입니다. [출처: AlphaGo]
알파고팀이 존경스럽습니다.

그 결과 프로기사 분들이 정상급 프로기사의 기력이라고 한 기사를 접했습니다.
승부를 떠나 어제 대국에 알파고가 보여준 기력이 놀랍습니다.

오늘 1시에 이세돌 vs. 알파고 2국이 예정되어 있네요.
오늘 대국 또한 기대가 큽니다.
이세돌 9단이 진지하게 승부에 임할 것으로 예상되는 오늘의 대국이 정말 중요하지요.
제2국으로 전체 승부를 예측할 수 있습니다.

어제 경기에 이어 바로 2국은 한다니 이세돌 9단 입장에서 체력적으로 힘든 일정이 아닐까 싶네요.
체력이 집중력과 연관이 있을텐데, 왜 이런 일정이 되었는지가 궁금하네요.
어제 대국에서도 일정 안배에 있어서도 이세돌 9단이 방심했다고 생각하고 싶습니다.

이제 컴퓨터 바둑을 안 한지도 어언 4년차 이고, 최신 정보도 없지만 아는 선에서 몇 자 적어봅니다.

어제 대국을 본 감상: 3번의 충격

1. 우선 대국이 진행되는 동안 알파고의 기력에 충격을 받았습니다.
세계 최정상급 바둑기사인 이세돌 9단과 호각지세의 바둑을 둔다는 것 자체가 대단합니다.
판후이 2단과의 대국때는 아마추어 1단의 실력이였다는 프로기사의 언급이 있었는데요.

아마추어 1단이라는 해석의 이유는 2가지 정도로 예상됩니다.
(1)
판후이 2단의 기력이 국내 정상급 프로기사와는 차이가 납니다.
      한국기원, 중국기원, 일본기원의 1단은 기력에 차이가 납니다.
      일례로 한국기원의 연습생이 승단테스트에 실패한 후 일본기원으로 넘어가 프로 데뷰를 한 경우도 있습니다. 저는 판후이 2단의 정확한 기력을 알 수 없습니다만, 정상급 프로기사와는 기력의 차이가 현저하다고 합니다.
      (참고로 드라마미생의 장그래가 한국기원의 연습생 출신이죠. ^^)
(2)
판후이 2단이 이해할 수 없는 실수를 너무 많이 저질렀다는 해석입니다.
중국 정상급 기사가 판후이 2단이 구글을 돕는 X Man이 아닌가 하는 생각이 들 정도로 어처구니 없는 실수를 많이 했다는 평이 있습니다.
이는 판후이 2단이 유럽으로 넘어간 후, 긴장된 대국을 할 기회가 줄어들어서 그런게 아닌가 조심스레 추측해 봅니다.

2. 끝내기에서 이세돌 9단의 패배가 확실 시 되었을 때
대국 후반에 접어들면 계가 (집계산)을 하면서 두게 됩니다.
9 ()의 집이 약 5집 앞서는 정도라고 알았을 때, 첫 번째 충격을 받았네요.
왜냐하면 끝내기는 경우의 수가 적어서 알파고가 강하기 때문이죠.

중국룰은 덤으로 백에 7.5집을 주므로,
이세돌 흑 5 vs. 알파고 백 7.5
으로 백이 2.5집 앞섭니다.

프로기사는 반집 승부 (0.5집 승부)도 많습니다.
2.5
집이면 따라 잡기 힘들 정도의 큰 차이입니다.

3. 이세돌 9단이 돌을 던졌을 때
돌을 던진다는 것은 완벽하게 졌다는 인정하는 행위입니다.
조금의 차이로 아쉽게 졌다는 것도 아니고 (이 대국은) 완전히 졌다는 것을 스스로 인정한 것입니다.

이세돌 9단 불계패.
가장 어려운 보드게임이라 난공불락의 영역으로 여겨진 바둑에서 (실력이 약간 녹이 슬었지만) 인간 최고수가 완벽히 졌다는 것을 의미합니다.
엄청난 충격이 아닐 수 없습니다.

기력이 베일에 쌓여있던 알파고와 첫 대국에 졌다는 것의 의미는 (과대해석하자면) 인간 최고수가 다 질 수도 있다는 것으로
예상보다 빨리 컴퓨터 바둑이 인간 최고수를 정복할 수도 있다는 것입니다.

2국부터는 이세돌 9단의 선전을 기원합니다.
이세돌 9단이 베일에 쌓인 알파고의 기력을 테스트하기 위해 실험적인 포석을 했고, 막판에역시나 약하구나라고 방심해서 졌기를 바랍니다.