JavaでのLSIのオープンソース実装はありますか? そのライブラリを自分のプロジェクトに使用したいと考えています。jLSI を見たことがありますが、それは他のモデルの LSI を実装しています。スタンダードモデルが欲しい。
6 に答える
LDA(潜在的ディリクレ配分)を検討しましたか?私も実際にはそうではありませんが、最近、LSIで同じ問題に遭遇しました(特許)。私が理解していることから、LDAは関連する/より強力な手法です。http://en.wikipedia.org/wiki/Latent_Dirichlet_allocationには、明らかにオープンソースの実装へのリンクがいくつかあります。
S-SpaceパッケージにはオープンソースバージョンのLSAがあり、LSIドキュメントベクターのバインディングがあります。(どちらのアプローチも同じ用語ドキュメントマトリックスで動作し、出力を除いて同等です。)これはthin-SVDを使用するかなりスケーラブルなアプローチです。私はこれを使用して、すべてのウィキペディアで問題なくLSIを実行しました(5回未満の頻度の低い用語を削除した後)。
Scott Rayが述べたように、SemanticVectorsパッケージにも優れたLSI実装があり、最近同じシンSVD(SVDLIBJ)を使用するように切り替えられたため、以前になかったかのように確認できます。
Java LSI の Google 検索は、 SemanticVectors を推奨する同様の質問につながります。LSI に「類似」する Lucene の上に構築されたパッケージ。jLSI実装よりも近いかどうかはわかりません。
そのスレッドは、LSI が特許を取得しており、その実装があまりないことにも言及しています。したがって、標準の実装が必要な場合は、Java 以外の言語を使用する必要がある場合があります。
NLPツールのGoogle検索は、私が役立つと思うこのスライドを提供します...
Semantic Vector パッケージを試しましたか?
LSA/LSI は 1989 年に特許を取得したと思いますが、これは特許が切れたばかりであることを意味します。すぐに素晴らしいオープン ソース アプリケーションが登場することを願っています。