これが以前に尋ねられた場合は申し訳ありません(実際には解決策が見つかりませんが)。
私はプログラミングがあまり得意ではありませんが、とにかく、たくさんの Web サイトをクロールして、それらに関する情報をサーバーに保存しています。各ドキュメントに関連付けられたベクトル座標を処理するための Java プログラムが必要です (各ドキュメントに関連付けられた合計 500,000 のプラスまたはマイナスの許可を持つ約 10 億程度のドキュメント)。その行列全体の特異値分解を計算する必要があります。
Java は、明らかに、私の知る限り、これほど大きな行列を処理できません。比較的小さな配列 (約 4400 万) を作成しようとすると、ヒープ エラーが発生します。私はEclipseを使用しているので、-xmxの値を1024mに変更してみました(8GBのRAMを搭載したコンピューターを使用しているにもかかわらず、何らかの理由でこれ以上高くなりません)。
これにはどのような解決策がありますか?必要なデータを取得する別の方法はありますか? 別の方法で SVD を計算しますか? これを行うために別のプログラミング言語を使用していますか?
編集: 今のところ、それぞれに 3 つの単語が関連付けられた 10 億のエントリがあるとします。Xmx と Xms を正しく設定しています (Eclipse の実行構成から -> これは、コマンド プロンプトで java -XmsXXXX -XmxXXXX を実行するのと同じです)。