2014-06-05 61 views
0

我想用mahout的lucene.vectors從lucene索引中提取數據。索引包含Nutch抓取的網頁內容。一些索引字段是:標題,網址,ID,文本和類別。Lucene.vectors:如何設置標籤字段

我知道我可以使用lucene.vectors從索引中獲取數據並將其轉換爲向量。然而,我不明白的是如何告訴這個工具,Lucene中的哪個字段包含標籤。對於我的場景,類別字段是標籤字段。

我正在使用mahout 0.9。

由於提前, 阿米爾

回答

0

您可能需要一箇中間步驟,首先,Lucene索引信息轉換成這需要密鑰,值對,其中鍵代表您的標籤序列文件。 SequenceFilesFromLuceneStorage.java可以讓你做到這一點。描述如下 -

/** *從Lucene索引生成一個序列文件,其中指定的 id字段爲鍵,內容字段爲值。 *使用LuceneStorageConfiguration bean配置 這個類。 */

我相信lucene.vector只是將所有的文本放入一個向量(參考 - https://mahout.apache.org/users/basics/creating-vectors-from-text.html)。您需要格式爲<Text, VectorWritable>的序列文件纔能有矢量以及標籤。

然後,您可以簡單地通讀序列文件並獲取矢量和標籤。如果您想計算TFIDF,您可以使用seq2sparseSparseVectorsFromSequenceFiles.java

或者,您也可以通過先提取標籤並將其餘發送到lucene.vector手動執行此操作。

+1

謝謝。您的意見非常有用。我會用它們作爲未來的參考。不過,我已經通過走另一條道路解決了這個問題。我從Lucene中提取數據,然後使用mahout的文本目錄格式格式化該日期。然後,我簡單地使用'seqdirectory','seq2sparse'來獲取訓練數據。這很容易做,而且非常直接。 – ameertawfik