天天看點

mahout将文本資料轉化成向量形式

對于文本資訊的向量化,Mahout 已經提供了工具類,它基于 Lucene 給出了對文本資訊進行分析,然後建立文本向量。mahout提供下面兩個指令來将文本轉成向量形式(轉化成向量後可以聚類):

1.mahout seqdirectory:将文本檔案轉成SequenceFile檔案,SequenceFile檔案是一種二制制存儲的key-value鍵值對,對應的源檔案是org.apache.mahout.text.SequenceFilesFromDirectory.java

2.mahout seq2sparse:将SequenceFile轉成向量檔案,對應的源檔案是org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles.java

我是将mahout源碼導入到eclipse中,對以上的兩個源檔案分别進行運作(運作時必須配置參數,有輸入、輸出、字元編碼)轉化的,生成的向量檔案目錄結構是:

df-count 目錄:儲存着文本的頻率資訊 

tf-vectors 目錄:儲存着以 TF 作為權值的文本向量 

tfidf-vectors 目錄:儲存着以 TFIDF 作為權值的文本向量 

tokenized-documents 目錄:儲存着分詞過後的文本資訊 

wordcount 目錄:儲存着全局的詞彙出現的次數 

dictionary.file-0 目錄:儲存着這些文本的詞彙表 

frequcency-file-0 目錄 : 儲存着詞彙表對應的頻率資訊。

檢視轉化結果:

mahout seqdumper:将SequenceFile檔案轉成文本形式,對應的源檔案是org.apache.mahout.utils.SequenceFileDumper.java

mahout vectordump:将向量檔案轉成可讀的文本形式,對應的源檔案是org.apache.mahout.utils.vectors.VectorDumper.java

mahout clusterdump:分析最後聚類的輸出結果,對應的源檔案是org.apache.mahout.utils.clustering.ClusterDumper.java具體每種指令如何用及參數如何選擇,在指令行後面加-h或-help可以檢視