問題タブ [lsa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
614 参照

r - R を使用したテキスト分析の次元削減に LSA を使用する方法

私はデータ サイエンスの初心者で、ツイートを使用したテキスト分析/感情分析プロジェクトに取り組んでいます。私がやろうとしているのは、ツイート トレーニング セットに対して次元削減を実行し、トレーニング セットを NaiveBayes 学習器にフィードし、学習した NaiveBayes を使用してテスト ツイート セットのセンチメントを予測することです。

この記事の手順に従っています。

http://www.analyticskhoj.com/data-mining/text-analytics-part-iv-cluster-analysis-on-terms-and-documents-using-r/

彼らの説明は、私のような初心者には簡単すぎます。

lsa() を使用して、RStudio で「Large LSAspace (3 要素)」とラベル付けされたものを作成しました。彼らの例に従って、さらに 3 つのデータ フレームを作成しました。

lsa.train.tkデータを表示すると、次のようになります ( lsa.train.dkはこのマトリックスにかなり似ています)。

ここに画像の説明を入力

私のlsa.train.skは次のようになります。

ここに画像の説明を入力

私の質問は、そのような情報をどのように解釈するのですか? この情報を利用して、NaiveBayes 学習器にフィードできるものを作成するにはどうすればよいですか? NaiveBayes 学習器に lsa.train.sk を使用してみましたが、試したことを正当化できる適切な説明が思いつきません。どんな助けでも大歓迎です!

編集: これまでに行ったこと:

  1. すべてを用語文書マトリックスにする
  2. NaiveBayes 学習器に行列を渡す
  3. 学習したアルゴリズムを使用して予測する

私の問題は次のとおりです。

  1. 精度はわずか 50% です...そして、すべてが肯定的な感情としてラベル付けされていることに気付きました (したがって、テスト セットに否定的な感情のツイートのみが含まれている場合、1% の精度が得られた可能性があります)。

  2. 現在のコードはスケーラブルではありません。大きな行列を使用するため、最大 3.5k 行のデータしか処理できません。それ以上だと、コンピューターがクラッシュします。したがって、より多くのデータ (10k または 100k 行のツイートなど) を処理できるように次元削減を行いたいと考えました。

0 投票する
1 に答える
1730 参照

scikit-learn - scikit-learn TruncatedSVD ドキュメント

Kaggle コンペティションで LSA を実行するために使用する予定sklearn.decomposition.TruncatedSVDです。SVD と LSA の背後にある数学は知っていますが、scikit-learn のユーザー ガイドに混乱しているため、実際に適用する方法がわかりません TruncatedSVD

ドキュメントでは、次のように述べています。

この操作の後、

ここに画像の説明を入力

U_k * transpose(S_k)特徴を含む変換されたトレーニング セットです ( API でk呼び出されます)n_components

どうしてこれなの?私はSVDの後に、、、Xこの時点X_kですべきだと思いましたU_k * S_k * transpose(V_k)か?

そして、それは言う、

テスト セット も変換するXには、次の値を掛けますV_kX' = X * V_k

これは何を意味するのでしょうか?

0 投票する
0 に答える
151 参照

r - R: 並列処理形式で lsa() を実行する方法

ツイートでテキスト分析を行い、DR に LSA() を使用しようとしています。ただし、lsa スペースの計算は非常にメモリを集中的に使用するようです。最大 2.3k のツイートしか処理できません。そうしないと、コンピューターが死んでしまいます。

並列処理に関するオンライン リソースを調べたところ、私のコンピューターは 4 コアですが、R の既定の設定であるため、そのうちの 1 つしか使用しないことがわかりました。非常に役立つこの投稿も読みました。 、しかし、並列処理しかできないようです:

  1. apply() ファミリで使用できる関数について
  2. forループを置き換える

lsa() の並列処理を使用しようとしています。これが私の1行のコードです:

ここで、tdm.trainは用語を行、ドキュメントを列とする TermDocumentMatrix です。

私の質問は:

lsa() のこのコード行を変更して、順次形式ではなく並列形式で処理するにはどうすればよいですか? 1 コアのみではなく n コアを使用するようにします。ここで、n はユーザー (私) によって定義されたコアの数です。

0 投票する
1 に答える
12077 参照

python - コサイン類似度の負の値を処理する方法

用語に基づいてドキュメントの tf-idf を計算しました。次に、LSA を適用して項の次元を減らしました。「similarity_dist」には負の値が含まれています (下の表を参照)。0-1 の範囲で余弦距離を計算するにはどうすればよいですか?

ここに画像の説明を入力

0 投票する
2 に答える
7950 参照

python - ループで適切に続行しない

私はpython 2.7を持っています。これは私のコードで、実行すると、次のエラーが表示されます:「続行」がループで適切に行われません。

'continue' は for ループ内にある必要があることはわかっていますが、 内ifで使用しています。

0 投票する
2 に答える
1172 参照

python - Python 2: AttributeError: 'list' オブジェクトに属性 'split' がありません

これはLSAの私のプログラムです。この機能では、すべてのテキストをトークン化し、それをステムに変換したいと考えています。ステミングのプログラムを統合しようとしていますが、これを取得します: titles.split(" "): AttributeError: 'list' オブジェクトに属性 'split' がありません

このコード lsa:

そして、これは私が統合したいものです:

0 投票する
1 に答える
658 参照

python - LSA から類似度を取得する方法

私は潜在的な意味分析に取り組んでおり、2 つのドキュメントから類似性を取得しようとしています。Python で潜在意味解析のコードを実行すると、次のようになります。

この数字からどのように類似点を見つけますか?