mahout Sparse Vectors FromSequence Files 자세히 (7)
calculateDF
호출 방법은 TFIDFConverter입니다.calculateDF
입력 디렉터리는 tf-vectors 디렉터리입니다. 이전 단계에서 생성된 키입니다. 키는 문서 디렉터리이고value는 주파수 vector입니다.
진정한 실행 방법은 startDFCounting이고 또 하나의hadoop 프로그램이다. 마퍼는TermDocumentCountMapper이고 Reducer는TermDocumentCountReducer이다.
TermDocumentCountMapper를 먼저 보도록 하겠습니다.
@Override
protected void map(WritableComparable<?> key, VectorWritable value, Context context)
throws IOException, InterruptedException {
Vector vector = value.get();
Iterator<Vector.Element> it = vector.iterateNonZero();
while (it.hasNext()) {
Vector.Element e = it.next();
context.write(new IntWritable(e.index()), ONE);
}
context.write(TOTAL_COUNT, ONE);
}
key는 단어의 index,value는 단어 주파수vector
index가 있으면 1 더하기, 마지막은 토탈count도 1 더하기 totalcount는 총 문서 수입니다.
TermDocumentCountReducer 다시 보기
@Override
protected void reduce(IntWritable key, Iterable<LongWritable> values, Context context)
throws IOException, InterruptedException {
long sum = 0;
for (LongWritable value : values) {
sum += value.get();
}
context.write(key, new LongWritable(sum));
}
바로 문서에 대응하는 index가 1인 것을 모두 합치면 각 index에 몇 개의 문서가 존재하는지 알 수 있다
마지막으로 생성된 디렉터리는 df-count
createDictionaryChunks
이것은 매우 지루하다. 바로 df-count의 내용을 Chunks sequence file 형식으로 쓴 것이다. 아마도 성능 때문일 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.