목차

옮긴이의 글
추천의 글
지은이의 글
감사의 글
이 책에 대해
저자에 대해
표지 그림에 대해

1부 지능화를 위한 데이터 수집하기

1장 집단지성에 대한 이해
1.1 집단지성이란 무엇인가
1.2 웹 애플리케이션의 집단지성
1.2.1 집단지성 시작부터 끝까지: 예제 애플리케이션
1.2.2 집단지성의 이점들
1.2.3 집단지성은 웹 2.0의 핵심 요소다
1.2.4 콘텐츠 중심에서 사용자 중심의 애플리케이션으로 바꾸기 위해 집단지성 이용하기
1.3 지능 정보의 분류
1.3.1 명시적 지능 정보
1.3.2 암묵적 지능 정보
1.3.3 추출된 지능 정보
1.4 요약

2장 사용자 교류 정보를 통한 학습
2.1 지능화 시스템 아키텍처
2.1.1 동기식 서비스와 비동기식 서비스
2.1.2 이벤트 드리븐 시스템에서의 실시간 학습
2.1.3 넌이벤트 드리븐 시스템을 위한 폴링 서비스
2.1.4 이벤트 드리븐 아키텍처와 드리븐 아키텍처의 장단점
2.2 집단지성 적용을 위한 알고리즘 기초
2.2.1 사용자와 아이템
2.2.2 사용자 정보 표현하기
2.2.3 콘텐츠 기반의 분석과 협업 필터링
2.2.4 비 구조적 텍스트에서 지능형 정보 추출하기
2.2.5 유사도 계산
2.2.6 데이터셋의 유형
2.3 사용자 교류 정보의 형태
2.3.1 등급과 투표
2.3.2 이메일 보내기 또는 링크 포워딩
2.3.3 북마킹과 저장
2.3.4 아이템 구매
2.3.5 클릭 스트림
2.3.6 리뷰
2.4 사용자 교류 정보를 집단지성으로
2.4.1 예제를 통해 본 등급의 지능 정보화
2.4.2 북마킹과 저장, 상품 구매, 링크 포워딩, 클릭 스트림 그리고 리뷰들의 지능 정보화
2.5 요약

3장 태그로부터의 지능 정보 추출
3.1 태깅에 대한 소개
3.1.1 사용자와 아이템의 태그 관련 메타데이터
3.1.2 전문가가 생성한 태그
3.1.3 사용자가 생성한 태그
3.1.4 기계적으로 생성한 태그
3.1.5 태깅에 대한 팁
3.1.6 왜 태그를 이용하는가?
3.2 어떻게 태그를 이용할까?
3.2.1 동적 내비게이션 만들기
3.2.2 태그 클라우드를 좀더 효과적으로 이용하기
3.2.3 타깃 검색
3.2.4 폭소노미와 사전 구축
3.3 사용자 태깅을 통한 지능 정보 추출 예제
3.3.1 다른 아이템과 관련된 아이템
3.3.2 사용자가 관심을 가질만한 아이템
3.3.3 아이템과 관련 있는 사용자들
3.4 태깅에 적합한 확장성 있는 아키텍처
3.4.1 다른 접근 방법 살펴보기
3.4.2 추천 아키텍처
3.5 태그 클라우드 만들기
3.5.1 태그 클라우드에 적합한 영속적인 디자인
3.5.2 태그 클라우드를 만드는 알고리즘
3.5.3 태그 클라우드 구현
3.5.4 태그 클라우드 보여주기
3.6 유사한 태그 찾기
3.7 요약

4장 콘텐츠에서 지능 정보 추출하기
4.1 콘텐츠 종류와 이들의 통합
4.1.1 콘텐츠 분류
4.1.2 콘텐츠를 통합하기 위한 아키텍처
4.2 집단지성과 관련이 있는 콘텐츠 종류
4.2.1 블로그
4.2.2 위키
4.2.3 그룹과 게시판
4.3 단계적 지능 정보 추출
4.3.1 예제 셋업하기
4.3.2 간단한 분석
4.3.3 불용어 처리
4.3.4 스태밍
4.3.5 구 인식
4.4 단순한 콘텐츠 타입과 복합 콘텐츠 타입
4.5 요약

5장 블로그 검색
5.1 블로고스피어에 대한 소개
5.1.1 블로고스피어의 활용
5.1.2 RSS: 발행 포맷
5.1.3 블로그 트래킹 회사들
5.2 블로그 검색을 위한 프레임워크 구축
5.2.1 검색기
5.2.2 검색 파라미터
5.2.3 검색 결과
5.2.4 XML 결과 분석
5.2.5 예외 처리
5.3 기본 클래스 구현
5.3.1 검색 파라미터 구현
5.3.2 검색 결과 객체 구현
5.3.3 검색기 구현
5.3.4 XML 응답 파싱
5.3.5 프레임워크의 확장
5.4 테크노라티 통합하기
5.4.1 테크노라티 검색 API 개요
5.4.2 테크로라티 통합을 위한 클래스 구현
5.5 블로그라인스 통합하기
5.5.1 블로그라인스 검색 API 개요
5.5.2 블로그라인스 통합을 위한 클래스 구현
5.6 RSS를 사용하는 프로바이더 통합
5.6.1 쿼리 파라미터 일반화
5.6.2 블로그 검색기 일반화
5.6.3 RSS 2.0 XML 파서 만들기
5.7 요약

6장 지능형 웹 크롤링
6.1 웹 크롤링 개요
6.1.1 왜 웹을 수집할까
6.1.2 크롤링 프로세스
6.1.3 지능형 크롤링과 집중 크롤링
6.1.4 딥 크롤링
6.1.5 사용할만한 크롤러들
6.2 지능형 크롤러의 단계적 구현
6.2.1 핵심 알고리즘 구현
6.2.2 무례하지 않게 : robots.txt의 룰을 따르라
6.2.3 콘텐츠 가져오기
6.2.4 URL 추출
6.2.5 크롤러를 똑똑하게 만들자
6.2.6 크롤러 구동
6.2.7 크롤러 확장하기
6.3 너치를 사용한 대용량 크롤링
6.3.1 너치 설치
6.3.2 너치 크롤러 구동하기
6.3.3 너치로 검색하기
6.3.4 아파치 하둡, 맵/리듀스, 드라이어드
6.4 요약

2부 지능 정보 추출

7장 데이터 마이닝 : 프로세스, 툴킷, 표준
7.1 데이터 마이닝의 핵심 개념
7.1.1 속성
7.1.2 교사 학습과 비교사 학습
7.1.3 주요 학습 알고리즘
7.1.4 마이닝 프로세스
7.2 오픈소스 데이터 마이닝 프레임워크 사용하기 : 외카(WEKA)
7.2.1 외카 애플리케이션 사용하기 : 단계별 튜토리얼
7.2.2 외카 API의 이해
7.2.3 외카 API 활용 예제
7.3 표준 데이터 마이닝 API : 자바 데이터 마이닝(JDM)
7.3.1 JDM 아키텍처
7.3.2 JDM 핵심 객체
7.3.3 데이터셋의 표현
7.3.4 모델 학습
7.3.5 알고리즘 설정
7.3.6 JDM 테스크
7.3.7 JDM 연결
7.3.8 DME 연결 예제 코드
7.3.9 JDM 모델과 PMML
7.4 요약

8장 텍스트 분석 툴킷 구축하기
8.1 텍스트 분석기 만들기
8.1.1 루씬 활용
8.1.2 어근 추출 분석기 만들기
8.1.3 동의어와 구를 추출하는 필터 만들기
8.1.4 동의어와 구를 추출하는 분석기 만들기
8.1.5 분석기가 작동하게 만들기
8.2 텍스트 분석 인프라 구축하기
8.2.1 태그 인프라 만들기
8.2.2 텀벡터 인프라 만들기
8.2.3 텍스트 분석기 클래스 만들기
8.2.4 텍스트 분석 인프라 적용하기
8.3 프레임워크 적용 사례
8.4 요약

9장 클러스터링을 통한 패턴 추출
9.1 블로그 글 클러스터링
9.1.1 텍스트 클러스터링 인프라 정의
9.1.2 테크노라티에서 블로그 글 가져오기
9.1.3 텍스트 분석을 위한 k-means 클러스터링 알고리즘 구현
9.1.4 텍스트 분석을 위한 계층적 클러스터링 알고리즘 구현
9.1.5 기대치 최대화 알고리즘과 고차원 저밀도 데이터 클러스터링 예제
9.2 외카를 이용한 클러스터링
9.2.1 학습셋 만들기
9.2.2 클러스터 생성하기
9.2.3 클러스터링 평가
9.3 JDM API를 이용한 클러스터링
9.3.1 클러스터링 알고리즘과 관련된 JDM 핵심 클래스들
9.3.2 JDM API를 이용한 클러스터링 환경 설정
9.3.3 JDM API를 이용한 클러스터링 태스크 만들기
9.3.4 클러스터링 태스크 실행하기
9.3.5 JDM API를 이용한 클러스터링 모델 가져오기
9.4 요약

10장 예측 시스템 만들기
10.1 분류에 대한 기초
10.1.1 예제를 통해 결정 트리 배우기
10.1.2 나이브 베이지언 분류기
10.1.3 믿음 네트워크
10.2 외카 API를 활용한 블로그 글 분류
10.2.1 블로그 글을 분류하기 위한 데이터셋 빌드
10.2.2 분류기 클래스 구축
10.3 회귀 분석의 기초
10.3.1 선형 회귀 분석
10.3.2 다중 퍼셉트론
10.3.3 원형 기준 함수
10.4 외카를 사용한 회귀 분석
10.5 JDM을 사용한 분류와 회귀 분석
10.5.1 핵심 JDM 교사 학습 관련 클래스
10.5.2 JDM API를 이용한 교사 학습 설정
10.5.3 JDM API를 이용한 분류 태스크 생성
10.5.4 JDM API를 이용한 분류 태스크 실행
10.5.5 JDM API를 이용한 분류 모델 가져오기
10.5.6 JDM API를 이용한 모델 테스트
10.6 요약

3부 애플리케이션에 지능 불어넣기

11장 지능형 검색
11.1 검색의 기본
11.1.1 검색 아키텍처
11.1.2 핵심 루씬 클래스들
11.1.3 기본적인 인덱싱과 검색 예제
11.2 루씬 색인
11.2.1 색인 형식 소개
11.2.2 색인 수정
11.2.3 증분 색인
11.2.4 텀 빈도 벡터에 접근하기
11.2.5 인덱싱 성능 최적화
11.3 루씬으로 검색하기
11.3.1 루씬 스코어링의 이해
11.3.2 루씬 쿼리
11.3.3 검색 결과 정렬하기
11.3.4 다중 필드 검색
11.3.5 필터링
11.3.6 다중 색인 검색
11.3.7 HitCollector의 활용하기
11.3.8 검색 성능 최적화
11.4 유용한 도구와 프레임워크
11.4.1 루크(Luke)
11.4.2 솔라(Solr)
11.4.3 컴퍼스(Compass)
11.4.4 하이버네이트 검색
11.5 지능형 검색 연구
11.5.1 분류기와 예측기로 검색 보강
11.5.2 검색 결과 클러스터링
11.5.3 사용자에 최적화된 검색 결과
11.5.4 커뮤니티 기반 검색
11.5.5 언어 기반 검색
11.5.6 데이터 검색
11.6 요약

12장 추천 엔진 만들기
12.1 추천 엔진의 기초
12.1.1 추천 엔진 소개
12.1.2 아이템 기반 분석과 사용자 기반 분석
12.1.3 콘텐츠 기반과 협업 기반의 유사도 계산
12.1.4 콘텐츠 기반과 협업 기반 비교
12.2 콘텐츠 기반 분석
12.2.1 검색 엔진(루씬)을 사용해 유사 아이템 찾기
12.2.2 콘텐츠 기반의 추천 엔진 구축
12.2.3 문서 클러스터와 관련된 아이템
12.2.4 사용자에 개인화된 콘텐츠
12.3 협업 필터링
12.3.1 k-인접 이웃(k-nearest neighbor)
12.3.2 협업 필터링 구현을 위한 패키지
12.3.3 잠재 은닉 색인으로 차원 줄이기
12.3.4 차원 축소 구현
12.3.5 확률 모델 기반 접근
12.4 실제 사례
12.4.1 아마존의 아이템 대 아이템 추천
12.4.2 구글 뉴스의 개인화
12.4.3 넷플릭스 상금을 타기 위한 넷플릭스와 벨코어의 해결책
12.5 요약

부록 A 네이버와 다음의 오픈 API를 이용한 블로그 검색
부록 B 참고자료