2014-01-22 2 views

답변

6

마호 발트에서 최신 형태의 LDA에 대한 문서는 약간 희소합니다. 이제는 'cvb'라고합니다. 입력은 텍스트 파일의 디렉토리 일 수도 있고 mahout 형식으로 들어갈 수있는 다른 것 (lucene 색인, 무엇이든간에) 일 수 있습니다. 출력은 벡터 형식으로 키워드로 표현 된 정의 된 수의 주제입니다 (아래 예 참조).

어제 예제를 통해 실제로 작업 했으므로 다음과 같은 명령을 유용하게 쓰려고합니다. 예제는 (오래된 수) http://svn.apache.org/repos/asf/mahout/tags/mahout-0.4/examples/bin/build-reuters.sh

에있는 명령을 사용하여로드 할 수 로이터 데이터 세트를 사용 (예 : 입력 $의 기본 디렉토리에 갈 것/일/로이터 아웃/아래)

# 설정 일부 디렉토리

SequenceFile 형식으로
basedir=[set to your current directory] 
workdir=$basedir/work 

# 변환 텍스트는

mahout seqdirectory \ 
-i $basedir/work/reuters-out/ \ 
-o $basedir/work/reuters-out-seqdir -c UTF-8 -chunk 5 

# 스파 스 벡터를 만들

mahout seq2sparse \ 
    -i $workdir/reuters-out-seqdir/ \ 
    -o $workdir/reuters-out-seqdir-sparse-lda -ow --maxDFPercent 85 --namedVector 

# cvb 클러스터링 (즉, 텍스트 키를 정수로 변경)에 필요한 형태로 희소 벡터를 변환하는 데 rowid를 사용합니다. 다음

mahout rowid \ 
-i $workdir/reuters-out-seqdir-sparse-lda/tfidf-vectors \ 
-o $workdir/reuters-out-matrix 

# 재방송 LDA하여 로컬 명령

# : Run cvb in mahout 0.8

rm -rf $workdir/reuters-ldalocal $workdir/reuters-ldalocal-topics 
mahout cvb0_local \ 
    -i $workdir/reuters-out-matrix/matrix \ 
    -d $workdir/reuters-out-seqdir-sparse-lda/dictionary.file-* \ 
    -a 0.5 \ 
    -top 4 \ 
    -do $workdir/reuters-ldalocal \ 
    -to $workdir/reuters-ldalocal-topics 

# 각 항목의 상위 10 단어를 게재하여 출력을 검사 :

mahout vectordump \ 
    -i $workdir/reuters-ldalocal-topics \ 
    --dictionary $workdir/reuters-out-seqdir-sparse-lda/dictionary.file-* \ 
    --dictionaryType sequencefile \ 
    --vectorSize 10 \ 
    -sort $workdir/reuters-ldalocal-topics 

출력은 다음과 같습니다.

{said:12099.546951505947,its:10566.985916212521,year:8333.832279174481,dlrs:6810.206141819796,would:6721.746234281428,been:5329.6753421933945,pct:5313.369659313288,billion:5248.896294419074,from:5158.844069513761,he:4764.16474083869} 
{mln:11816.704457054004,cts:7169.159831834528,mar:7081.733955520149,vs:6891.4237560938955,new:6560.720833985039,has:6543.337854529879,1986:6043.850306111383,company:5720.025984843189,pct:5711.399291651732,last:5683.42288907518} 
{inc:9704.372248376018,mln:9278.314888220315,said:8562.15377124544,net:7827.149394593728,vs:7736.055883103908,dlrs:7057.160090724306,cts:6177.1590584797605,market:5936.459595191674,exchange:5371.911394611647,co:5314.4250562522} 
{said:12514.11646492775,u.s:9207.239974183465,from:7679.363044582878,mar:6588.0987950965,bank:6491.528794438723,pct:6100.417335098452,has:5352.990453581582,dlrs:5091.309618540722,about:4886.923813272583,13:4695.692587191373} 

면책 조항 - 필자의 노트에서 바꿔 말하면, 버그가 거의 없을 수 있습니다. 행운을 빕니다!

+0

고마워요. Ziggy. 많이 감사합니다. –

관련 문제