2013-08-25 70 views
0

問題最重要的詞:有一種簡單的方法來查看與每個奇異值相關的最重要的詞?Mahout的文本挖掘 - 對於一個給定的奇異值

背景:我已經將Mahout的奇異值分解工具應用到一系列新聞文章中。文章來自兩個主題:1)體育,2)商業。我希望看到與每個奇異值相關的最重要的單詞。例如,對於一個單數值,我可能認爲最顯着的單詞是體育術語:分數,球隊,球員,教練。對於另一個奇異值我可能會看到商業條款:公司,利潤,收入。

我的方法:我正在考慮爲每個奇異值創建一個文件,其中 - 對於給定的奇異值 - 單詞按重要性降序排列。這只是一個想法。我接受建議。

下面是我至今用於生成Mahout中的奇異值的代碼:

/mahout-distribution-0.7/bin/mahout svd 
-i /vectors/tfidf-vectors/ 
-o /svd-values/ 
--numRows 100 
--numCols 591 
-r 100 

回答

1

有沒有辦法直接在項目中做到這一點,我不知道自己的代碼反正。但我可以告訴你一般想法。

在SVD你就好了〜=美伏分解」。假設A是您的文檔術語矩陣。所以A的列 - 以及V'的列 - 對應於單詞。 V'的行對應於奇異值(在S中)。事實上,它們是正確的奇異向量。你可以從這些直接讀出奇異矢量如何與單詞相關。最大的絕對值是最重要的單詞。

+0

即使在我的小實驗數據集我有591分的話,那麼我想避免手動掃描。如何將矢量元素存儲在svd輸出SequenceFile格式中?我打開了文件,鍵值對的'value'部分看起來像包含一個名稱(例如eigenVector99),一個特徵值,然後是某種類型的矢量對象。 '價值'是某種容器對象嗎?它是否包含SparseVector?每個向量元素中的關鍵詞是否爲術語ID? – user554481

+0

你將不得不深入代碼,不確定。注意單數向量可能不完全對應於幾個單詞。而像喜劇而不是恐怖的矢量的東西也是關於恐怖而不是喜劇的媒介 - 這些標誌不一定具有絕對的意義。 –