인생은 뜻하지 않은 순간으로 가득 차 있지만, 그중 지금 내 경력을 정의하는 것과 같은 몇 가지 순간은 나에게 더 두드러지게 나타난 것이다. 텍스트와이즈라는 뉴욕 시라큐즈에 있는 작은 회사의 개발자 구인 광고를 우연히 발견했을 때는 90년대 후반이었고, 그때 나는 분산 전자기학 시뮬레이션 일을 하는 젊은 소프트웨어 개발자였다. 구인 내용을 읽고, 스스로 직무 조건을 만족시킨다고는 거의 생각하지 못했지만, 어쨌든 해보기로 하고 이력서를 보냈다. 어떻게 됐든 그 자리를 얻었고, 검색과 자연언어 처리 분야의 경력을 시작했다. 그때는 이렇게 몇 년 후에 내가 그 주제에 대한 책을 쓰는 것은 물론 여전히 검색과 NLP 분야에 종사할 거라고는 생각지도 못했다.
당시 첫 과제는 사용자가 영어로 질의를 입력해서 프랑스어, 스페인어, 일본어로 된 문서를 찾고 자동으로 번역할 수 있게 해 주는 교차 언어 정보 검색(CLIR, Cross-Language Information Retrieval)시스템에 대한 일이었다. 돌이켜 보면 작업한 첫 시스템은 텍스트를 다루는 맛을 알게 하는 난해한 문제를 다 다루는 것이었다(검색, 분류, 정보 추출, 기계 번역, 문법 학습자를 미치게 만드는 그 모든 언어에 대한 독특한 규칙 등). 첫 프로젝트 후 나는 규칙 기반 분류기부터 질의응답QA 시스템에 이르는 여러 가지 검색과 NLP 시스템 일을 했다.
그 후 2004년, 자연언어 처리 센터(Center for Natural Language Processing)의 새 일 때문에 오픈소스 검색 라이브러리의 실질적 표준인(어쨌든 그때에는) 아파치 루씬(Apache Lucene)을 사용하게 됐다. 나는 또 한 번 CLIR 시스템을 작성하고 있었는데, 이때는 영어와 아랍어에 대한 일이었다. 이 과제를 수행하는 데 루씬 기능이 필요했기 때문에 기능과 버그 수정에 대한 패치를 내놓기 시작했다. 그러고 나서 나는 커미터가 됐다. 거기부터 수문이 열렸다.
오픈소스에 더 관여하게 됐는데, 아파치 머하웃(Apache Mahout) 기계학습 프로젝트를 이자벨 드로스트(Isabel Drost)와 칼 웨틴(Karl Wettin)과 함께 시작했고, 거기 더해 아파치 루씬과 솔라(Solr)를 사용한 검색과 텍스트 분석 중심으로 만든 회사 루시드 이미지네이션(Lucid Imgination)을 공동으로 창립했다.
원점으로 돌아와서 검색과 NLP는 문제를 해결하기 위해 데이터 구조와 알고리즘 모두에 대한 정교한 접근 방식이 필요한 컴퓨터 과학의 정의 영역에 속한다고 생각한다. 사용자가 만든 대량의 웹과 소셜 콘텐츠를 처리해야 하는 확장 요구 사항을 더하면 개발자의 꿈을 이루게 된다. 이 책은 텍스트 처리에 대한 어려운 문제를 해결하기 위해 이미 존재하며 검증된 오픈소스 라이브러리를 사용하는 데 초점을 맞춘 엔지니어를 위한, 그리고 엔지니어가 직접 저술한 책이 없는 현실로부터 출발했다. 이 책이 현재 직무에서 일상의 문제를 해결하는 데 도움이 되는 것은 물론이고, 학습에 대한 풍부한 기회로 텍스트의 세계를 보게 독자를 고무하기를 희망한다.