티스토리 뷰
* 진행 순서
클러스터링 대상 텍스트
-> 문서 하둡 시퀀스 파일( 이하 모두 하둡 시퀀스파일)
-> 토큰
-> 문서별 벡터 + 사전파일 + 단어 계수 결과
-> 클러스터
* 예시
- 뉴스 기사 1개 = 문서 1개로 하며,
- 1000개 문서
- k=100 으로 가정 ( => 100개의 초기벡터가 필요하고, 100개의 클러스터가 생성될것)
[ 문서별 벡터 ]
* 사전파일 dictionary.file-X
- 토큰 - 토큰번호 쌍으로 이뤄짐
[ 클러스터 ]
* clusteredPoints, clusters-0~x , clusters-x-final 디렉토리가 생성됨
- maxIteration = 20 (작업 반복횟수) 이라면 clusters-0 부터 시작하여 clusters-20-final 까지 생성됨.
* clusteredPoints는 Int, WeightedPropertyVector 쌍으로 이뤄짐
- 문서 개수 (예제상 1000개) 의 레코드 반환
- Key(int) 는 해당 문서가 속한 클러스터 번호
- Value(WeightedPropertyVector) 는 해당 문서의 벡터를 나타냄
- 레코드는 문서 순서대로 배열
* clusters-0
- 레코드 1개씩인 시퀀스 100개 생성
Int - Cluster 쌍 (이하 동일)
- part-xxxxxx 꼴로 표시됨.. (맵/리듀스 결과가 아님)
- 첫번째 작업이므로 100개의 클러스터가 생성됨
초기 벡터 = 초기 클러스터
-
* clusters-x
- part-r-xxxxx 꼴 표시.. 리듀스 작업의 결과.
* clusters-x-final
- 최종 결과
- 1개의 파일, 100개 레코드
- Int - Cluster
- Int 는 그냥 0부터 순서대로 클러스터의 번호가 됨
- Cluster 는 클러스터의 중심점 벡터, 반경 등
* 활용 :
- clusters-x-final은 클러스터번호-클러스터(중심벡터,반경)
- clusteredPoints 는 (문서 순서대로) 문서가 속한 클러스터 번호 - 문서의 벡터(WeightedPorpertyVector)
-
* 추가 문제 WeightedPropertyVector 사용
* Cluster / Kluster / AbstractCluster / Canopy / ....