2015-04-24 115 views
1

我正在構建一個可以進行文本分類的系統。我用Java構建系統。作爲功​​能,我正在使用bag-of-words模型。然而,這種模型存在的一個問題是特徵的數量非常高,這使得將數據放入內存中變得不可能。適合Java中的文本分類的訓練數據集

但是,我遇到了Scikit-learn中的這個tutorial,它使用特定的數據結構來解決這個問題。

我的問題:

1 - 人們如何通過使用Java來解決這樣的問題?

2-是否有解決方案類似於scikit-learn中給出的解決方案?

編輯:到目前爲止我發現的唯一解決方案是使用HashTables親自編寫一個稀疏矢量實現。

+0

請特別在此發佈您的要求。 –

回答

1

HashSet的/ HashMap的是通常的方式人們存儲袋的詞向量在Java中 - 它們自然是稀疏表示,它們隨着字典的大小而增大,但與文檔的大小不同,後者通常要小得多。

如果您處理非常大的文檔/表示形式的異常情況,您可以尋找幾個稀疏的bitset實現,它們在內存方面可能稍微更經濟一些,並且用於基於Hadoop的大量文本分類實現, 例如。

大多數NLP框架無論如何都會爲您做出這個決定 - 您需要以框架需要的格式提供。

相關問題