2011-09-14 10 views
3

나는 5 천만 개의 텍스트 조각을 가지고 있는데 그 중 일부 클러스터를 만들고 싶습니다. 차원은 60k ~ 100k 사이 일 수 있습니다. 평균 텍스트 스 니펫 길이는 16 단어입니다. 상상할 수 있듯이 빈도 행렬은 꽤 희박합니다. 내가 그 클러스터를 찾을 수있게 해주는 소프트웨어 패키지/libray/sdk를 찾고있다. 나는 과거에 CLUTO를 시도했지만 이것이 CLUTO에게는 매우 힘든 일로 보입니다. 내 연구 온라인에서 BIRCH는 이러한 문제를 처리 할 수있는 알고리즘이라는 것을 알았지 만, 불행히도 BIRCH 구현 소프트웨어를 온라인으로 찾을 수 없었습니다 (할당 프로젝트와 같은 몇 가지 임시 구현을 찾았습니다. 어떤 종류의 문서 든). 어떤 제안?수백만 개의 고차원 데이터 10 개 클러스터링

+0

자유 시간을 확인하고 싶기 때문에 reduce/hadoop 도움이 필요합니까? – HRgiger

+0

잘하려면이 작업을위한 클러스터링 알고리즘을 병렬 처리해야 할 것입니다. 나는 거기에 몇 가지 준비된 솔루션이 있다는 것을 기대했습니다. – Alexandros

+0

R, Python, Java의 텍스트 마이닝을 살펴보십시오. N (# 행) 또는 P (# 딤즈)가 큽니다. 괜찮은 텍스트 마이닝/클러스터링 패키지를 시작해야합니다. – Iterator

답변

0

그래프 파티션 알고리즘을 사용해보십시오. 높은 차원의 데이터를 클러스터링 할 수 있습니다.

+0

또한 마이크로 어레이 분석 알고리즘을 확인해야합니다. 저기에, 그것은 고차원 데이터와도 함께 작동합니다. – Phill

0

나는 all-pairs과 같은 것을 찾고 있다고 가정합니다.

이렇게하면 유사한 레코드 쌍을 원하는 임계 값까지 얻을 수 있습니다. 그래프 이론의 비트를 사용하여 나중에 클러스터를 추출 할 수 있습니다. 각 쌍마다 에지를 고려하십시오. 그런 다음 연결된 구성 요소를 추출하면 단일 연결 클러스터링과 같은 기능을 제공 할 것이며, 파벌은 완전한 연결 클러스터를 제공합니다.

방금 ​​BIRCH in C++이라는 구현이 발견되었습니다.

1

교수님이 Java에서 BIRCH 알고리즘의 implementation을 만들었습니다. 일부 인라인 주석으로 읽기 쉽습니다.

3

TopSig 표현을 사용하는 스트리밍 EM 트리 알고리즘을 확인하는 데 관심이있을 수 있습니다. 둘 다 내 박사 학위입니다. 대규모 문서 클러스터링에 관한 주제에 대한 논문

우리는 최근에 단일 16 코어 컴퓨터 (http://ktree.sf.net)에 733 만 개의 문서를 클러스터링했습니다. 문서 색인을 생성하는 데는 약 2.5 일이 걸렸고 문서를 색인하려면 15 시간이 걸렸습니다.

스트리밍 EM 트리 알고리즘은 https://github.com/cmdevries/LMW-tree에 있습니다. 그것은 http://topsig.googlecode.com에서 찾을 수있는 TopSig에 의해 생성 된 바이너리 문서 벡터로 작동합니다.

앞서 비슷한 접근 방식에 대한 블로그 게시물을 http://chris.de-vries.id.au/2013/07/large-scale-document-clustering.html에 작성했습니다. 그러나 EM-tree는 병렬 실행을 위해 확장 성이 뛰어나고보다 우수한 품질의 클러스터를 생성합니다.

질문이 있으시면 언제든지 [email protected]에 저에게 연락하십시오.

관련 문제